Найти в Дзене
Владимир Носков

FreeBSD. Обновление версии OS.

[FreeBSD] FreeBSD - Обновление версии FreeBSD операционная система, которая непрерывно развивается. При этом, как и в любой динамичной системе, появляются новые номерные версии. Так как статья написана во времена 13-й версии, но некоторые скриншоты от 13-й версии - это в общем не принципиально - всё практически так эе и в общем только для иллюстрации процесса. Текущую версию FreeBSD можно проверить на официальном сайте: FreeBSD.org На данный момент (02.12.2025) есть три стабильных версии FreeBSD: 14.3, 15.0, 13.5 и разрабатываемая 16.0. На моей домашней и большинстве рабочих систем была установлена 14.3. Так, как вышла 15.0, то надо обновить до актуального состояния - начнём естественно с домашней системы, как наиболее опекаемой. А на некоторых рабочих ещё и 13-я останется. Запускаем консоль. Проверяем текущую версию: # uname -a FreeBSD wfwc-001 15.0-RELEASE FreeBSD 15.0-RELEASE releng/15.0-n280995-7aedc8de6446 GENERIC amd64 Для обновления текущей версии до актуального состояния и

[FreeBSD]

FreeBSD - Обновление версии

FreeBSD операционная система, которая непрерывно развивается. При этом, как и в любой динамичной системе, появляются новые номерные версии.

Так как статья написана во времена 13-й версии, но некоторые скриншоты от 13-й версии - это в общем не принципиально - всё практически так эе и в общем только для иллюстрации процесса.

Текущую версию FreeBSD можно проверить на официальном сайте:

FreeBSD.org
FreeBSD.org

На данный момент (02.12.2025) есть три стабильных версии FreeBSD: 14.3, 15.0, 13.5 и разрабатываемая 16.0.

На моей домашней и большинстве рабочих систем была установлена 14.3. Так, как вышла 15.0, то надо обновить до актуального состояния - начнём естественно с домашней системы, как наиболее опекаемой. А на некоторых рабочих ещё и 13-я останется.

Запускаем консоль. Проверяем текущую версию:

-3

# uname -a

FreeBSD wfwc-001 15.0-RELEASE FreeBSD 15.0-RELEASE releng/15.0-n280995-7aedc8de6446 GENERIC amd64

Для обновления текущей версии до актуального состояния и установки новой версии в FreeBSD имеется специальная команда freebsd-update. Есть и другие способы, но этот самый простой.

Так же надо иметь действующее на вашей системе подключение к интернет и выдать две команды для запуска обновления.

Сначала получение:

# freebsd-update fetch

А затем, после завершения получения необходимых компонентов обновления, провести их установку:

# freebsd-update install

Так же во время работы этого инструмента могут появляться сообщения и предложения о выполнении некоторых действий, которые инсталлятор не может выполнить самостоятельно: в основном это правка конфигурационных файлов, как правило несложная, и вывод некоторых сообщений о проведённых изменениях.

Установку новой версии FreeBSD поверх текущей осуществляют этим же инструментом: freebsd-update с дополнительными ключами, которые скажут о том, что надо установить новую версию:

# freebsd-update upgrade -r 15.0-RELEASE

Будет проведена проверка системы и так же скачивание необходимых обновлений:

# freebsd-update upgrade -r 15.0-RELEASE

Looking up update.FreeBSD.org mirrors... 2 mirrors found.

Fetching metadata signature for 15.0-RELEASE from update1.freebsd.org... done. Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Inspecting system... done.
The following components of FreeBSD seem to be installed:
kernel/generic src/src world/base world/lib32
The following components of FreeBSD do not seem to be installed:
kernel/generic-dbg world/base-dbg world/lib32-dbg
Does this look reasonable (y/n)?

Где нам сообщат о том, что будет обновлено:

kernel/generic src/src world/base world/lib32

То есть ядро ОС, исходники ядра и мира (всё, что не входит в ядро, но является частью ОС - называют world - мир - хиппи делали бсд :))

и что обновлено не будет:

kernel/generic-dbg world/base-dbg world/lib32-dbg

Не обновятся отладочные варианты ядра и мира, но они у меня и не установлены. Так как в настоящий момент ничего связанного с отладкой ядра, драйверов, библиотек и пр. я не занимаюсь, а для прикладных программ отладочные версии соответствующих компонент не нужны.

Будет задан вопрос:

Does this look reasonable (y/n)? (Выглядит ли это приемлемым (y/n)?)

Ну наверное да :) Отвечаем "y".

Начнётся скачивание необходимого для обновления.

Работа утилиты обновления.
Работа утилиты обновления.

Когда скачается всё, что нужно:

Завершение скачивания.
Завершение скачивания.

