Обновление ядра и мира
Про обновление много написано на сайте FreeBSD
- однако, по просьбам трудящихся, решил сам вкратце пробежаться по этой
теме. Несмотря на наличие этой инструкции и работоспособность
предложенных тут телодвижений - советую делать так, как предложено в хандбуке, а не следовать моим советам :)
Немного про то, почему я делаю не так. Я никогда не обновлялся
радикально - с переходом из ветки в другую (4.x->5.x или 5.x->6.x)
- ибо не вижу чего-то радикально нового в новых фрях, чтобы к этому
стремиться. Для однопроцессорных машин лучше 4.11 ничё не придумали :) А
при смене оборудования - да, приходится ставить новые версии - ради
64-х разрядности и дров. Ну, а при обновлении в пределах одной ветки (не
считая 5-ки - там были вроде коренные изменения какие-то между 5.0 и
5.2), не стоит заморачиваться насчёт точного следования инструкции -
отличия обычно именно в дровах и в исправлениях ошибок. Конечно, что-то
по мелочи меняется (типичный пример - при обновлении с 6.0 до 6.1
нехочет инсталлится мир - ибо в 6.1 добавили новую группу пользователей.
Правда я и тут не стал следовать выводиммым при этом инструкциям, а
добавил её руками :)), но в общем и целом эта одна и таже система.
Итак. Имеем, для примеру (абсолютно реальный пример - обновлял пару дней назад фряху - ошибся в синтаксисе конфига cvsup и вместо того, чтобы обновиться - откатился.) FreeBSD 4.11 такой версии:
/usr/home/lissyara/>uname -r 4.11-STABLE /usr/home/lissyara/>
| Для начала ставим cvsup из портов - это описано тут. после чего имеем такой набор файлов:
/usr/home/lissyara/>cd /usr/share/examples/cvsup/ /usr/share/examples/cvsup/>ll total 36 -r--r--r-- 1 root wheel 1180 9 май 19:43 README -r--r--r-- 1 root wheel 5274 9 май 19:43 cvs-supfile -r--r--r-- 1 root wheel 2773 9 май 19:43 doc-supfile -r--r--r-- 1 root wheel 2427 9 май 19:43 gnats-supfile -r--r--r-- 1 root wheel 3903 9 май 19:43 ports-supfile -r--r--r-- 1 root wheel 349 9 май 19:43 refuse -r--r--r-- 1 root wheel 1918 9 май 19:43 refuse.README -r--r--r-- 1 root wheel 4013 9 май 19:43 stable-supfile -r--r--r-- 1 root wheel 3172 9 май 19:43 standard-supfile -r--r--r-- 1 root wheel 2498 9 май 19:43 www-supfile /usr/share/examples/cvsup/>
| После чего берём какой-нить stable-supfile и приводим к такому виду (для 4.11):
# конфиг для обновления исходных кодов: *default host=cvsup4.ru.FreeBSD.org *default base=/usr *default prefix=/usr *default release=cvs tag=RELENG_4_11 *default delete use-rel-suffix *default compress src-all
| или к такому - для 6.1
# конфиг для обновления исходных кодов: *default host=cvsup4.ru.FreeBSD.org *default base=/usr *default prefix=/usr *default release=cvs tag=RELENG_6_1 *default delete use-rel-suffix *default compress src-all
| Проверяем, а есть ли у нас исходные коды? :)
/usr/home/lissyara/>cd /usr/src/ /usr/src/>ll total 142 -rw-r--r-- 1 root wheel 6117 2 янв 2005 COPYRIGHT -rw-r--r-- 1 root wheel 8480 16 апр 2003 Makefile -rw-r--r-- 1 root wheel 24306 11 май 10:48 Makefile.inc1 -rw-r--r-- 1 root wheel 9761 28 авг 1999 Makefile.upgrade -rw-r--r-- 1 root wheel 2699 26 апр 2002 README -rw-r--r-- 1 root wheel 46655 19 апр 11:03 UPDATING drwxr-xr-x 32 root wheel 512 20 окт 2005 bin drwxr-xr-x 45 root wheel 1024 20 окт 2005 contrib drwxr-xr-x 7 root wheel 512 20 окт 2005 crypto drwxr-xr-x 14 root wheel 2048 11 май 10:49 etc drwxr-xr-x 41 root wheel 1024 20 окт 2005 games drwxr-xr-x 6 root wheel 512 20 окт 2005 gnu drwxr-xr-x 6 root wheel 1536 20 окт 2005 include drwxr-xr-x 7 root wheel 512 20 окт 2005 kerberos5 drwxr-xr-x 8 root wheel 512 20 окт 2005 kerberosIV drwxr-xr-x 57 root wheel 1536 20 окт 2005 lib drwxr-xr-x 35 root wheel 1024 20 окт 2005 libexec drwxr-xr-x 10 root wheel 512 11 май 10:49 release drwxr-xr-x 82 root wheel 1536 20 окт 2005 sbin drwxr-xr-x 6 root wheel 512 20 окт 2005 secure drwxr-xr-x 23 root wheel 512 20 окт 2005 share drwxr-xr-x 49 root wheel 1024 20 окт 2005 sys drwxr-xr-x 8 root wheel 512 20 окт 2005 tools drwxr-xr-x 221 root wheel 3584 20 окт 2005 usr.bin drwxr-xr-x 158 root wheel 3072 20 окт 2005 usr.sbin /usr/src/>
|
Если нету - надо поставить. (Если быстрый и халявный инет - то cvsup это
сам сделает при попытке обновиться - но учтите - это будет стоит
прилично траффику - для 6.1 попробовал - 104 мега входящего, и час
времени - но тут в канал упёрлось. Как оказалось он неплохо жмёт - всего
получилось 418 мегабайт исходников. На 4.11 их поменьше - 338Mb,
соответственно и траффику будет меньше). После чего запускаем
обновление:
/usr/share/examples/cvsup/>cvsup -g -L 2 stable-supfile Parsing supfile "stable-supfile" Connecting to cvsup4.ru.FreeBSD.org Connected to cvsup4.ru.FreeBSD.org Server software version: SNAP_16_1h Negotiating file attribute support Exchanging collection information Establishing multiplexed-mode data connection Running Updating collection src-all/cvs Checkout src/COPYRIGHT Edit src/Makefile.inc1 Add delta 1.141.2.70.2.1 2004.12.17.13.41.58 kensmith Checkout src/UPDATING ............. ............. Checkout src/usr.sbin/syslogd/syslogd.c Shutting down connection to server Finished successfully /usr/share/examples/cvsup/>
| Ну и
всё. Имеем обновлённые исходные коды системы. Можно собирать `мир`
(вкратце - мир - это то, что не ядро :) - пользовательские программы -
типа grep, awk, sh, chmod и прочего. Короче всё, что не входит в ядро и
модули ядра.). Перед сборкой рекомендуется вернуть взад все
нестандартные опции из /etc/make.conf - у
меня там, например налеплена оптимизация O3, тип CPU да ещё кое какие
мелочи. Я ничё не убираю. Хотя в случае проблем - если что-то не
собирается или не инсталлится - стоит посмотреть, что там и убрать
лишнее (на 4.x по-дефолту этого файла вообще нет, в 6.x в нем тока пара
строк про версию перла. На это и ориентируйтесь).
/usr/home/lissyara/>cd /usr/src/ /usr/src/>rm -R /usr/obj/* && make cleandir && make cleandir && \ ? make buildworld && make installworld && shutdown -r now
| make cleandir
делать дважды рекомендует хандбук (я ещё make clean делаю... На всякий
случай...). Сборка достаточно длительный процесс - на AMD64 3200+ на
сборку мира от FreeBSD 6.1 у меня уходило чуть больше часа. Для 4.11
соответственно намного быстрей - раза в два-три (на PII-266 уходит
порядка 5-ти часов - для мира 4.11). На этой машине, на которой щас
мучаем (AMD K7, Duron 1100MHz, FreeBSD 4.11) ушло час и десять минут, и
минут 10 на инсталляцию.
После чего перезагрузка, и собираем ядро. Собсно частенько бывает
проблемой вспомнить - а какое ядро у меня стоит щас? :) это можно легко
проверить:
/usr/home/lissyara/>uname -v FreeBSD 4.11-STABLE #0: Wed May 10 23:59:44 MSD 2006 lissyara@mx.lissyara.su:/usr/obj/usr/src/sys/router.acpi /usr/home/lissyara/>
| Сборку ядра я уже описывал, но тут пробегусь ещё разок.
/usr/home/lissyara/>cd /usr/src/ /usr/src/>rm -R /usr/obj/* && make clean && make clean \ ? make buildkernel KERNCONF=router.acpi && \ ? make installkernel KERNCONF=router.acpi && shutdown -r now
| Ядро собралось бодренько - за 14 минут. После перезагрузки получилось:
/usr/home/lissyara/>uname -r 4.11-RELEASE-p17 /usr/home/lissyara/>
| Вот и всё.
размещено: 2006-05-11,
последнее обновление: 2006-05-11,
автор: lissyara
|