Обновление FreeBSD с 6.3 на 7.0


В этой маленькой заметке я поделюсь своим опытом по “теме” .
как обновлялся я
Поехали…
1. Редактируем версию для cvsup/csup

/usr/share/examples/cvsup/stable-supfile

или другой, смотря какой файл прописан в /etc/make.conf как параметр SUPFILE= и заменяем там RELENG_6 на RELENG_7
2. Обновляем исходники системы,ядра etc

cd /usr/src
make update

3. Если у тебя ядро GENERIC то

rm -rf /usr/obj/usr/
cd /usr/src
make buildworld kernel

или

make buildworld kernel KERNCONF=<имятвоегоконфигаядра>

4. А в это время

mcedit /usr/ports/misc/compat6x/Makefile

там находишь и комментируешь IGNORE= ->#IGNORE=
это не страшно,потому что при обновлении дерева портов все вернется на место

cd /usr/ports/misc/compat6x/
make fetch

Т.е. выкачиваем исходники этого порта чтобы потом собрать
5. Когда ядро и мир собрались

reboot

6. Далее штатно как написано в /usr/src/Makefile

mergemaster -p
make installworld
make delete-old
mergemaster
reboot

7. После ребута
СНАЧАЛА установим порт compat6x

cd /usr/ports/misc/compat6x/
make install

а ПОТОМ удаляем старые библиотеки из системы

cd /usr/src
make -DBATCH_DELETE_OLD_FILES delete-old-libs

8. Потом интересная фишка с портами
(я пользуюсь portupgrade)

pkg_delete -f `ls /var/db/pkg/|grep ruby`
cd /usr/ports/ports-mgmt/portupgrade
make deinstall
make install clean
pkgdb -uf
pkgdb -F

если стоит /usr/ports/sysutils/detach то

detach portupgrade --batch -af -x 'ruby*' -x 'portupgrade*'

или без него
ВОТ

p.s.
само собой все от root-a
сборка ядра и последняя пересборка всех пакетов занимают много времени (в зависимости от мощности машинки)
и последнее когда пройдет обновление портов попробуй

ldd /usr/local/bin/*|grep compat|wc
ldd /usr/local/sbin/*|grep compat|wc

если вернет 0 значит на 98% можно уверено делать

pkg_delete compat6x*

p.p.s
все прошло гладко и прозрачно для пользоватедей на 28 серверах большинство которых удалённые

Обновлено: 12.03.2015