Сообщение о окончании скачивания и применении обновлений для текущей системы. Затем будет докачено недостающее и просьба перейти на ручную правку :(

-6

Так, как я для себя в настольной системе изменяю системные настройки на те, что мне удобнее, но отличные от стандартного и принятого в FreeBSD по умолчанию, то и появляется первый вопрос о том надо ли вернуть суперпользователю root настройки принятые по умолчанию, а именно: вернуть стандартное значение для командной оболочки: изменить
root:*:0:0:Charlie &:/root:/bin/zsh на root:*:0:0:Charlie &:/root:/bin/csh

-7

Но так, как мне это не надо я оставляю своё и убираю предлагаемое. Что в общем не совсем правильно: так, как несколько нарушает одно из правил FreeBSD (и любого unix): "root не должен иметь настроек окружения отличных от стандартных" - не рекомендуется даже делать локализацию окружения - нужно оставлять "как есть" и анлоязычное, но я же тут вроде главный - потому делаю так, как мне больше нравится. Мне так нужно и так мне удобнее... :)

Далее будет ещё несколько вопросов, если вы изменяли системные файлы в /etc и несколько сообщений, что же именно меняется в системе:

-8

В конце сообщений есть указание о том, что применить все изменения надо командой:

# freebsd-update install

По завершению её работы будет инструкция, что сделать после перезагрузки:

-9

То есть надо будет перезагрузиться и, если всё прошло хорошо и обновление успешно, снова выдать команду freebsd-update install ещё раз.

Но перед перезагрузкой надо выдать на всякий случай ещё две команды, которые связаны с файловой системой zfs и zpool - если, конечно используется у вас эта файловая система:

# zpool upgrade -a

# zfs upgrade -a

и обновить загрузчики операционной системы, если у вас используется загрузка с GPT разбивкой дисков. Не забываем, указывать в ключе -i правильный раздел диска (сверившись предварительно с информацией от gpart show):

# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 2 nvd0

и повторяем для всех дисков, что используются у вас в системе в качестве загрузочного:

# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 2 nvd1

Если используется загрузчик uefi, то надо об6овить и его.

У вас для этих загрузчиков должны быть смонтированы и организованы соответствующие точки монтирования файловых систем uefi boot я их прописал в /etc/fstab:

/dev/nvd0p1     /boot/efi0   msdosfs rw          2       2
/dev/nvd1p1     /boot/efi1   msdosfs rw          2       2

В принципе монтировать их на постоянной основе не нужно, можно делать это по мере необходимости соответствующей командой перед непосредственно записью загрузчика:

# mount_msdosfs /dev/nvd0p1 /boot/efi0
# mount_msdosfs /dev/nvd1p1 /boot/efi1

Копируем загрузчики:

# cp /boot/loader.efi /boot/efi0/efi/boot/bootx64.efi
# cp /boot/loader.efi /boot/efi0/efi/boot/shellx64.efi
# cp /boot/loader.efi /boot/efi1/efi/boot/bootx64.efi
# cp /boot/loader.efi /boot/efi1/efi/boot/shellx64.efi
# cp /boot/loader.efi /boot/efi0/efi/freebsd/loader.efi
# cp /boot/loader.efi /boot/efi1/efi/freebsd/loader.efi

Подробнее об этом тут: FreeBSD. Файловая система zfs.

Перезагружаемся и после успешной загрузки выдаём команду:

# freebsd-update install

Будет сообщение о том что обновление завершено и в общем хоть и не требуется перезагрузки, но мы её всё-таки делаем и уже после перезагрузки проверяем, что у нас теперь:

# uname -a

-10

Видим, что то, что нужно. Но... у нас на самом деле по-сути обновлены только ядро, утилиты и наборы библиотек, исходные коды ядра и утилит, относящихся к самой системе. Но нам надо обновить так же и всё прикладное и стороннее в системе. Оболочку (KDE) и все проинсталлированные программы и пр. пр.

Это тоже просто:

# pkg upgrade

-11

Собственно, всё практически такое же как было в предыдущей версии. Обновлений не много. Соглашаемся и наблюдаем, как оно установится:

-12

И, как завершающий штрих, если вы пользуетесь системой ports, то их в общем тоже можно обновить - не обязательно сейчас - можно это делать по мере необходимости - так, как они в общем для работы системы не требуются и нужны только, если вы делаете сборки ядра из исходных кодов (новые коды ядра, кстати, установлены при обновлении системы) и установки ПО из исходных кодов из коллекции ports. Это удобно делать с помощью утилиты git.

Запускаем скачивание ports:

# git clone https://git.FreeBSD.org/ports.git /usr/ports

Если ports не был установлен раньше, если он был установлен и через git, то можно обновить git pull или скачать его заново, предварительно удалив каталог ports и скачав его заново.

Так же можно поступить немного иначе, например если /usr/ports - это отдельная файловая система zfs:

# git clone https://git.FreeBSD.org/ports.git /usr/ports.000
# rm -r /usr/ports/*
# mv -r /usr/ports.000/* /usr/ports

Затем надо построить файл индекса для поиска нужных пакетов:

# make index

или скачать готовый

# make fetchindex

"то позволит быстро находить нужный пакет (не прибегая к утилите find), например найти каталог Minnight Commander

# make search name=mc
или, если не знаете точного названия пакета найти по любому предполагаемому слову:

# make search key=clone

Получение исходных кодов ядра:

# git clone --branch releng/15.0 https://git.FreeBSD.org/src.git /usr/src

аналогичным образом, как для ports

В общем всё. Система обновлена. Удачи.

[FreeBSD]