Удаленное обновление по SSH FreeBSD 8.4-STABLE до FreeBSD 9.1-RELEASE

В продолжение темы обновления серваков под управлением FreeBSD решил черконуть и про обновление с 8-ки до 9-ки.
Тут все оказалось намного проще чем с 7-ки до 8-ки.
Практически все точно так же как в предыдущем посте, но есть пара отличий. Ну во первых это настройка в файле supfile

/root/>cp /usr/share/examples/cvsup/standard-supfile /root/supfile.9

В данном файле я поправил 2 строчки:

*default host=cvsup5.ua.FreeBSD.org
*default release=cvs tag=RELENG_9_1_0_RELEASE

После этого запускам закачку сорс-файлов:

/root/>csup -L 2 /root/supfile.9


Настройка /etc/src.conf у меня осталась прежней:

/root/>cat /etc/src.conf
WITHOUT_ATM=yes
WITHOUT_CALENDAR=yes
WITHOUT_GAMES=yes
WITHOUT_I4B=yes
WITHOUT_IPFILTER=yes
WITHOUT_IPX=yes
WITHOUT_LPR=yes
WITHOUT_NETCAT=yes
WITHOUT_NIS=yes
WITHOUT_RCMDS=yes
WITHOUT_WPA_SUPPLICANT_EAPOL=yes
WITHOUT_BLUETOOTH=yes
/root/>

Чистим «остатки» от предыдущих сборок:

/root/>cd /usr/src/
/usr/src/>make cleanworld && make cleandir

Собираем мир:

/usr/src/>make buildworld

Собираем ядро, в моем случае GENERIC, и устанавливаем его:

/usr/src/>make buildkernel
/usr/src/>make installkernel

Перезагрузка в новое ядро:

/usr/src/>shutdown -r now

Запускаем мастер, который поможет нам ознакомиться с изменениями в конфигах нового релиза, которые важно учесть перед «сборкой мира»:

/root/>mergemaster -p

предлагают посмотреть изменения в /etc/group и /etc/master.passwd. Важно обратить внимание на то какие пользователи и группы добавились (те что вначале строки со знаком «+»), это может понадобиться в дальнейшем. На оба вопроса я ответил «d» — удалить новый файл, в моем случае небыло добавлено/удалено ни одного пользователя.
Устанавливаем собранный ранее мир:

/root/>cd /usr/src
/usr/src/>make installworld

Запускам мастер, который поможет нам разобраться с обновлениями в остальных системных конфигах. Внимательно смотрим что изменилось, тупо нажимать «i» не рекомендую, тут будут и важные моменты!

/root/>mergemaster -i

Проверить sshd_config!!!
На вопрос по изменениям в /etc/ssh/sshd_config я ответил «d», так как у меня в этом конфиге явно указано кому можно логиниться по ssh, а обновленный конфиг это опцию убрал. Вроде как ничего страшного, но все равно заново прописывать AllowUsers както неохота.
На вопросы про изменения в /etc/group и /etc/master.passwd я опять ответил «d» — «Удалить новый конфиг».
Перезагрузка в новую систему:

/root/>shutdown -r now

После перезагрузки перепроверить основные конфиги в /etc, сверить с бекапом старых конфигов, где что нужно — подправить.
Дальше обновить порты:

/root/>portsnap fetch update

После этого весь остальной софт:

/root/>portupgrade -f ruby
/root/>rm /var/db/pkg/pkgdb.db
/root/>portupgrade -f ruby19-bdb
/root/>rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db
/root/>portupgrade -af

Бывает что порты собираться нехотят и вываливают ошибку в духе:

===>  Checking if databases/db41 already installed
===>   db41-4.1.25_4 is already installed
      You may wish to ``make deinstall'' and install this port again
      by ``make reinstall'' to upgrade it properly.
      If you really wish to overwrite the old port of databases/db41
      without deleting it first, set the variable "FORCE_PKG_REGISTER"
      in your environment or the "make install" command line.
*** Error code 1

Stop in /usr/ports/databases/db41.
*** Error code 1

Для того чтобы сборка прошла успешно, я экспортировал в окружение своей bash сесии опцию

/root/>export FORCE_PKG_REGISTER=yes

Дальше повторил предыдущий шаг с ruby и portupgrade -af отработал успешно и без ошибок.
Enjoy!

  1. Комментов пока нет

  1. Трэкбэков пока нет.

Why ask?