FreeBSD دو بخش جدا دارد: سیستم پایه (هسته و ابزارهای /bin، /usr/bin و غیره) و بستههای جانبی (هر چیزی که با pkg در /usr/local نصب شده). هر کدام جداگانه بهروز میشود.
۱. پیش از هر بهروزرسانی: boot environment
اگر سیستم روی ZFS نصب شده، یک boot environment بسازید. اگر بهروزرسانی مشکل ایجاد کرد، از منوی بوت به آن برمیگردید:
bectl create before-update-$(date +%F)
bectl list۲. وصلهی سیستم پایه
freebsd-version -kru
freebsd-update fetch
freebsd-update installاگر وصله هسته را عوض کرد، راهاندازی مجدد کنید.
از FreeBSD 15، نصب سیستم پایه با بستهها (pkgbase) هم ممکن است. اگر هنگام نصب این گزینه را انتخاب کردهاید،freebsd-updateکاربرد ندارد و سیستم پایه هم باpkg upgradeبهروز میشود. باpkg info -x '^FreeBSD-'بررسی کنید: اگر خروجی دارد، سیستم شما pkgbase است.
۳. بستهها
pkg update
pkg upgrade
pkg autoremove
pkg clean -y۴. بررسی آسیبپذیری
pkg audit -Fاین دستور پایگاه دادهی آسیبپذیریها (VuXML) را دریافت میکند و بستههای آسیبپذیر نصبشده را فهرست میکند. سیستم periodic هر شب همین بررسی را انجام میدهد و نتیجه را در گزارش ایمیل root میگذارد. ایمیل root را به یک صندوق واقعی بفرستید:
echo 'root: ops@sahor.ir' >> /etc/mail/aliases && newaliases۵. ارتقا به نسخهی جدید (مثلاً 15.0 به 15.1)
bectl create before-15.1
freebsd-update -r 15.1-RELEASE upgrade
freebsd-update install # installs the new kernel
shutdown -r now
freebsd-update install # after reboot: installs the new userland
pkg upgrade -f # only needed for a major version change (e.g. 14 -> 15)
freebsd-update install # removes old libraries
freebsd-version -kruاگر بعد از ارتقا مشکلی پیش آمد:
bectl activate before-15.1
shutdown -r now