Upgrade/source

handbook


 * Hetzner/update

Обновление до STABLE
/usr/bin/time -h csup -g -L 2 -h cvsup7.ru.freebsd.org /usr/share/examples/cvsup/stable-supfile Finished successfully       6m51.92s real           14.18s user             16.67s sys

/usr/bin/time -h make buildkernel && /usr/bin/time -h make buildworld >>> World build        2h11m26.79s real

Обвноление до RELEASE
Для этого надо поправить только одно место - tag (в строке его не передашь). Для получения релиза надо явно указать версию.

Если исходные коды в /usr/src/ уже есть, то можно их либо удалить, либо обновить. При обновлении они автоматически заменятся. Т.е. необходимости удалять - нету.

Читать /usr/src/UPDATING - там последние изменения. также там можно увидеть, какая вресия исходных кодов установлена, но сообщение о релизе не будет последним в этом файле ( FreeBSD 7.2-RELEASE), как ожидаешь в первый момент, выше будут расположена информация о неких p1 - p8. Это патчи которые вносятся в релиз уже после его выхода. Т.е. система 8.1 которую скачали сразу по выходу, будет отличаться от релиза 8.1 скачанного через некоторое время. И отличие будет в тех критичных патчах, чтобы были наложены во всех релизах, имеющих соответствующую ошибку. Например Fix a deadlock in the ULE scheduler. найденный в 2010 году будет добавлен в 7.1 и 7.2, вышедшие обе в 2009 году.

Чтобы время затрачиваемое на сборку узнать sudo /usr/bin/time -h make buildkernel

Не удаляя предыдущие сорцы (может быстрее получится?) при этом различия изменяются, остальное остается без изменений csup -g -L 2 -h cvsup7.ru.freebsd.org /usr/share/examples/cvsup/mysupfile


 * Сборка мира (1.15/1.23 часа на P D CPU 2.80GHz и 521Mb в /usr/obj)
 * Сборка ядра (20 минут и 503M в /usr/obj/usr/src/sys/)

Вручную сравнить /etc/groups и /usr/src/etc/group и скопируйте вручную

usr/src удалится, если csup указать неверный тег версии

Если исходные коды от предыдущенй версии нужны и есть место, то надо sudo mv /usr/src/ /usr/src_RELENG_7_1 Директория /usr/src будет создана автоматически при запуске csup

