Что нам стоит мир построить?
Докучаев Дмитрий aka Forb
Xakep, номер #059, стр. 059-086-2
Таблица: Конф-файл для cvsup
*default host=cvsup.ru.FreeBSD.org
*default base=/usr
*default prefix=/usr
*default release=cvs tag=RELENG_4_8
*default delete use-rel-suffix
*default compress
src-all
Привести скучный листинг конфигурационного файла без разъяснения опций – ничего не сделать. Подобные строки ты можешь найти в каталоге / usr/share/examples/cvsup. Поэтому я счел нужным указать значение каждой строки конфига. Параметр *default host несет за собой хост, с которого будет производиться скачивание нужных файлов для новой системы. В нашем случае – русский сервер с поднятым на нем cvsupd. *default base и *default prefix – директории, в которые будут скидываться и инсталлироваться закачанные файлы. *default release, как ты уже догадался, означает версию новой системы. В нашем случае – RELEASE ENGLISH 4.8. *default delete use-rel-suffix – рекомендуемые параметры. Объяснять их значения не буду ;). *default compress устанавливается при слабом канале в инет либо при экономии трафика. src-all – тип обновления. В нашем случае – вся система. Могут встречаться также значения src-bin, src-ports и т.п. За расшифровкой обращайся к мануалу.
На старт!
Когда все сделано верно, можешь запускать cvsup. Этот шаг не требует траты нервов ;), даже при самом неудачном раскладе система не пострадает. Запускать клиент мы будем с двумя параметрами – дебаг и путь к конфу. Verbose output нам нужен для полного контроля над процессом, что никогда не бывает лишним. Итак, командуем:
# cvsup -g -L 2 /path/to/your/cvsup.conf.
После успешного коннекта на сервер консоль преобразуется выводом от diff, который синхронизирует удаленные и локальные тексты системы. Длительность процесса зависит от объема инсталлированных сырцов системы, а также от канала в инет. У меня ушло около 20 минут.
Когда клиент закончит работу, ознакомься с последними его сообщениями. Возможно, отключение было вызвано некорректной работой либо сбоем в протоколе (лично я такого не встречал, но это вполне реально). Если этого не произошло – можешь смело переходить к следующей процедуре.
Строим мир
Следующий шаг, который необходимо сделать – отдать команду построение мира, то есть всей системы. Но прежде следует выполнить несколько важных действий, чтобы лишний раз обезопасить себя от фатального завершения сборки. Перво-наперво редактируем файл /etc/make.conf (при его отсутствии скопируй конф из /etc/defaults). В нем надо раскомментировать опции CFLAGS и NOPROFILE. Это нужно, чтобы обходить построение библиотек для профилирования. Вообще, команда make перечитывает этот файл перед исполнением команд. Следующим шагом будет подготовка бинарных файлов. Дело в том, что из-за устаревшей версии системы некоторые новые опции команд могут оказаться неопознанными. Яркий пример – в конце выполнения buildworld используется бинарник dd с опцией osync, которая отсутствует в дефолтовой поставке dd. Выходов два: либо переустановить dd, либо портировать его из другой фряхи, версия которой выше.