Обновление с помощью freebsd-update

Материал из megapuper
Перейти к: навигация, поиск

Обновление 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 и ребутимся. Всё система обновлена.