Если есть что, то сделать перед началом. Оно и по месту - один /usr/obj/ 1 Гб после сборки содердит sudo make cleanworld (оно уже весб obj тоже сносит?) rm -rf /usr/obj/usr/src/ (по сути sudo rm -rf /usr/obj  cd  /usr/src make clean (после этого на 300Мб уменьшается директория obj)

Можно запускать внутри screen sudo vi /usr/share/examples/cvsup/standard-supfile на предмет получения там строки *default release=cvs tag=RELENG_7_1 sudo csup -g -L 2 -h cvsup7.ru.freebsd.org /usr/share/examples/cvsup/standard-supfile cd /usr/src/ sudo make buildworld sudo make buildkernel
 * Перечень команд (если это первый раз)

sudo make installkernel sudo reboot 4 в меню для single-mode mount -u -o rw / mergemaster -p cd /usr/src make installworld make delete-old mergemaster reboot ???а если пользуют какие-то приложения? как определить make delete-old-libs


 * Использование mergemaster
 * Для больших файлов, чтобы перейти к концу - END и сразу удалить или установить

Для пользователей нестандартного ядра еще советуют sdiff GENERIC GENERIC

uname выдает что 7.0-RELEASE-p12 что это за p12? возможно то что было на самом верху UPDATING. т.е. сразу после выхода релиза в него добавили еще двенадцать патчей неких?

Если надо прервать сборку, то потом надо sudo make clean

make delete-old >>> Removing old files (only deletes safe to delete libs) remove /usr/sbin/pkg_check? y remove /usr/sbin/pkg_sign? y remove /usr/share/man/man1/pkg_check.1.gz? y remove /usr/share/man/man1/pkg_sign.1.gz? y >>> Old files removed >>> Removing old directories >>> Old directories removed To remove old libraries run 'make delete-old-libs'. file /usr/sbin/pkg_check /usr/sbin/pkg_check: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for FreeBSD 7.0 (700055), dynamically linked (uses shared libs), FreeBSD-style, stripped Т.е. старая версия и в 8.1 этих утилит нет

uname -a FreeBSD dc.pc.net 7.2-RELEASE-p8 FreeBSD 7.2-RELEASE-p8 #0: Tue Nov 16 18:28:48 MSK 2010    root@dc.pc.net:/usr/obj/usr/src/sys/GENERIC  i386

mergemaster ом запорос /boot/device.hints в начале файла оказались строки --- /boot/device.hints 1 +++ ./boot/device.hints 1 От чего ядро зависало (прогресс-слэш останвливался).
 * 7.0-7.1

Перед появлением меню проскакивали быстро сообщения (только фотоаппарат помог) Loading /boot/defauls/loader.conf Warning: syntax error on fiule /boot/device.hints --- /boot/device.hints 1 / Warning: syntax error on fiule /boot/loader.conf --- /boot/device.hints 1 /<BR> /boot/kernel/kernel text=0x75f664<BR>

после установки мира (куда входит loader) grub перестал грузить систему, только напрямую грузится Похоже, на все страницы стало распространяться правило Western, где до этого в целях теста стояло 40 в качестве размера. Cyrillic распространяется на страницы отдаваемые по FTP. "Русскими" он считает яндекс и рт, похоже. За счет чего cyrillic или western? pw groupdel lke set vfs.root.mountfrom=ufs:/dev/ad14s1a boot -s
 * 7.1-7.2
 * 7.2-7.3
 * отвалились шрифты в ff (xorg.conf прежний) и настройки в самом браузере остались прежними (как указано в firefox)
 * по ошибке заменил /etc/passwd на пустой. пришлось добавлять заново себя и выставлять пароль на root, который стал пустым. Сначала пришлось делать удаление группы, потому что иначе добавлять пользователя не хотело.
 * 7.3-8.0
 * откис русский язык в консоли и в иксах (только ввести можно русские буквы). хотя вроде все на месте.
 * Изменилось поведение системы - теперь если грузишься в single и не монтируется корернь (из-за неверной строки вв fstab), то после указания корневого раздела загрузка производится дальше. Пришлось выходить в консоль загрузчика по 6 и там вводить
 * много удаляется по make delete-old - несколько минут просто y отвечать на запросы


 * Время и место
 * 1) csup
 * 2) *4m43,33s real          21,58s user             27,22s sys
 * 3) *5m45,57s real          21,66s user             22,84s sys
 * 4) *494M   /usr/src
 * 5) *499M   /usr/src
 * 6) buildworld
 * 7) *1h28m47,70s real               1h13m42,18s user                13m40,79
 * 8) *1h21m5,27s real        1h12m56,59s user                7m19,28s sy
 * 9) *1h30m16.73s real               1h20m39.36s user                8m14.97s sys
 * 10) *534M   /usr/obj/
 * 11) buildmakekernel
 * 12) *28m19,69s real         24m4,59s user           3m33,55s sys
 * 13) *567M   /usr/obj/usr/src/sys/

dd if=/dev/ad14 of=/dev/ad6 bs=2 28 минут для 80Гб диска, скорость показывало 50МБ/с
 * На критичиной системе
 * 1) Поставить диск такого же или большего размера
 * 2) Перезагрузиться в single-mode


 * Вопросы
 * А при установке нового мажора - порты же старые остаются, от предыдущей версии? Как это сказывается?


 * http://www.cyberciti.biz/faq/freebsd-8-upgrade-tutorial/
 * http://www.daemonforums.org/showpost.php?p=22676&postcount=8
 * http://www.daemonology.net/blog/2007-11-11-freebsd-major-version-upgrade.html
 * http://www.daemonology.net/blog/2007-11-10-freebsd-minor-version-upgrade.html
 * http://www.cyberciti.biz/faq/upgrade-freebsd-server-software/
 * http://forums.freebsd.org/showthread.php?t=7450

Десктоп
>>> World build completed on Tue Jul 26 02:41:44 MSD 2011 2h38m33.06s real               2h8.68s user            16m35.57s sys

make installkernel nextboot -o "-s" -k kernel mount -u -o rw / mergemaster -p cd /usr/src make installworld mergemaster make delete-old make delete-old-libs

Обновление программ portupgrade -a pkgdb -F

Стали вылезать запросы конфигов - тандерберда, майскуэля. Надо было запускать работу с конфигами заранее.

Остановилось ---> Cleaning out obsolete shared libraries [Updating the pkgdb <format:bdb_btree> in /var/db/pkg ... - 519 packages found (-0 +1). done] - textproc/p5-XML-LibXML (p5-XML-LibXML-1.72,1)
 * Listing the failed packages (-:ignored / *:skipped / !:failed)

Снова pkgdb -F <PRE> ---> Checking the package registry database Stale dependency: folks-0.2.1 -> p5-XML-LibXML-1.72,1 (textproc/p5-XML-LibXML): p5-XML-SAX-0.96 (score:41%) ? ([y]es/[n]o/[a]ll) [no] yes </PRE>

При повторных запусках portupgrade даже не выводит ничего

portversion показывает что все установленное равно портам