Обновление с помощью freebsd-update
Обновление FreeBSD 9.1 до 10.0-RELEASE при помощи freebsd-update
Текущая версия
# uname -a FreeBSD freebsd 9.1-RELEASE-p4 FreeBSD 9.1-RELEASE-p4 #0: Mon Jun 17 11:38:17 UTC 2013 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC i386
Запускаем обновление
# freebsd-update upgrade -r 10.0-RELEASE Looking up update.FreeBSD.org mirrors... 5 mirrors found. Fetching metadata signature for 9.1-RELEASE from update2.freebsd.org... done. Fetching metadata index... done. Fetching 2 metadata patches.. done. Applying metadata patches... done. Inspecting system... The following components of FreeBSD seem to be installed: kernel/generic src/src world/base world/lib32
При установке не ставились документация и игры, freebsd-update уточняет этот момент
The following components of FreeBSD do not seem to be installed: world/doc world/games Does this look reasonable (y/n)? y Fetching metadata signature for 10.0-RELEASE from update2.freebsd.org... done. Fetching metadata index... done. Fetching 1 metadata patches. done. Applying metadata patches... done. Fetching 1 metadata files... The update metadata is correctly signed, but failed an integrity check. Cowardly refusing to proceed any further.
Упс. Придётся обновить до последней версии в текущей ветке
# freebsd-update fetch install Looking up update.FreeBSD.org mirrors... 5 mirrors found. Fetching metadata signature for 9.1-RELEASE from update6.freebsd.org... done. Fetching metadata index... done. Fetching 1 metadata patches. done. Applying metadata patches... done. Inspecting system... done. Preparing to download files... done. Fetching 56 patches.....10....20....30....40....50... done. Applying patches... done. The following files will be updated as part of updating to 9.1-RELEASE-p10: /boot/kernel/kernel /boot/kernel/kernel.symbols /boot/kernel/mfi.ko /boot/kernel/mfi.ko.symbols /boot/kernel/mfip.ko /boot/kernel/mfip.ko.symbols /boot/kernel/nullfs.ko /boot/kernel/nullfs.ko.symbols /boot/kernel/random.ko .............. Installing updates... done.
Перегружаемся и проверяем
# reboot # uname -a FreeBSD freebsd 9.1-RELEASE-p10 FreeBSD 9.1-RELEASE-p10 #0: Sun Jan 12 10:32:09 UTC 2014 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC i386
Снова запускаем апгрейд до 10.0-RELEASE
# freebsd-update upgrade -r 10.0-RELEASE Looking up update.FreeBSD.org mirrors... 5 mirrors found. Fetching metadata signature for 9.1-RELEASE from update4.freebsd.org... done. Fetching metadata index... done. Inspecting system... done. The following components of FreeBSD seem to be installed: kernel/generic src/src world/base The following components of FreeBSD do not seem to be installed: world/doc world/games Does this look reasonable (y/n)? y Fetching metadata signature for 10.0-RELEASE from update4.freebsd.org... done. Fetching metadata index... done. Inspecting system... done. Fetching files from 9.1-RELEASE for merging... done. Preparing to download files... done Fetching 39975 patches..... done. Applying patches... done. Fetching 11471 files... done. Attempting to automatically merge changes in files... done.
Процесс долгий, так что идём пить чаёк
The following file could not be merged automatically: /etc/motd Press Enter to edit this file in ee and resolve the conflicts manually...
Тут freebsd-update сообщает, что автоматическое изменение некоторых файлов невозможно и просит внести изменения вручную
Примерно так
The following changes, which occurred between FreeBSD 9.1-RELEASE and FreeBSD 10.0-RELEASE have been merged into /etc/group: --- current version +++ new version @@ -1,6 +1,6 @@ -# $FreeBSD: release/9.1.0/etc/group 218046 2011-01-28 22:28:12Z pjd $ +# $FreeBSD: release/10.0.0/etc/group 256366 2013-10-12 06:08:18Z rpaulo $ # wheel:*:0:root daemon:*:1: kmem:*:2: sys:*:3: @@ -16,10 +16,11 @@ sshd:*:22: smmsp:*:25: mailnull:*:26: guest:*:31: bind:*:53: +unbound:*:59: proxy:*:62: authpf:*:63: _pflogd:*:64: _dhcp:*:65: uucp:*:66: Does this look reasonable (y/n)? y
Далее нам покажут файлы которые обновятся
И попросят запустить обновление
To install the downloaded upgrades, run "/usr/sbin/freebsd-update install". # freebsd-update install Installing updates... Kernel updates have been installed. Please reboot and run "/usr/sbin/freebsd-update install" again to finish installing updates.
Перегружаемся, проверяем версию
# uname -a FreeBSD freebsd 10.0-RELEASE FreeBSD 10.0-RELEASE #0 r260789: Fri Jan 17 01:46:25 UTC 2014 root@snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC i386
ВНИМАНИЕ!!! ПОСЛЕ СЕГО ДЕЙСТВИЯ У МЕНЯ НЕ РАБОТАЛА СЕТЕВУХА. ХОРОШО ЧТО ДЕЛАЛОСЬ НА VMWARE
Как и просили ещё раз выполняем
# freebsd-update install Installing updates... Compeleting this upgrade requires removing old shared object files. Please rebuild all installed 3rd party software (e.g., programs installed from the ports tree) and then run "/usr/sbin/freebsd-update install" again to finish installing updates.
Тут нас просят пересобрать установленные порты и наконец-таки закончить апдейтить. Но я сначала ребутнулся, и о чудо - появилась сетевуха.
Продолжаем. Во FreeBSD 10 рекомендуют использовать pkg для работы с пакетами. Для этого нужно сконвертировать базу установленных приложений в новый формат
# pkg The package management tool is not yet installed on your system. Do you want to fetch and install it now? [y/N]: y # pkg2ng ........................... Converting php53-zip-5.3.27... Installing php53-zip-5.3.27... done Converting php53-zlib-5.3.27... Installing php53-zlib-5.3.27... done Converting php53-extensions-1.6... Installing php53-extensions-1.6... done ...........................
После конвертации обновляем репозитории
# pkg update
Обновляем установленные пакеты
# pkg upgrade
Некоторые пакеты, у меня например perl, могут ругнуться. Надо принудительно изменить необходимые зависимости на нужные версии
# pkg set -o lang/perl5.14:lang/perl5.16
В конце выведется список действий которые надо сделать вручную
После обновления всех приложений запускаем в очередной раз freebsd-update install и ребутимся. Всё система обновлена.