Бинарное обновление FreeBSD (пошаговая инструкция)

Почему хорошо иметь на сервере актуальную версию ОС мы обсуждать не будем, поэтому приступим к делу.
# uname -a
FreeBSD r-vpn1 12.0-RELEASE-p8 FreeBSD 12.0-RELEASE-p8 R-VPN12 amd64

Видим что у нас версия 12 с p8, так же нестандартное ядро R-VPN12 и 64-разрядная система
Поскольку после обновлений у нас система загрузится с ядром GENERIC крайне рекомендую на период обновлений внести в правила файрвола строку any to any

Запускаем freebsd-update, проверяем наличие обновлений и скачиваем
# freebsd-update fetch

Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching metadata signature for 12.0-RELEASE from update1.freebsd.org... done.
Fetching metadata index... done.
Fetching 2 metadata patches.. done.
Applying metadata patches... done.
Inspecting system... done.
Preparing to download files... done.
Fetching 58 patches.....10....20....30....40....50.... done.
Applying patches... done.
Fetching 8 files... done.

После окончания загрузки файлов — будет выведен список файлов и каталогов, которые будут обновлены

Устанавливаем обновления:
# freebsd-update install

Installing updates... done.

Перезагружаем сервер
# shutdown -r now

После перезагрузки запускаем повторно установку:
# freebsd-update install

Если система сообщает, что:
# freebsd-update install
No updates are available to install.

Значит обновление завершено.

Проверим текущую версию:

# uname -v
FreeBSD 12.0-RELEASE-p10 GENERIC

В случае, если что-то пошло не так — можно «откатить» установку обновлений:
# freebsd-update rollback
Uninstalling updates… done.

Далее собираете ваше ядро (раз оно у вас не стандартное, значит вы знаете как это делать)

Ну, и порты и обновление софта, куда же без них
# portsnap fetch update
Устанавливаем новый pkg
# pkg-static install -f pkg
И запускаем пересборку софта
# portupgrade -fa
Финальный запуск обновления
# freebsd-update install
Теперь можно почистить дерево портов (для освобождения свободного места да диске)
# portsclean -CDLP
Вот собственно и все.