Удаленное обновление по SSH FreeBSD 7 до FreeBSD 8

Сделал для себя, как для новичка, небольшую заметку чтобы пользоваться в будущем и не искать по инету рецепты по теме поста. Для гуру во FreeBSD ничего нового в этой заметке нету, можете не читать и не тратить свое время.
Процедура обновления выбрана именно через сборку мира, так как freebsd-update у меня завалил 3 или 4 раза систему при имитации такого же обновления на тестовой виртуалке. А вот сборка мира по описанной ниже инструкции отработала на ура.

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

Правим строчки:

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

Запускаем скачку исходников 8-го релиза

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

Чтобы упростить сборку можно выключить ненужные для сервера плюшки, в моем случае так:

/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/>reboot

Запускаем мастер, который поможет нам ознакомиться с изменениями в конфигах нового релиза (по сравнению с тем что есть у нас):

/root/>mergemaster -p

предлагают посмотреть изменения в /etc/group и /etc/master.passwd. На оба вопроса ответил «d» — удалить новый файл
Устанавливаем собранный ранее мир:

/root/>cd /usr/src
/usr/src/>make installworld
/root/>mergemaster -i

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

/root/>pw groupadd hast -g 845
/root/>pw useradd hast -u 845 -d /var/empty -g hast -s /usr/sbin/nologin
/root/>pw useradd auditdistd -u 78 -d /var/empty -g audit -s /usr/sbin/nologin

Перезагрузка в новую систему:

/root/>shutdown -r now

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

portsnap fetch update

Обновление autoconf и automake лучше сделать по официальной доке:

/root/>cd /usr/ports/devel
/root/>portupgrade -r autoconf
/root/>portupgrade -r automake

/root/>portupgrade -r autoconf-wrapper
/root/>portupgrade -r automake-wrapper

Perl тоже обновляем по официальной доке до 5.12

20100715:
  AFFECTS: users of lang/perl*
  AUTHOR: skv@FreeBSD.org

  lang/perl5.12 is out. If you want to switch to it from, for example
  lang/perl5.10, that is:

  Portupgrade users:
    0) Fix pkgdb.db (for safety):
        pkgdb -Ff

    1) Reinstall new version of Perl (5.12):
        env DISABLE_CONFLICTS=1 portupgrade -o lang/perl5.12 -f perl-5.10.\*

    2) Reinstall everything that depends on Perl:
        portupgrade -fr perl

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

/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

Ну вот и все! Наслаждаемся новой системой 🙂
Enjoy.

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

  1. Август 29th, 2013

Why ask?