Документация по ОС FreeBSD Пятница, 29.03.2024, 10:21
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Мои статьи [0]
Установка и настройка [281]
X Window [25]
Man pages [30]
Ports & Packages [26]
cvs [18]
Multimedia [20]
Нововсти в мире Unix [0]
RFC [4]
RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Безопасность [52]
Работа с железом [58]
Книги по FreeBSD [17]
Сеть [505]
Программирование [40]
FireWall [58]
Темы экзамена BSDA [14]
Официальные темы экзамена BSDA, включая подробноые описания и советы по обучению.

Главная » Статьи » cvs

Еще одна версия статьи по обновлению FreeBSD
Вашему вниманию предлагается вниманию еще одна статейка по обновлению FreeBSD, которую написал и опробовал dio.

Добрый день всем! Решил написать статейку о методах обновления FreeBSD, но сразу оговорюсь, что оная НЕ является ни альтернативой, ни исправлениями статьи, написанной crash по этой же тематике много ранее, причем полно и точно. Эти материалы лишь кое–что дополняют и, возможно, уточняют отдельные моменты для более точного понимания начинающими администраторами.

Речь пойдет сначала о CVSUP, а затем плавно перейдет к апгрейду при помощи инсталляционного диска с новой версией системы. Речь будет идти о линейке 4.х

Итак, CVSUP.

Основное – CVSUP обновляет лишь базовые компоненты системы. Отдельные программы – оболочки, веб-серверы или редакторы надо обновлять вручную.
До начала всех процедур убедитесь, что в системе есть исходный код, т.е. каталог /usr/src должен содержать дерево исходного кода. Если его нет там (Вы его не установили при установке системы), то доустановите его с установочного диска, хотя и это не обязательно…но администраторы, обслуживающие зеркала CVSUP не очень рады, когда это делается, так как в процессе обновления с помощью CVSUP загружаются только изменения между текущей версией и той, до которой вы обновляетесь, а не тянется весь исходный код!
По поводу supfile хочется отметить то, что за его основу желательно брать stable-supfile из каталога /usr/share/examples/cvsup, а уж потом его модифицировать под свои нужды. Кстати – в нем много комментариев, с которыми полезно ознакомиться.
По поводу файла refuse хочу отметить только то, что в нем НЕ должно быть комментариев.

Уточнения по поводу команд:

1 – make buildworld задействует исходный код для сборки системного компилятора и нужных библиотек. Затем собирает все базовые компоненты системы и помещает их в /usr/obj, но не устанавливает их на этом этапе.
2 – Для задействования опции KERNCONF в команде make buildkernel KERNCONF=…
в файле /etc/make.conf эта переменная KERNCONF должна быть установлена и определена, иначе по умолчанию будет заново собрано ядро GENERIC – что у меня и вышло собственно, к моему изумлению! 
3 – Третья фаза – установка нового ядра и модулей make installkernel. Тут не обязательно после перезагрузки грузиться в сингл режиме, скорее наоборот, загрузитесь в обычном порядке и проверьте, как работает почта? Веб? Если все хорошо, то с ядром все в порядке, если нет – вернитесь и проделайте все заново. При этом различные программы вроде top работать не должны, так как они хотят иметь доступ к ядру, но остальное должно работать!
Если ядро и остальные программы работают, то можно устанавливать остальную часть системы.
4 – Вот тут нужно перейти в однопользовательский режим #shutdown now
Затем # cd /usr/src
# make installworld

Теперь будут устанавливаться остальные программы базовой части системы.
По поводу утилиты mergemaster надо заметить, что ее использование подразумевает уверенное знание интерфейса работы в формате команды diff, причем в выводе знак – означает строки СТАРОГО файла, а + НОВОГО. Смотрите не перепутайте!
Никогда не заменяйте файлы passwd и group
5 – В окончании mergemaster предложит установить новый сценарий /dev/MAKEDEV – СДЕЛАЙТЕ ЭТО.
6 – В командах make build…(но НЕ install!) применяйте опцию от –j4 на однопроцессорных машинах, до –j10 на многопроцессорных. Существенно уменьшает время испольнения соответствующих команд!
В окончании и после всех перезагрузок вы должны получить ожидаемый вывод uname –a, отсутствие ошибок в /var/run/dmesg/boot и конечно ядро, которое загрузиться без проблем!
7 – Если что–то пошло не так или вывалилось с ошибками, проделайте следующее:
# chflags –R noschg /usr/obj/usr
# rm –rf /usr/obj/usr
# cd /usr/src
# make cleandir
# make cleandir
Последние две команды выполнятьименно дважды! Затем повторить весь процесс заново, начиная с make buildworld.

Теперь вот что. Очень многие источники (М.Лукас, М.Эбен, Р.Смит) – я сам просмотрел! - указывают на большую опасность обновления системы таким образом, а уж тем более на работающем сервере, где его выключение на длительное время недопустимо, не говоря уже о сложности такого процесса. Кроме того, другие источники говорят о снижении стабильности работы системы в целом при нескольких перестроениях посредством CVSUP…что же делать?

Итак, обновление посредством install CD с новой версией.

Тут все гораздо проще и быстрее! Грузимся с нового диска (например, у вас стоит система 4.7, а хотите 4.11, так вот грузимся с диска, содержащего версию 4.11)
При выходе в sysinstall в меню выбираем Upgrade. Читаем заметки об обновлении и переходим к выбору дистрибутивов. Тут важно помнить – что именно вы устанавливали?! То и выбираем для обновления. Минимум это должно быть bin…но есть вероятность работать в системе 4.11, а мануалы читать из 4.7 – будьте внимательны!
Причем, кто следовал алгоритму установки по книге А.Федорчука, лучше вернитесь к старой версии и доустановите все с CD из Distributions-src (те выбрать там all), а потом вернитесь опять к апгрейду!
Дальше еще интересней!
После выбора компонентов для установки, программа выкидывает вас в DISKLABEL EDITOR…без паники…это нормально!
Я несколько раз это все делал, прежде чем понял, зачем она это делает…
Тут надо просто смонтировать все те разделы (клавиша М!), которые у вас уже установлены в системе, кроме swap конечно. Затем система их проверит и начнет установку…важно не ошибиться, какой у вас раздел сколько места занимает. Точки монтирования НЕ указаны, необходимо иметь карту разделов, о которой я писал в своей другой статье (о gentoo), те знать, какой раздел как у вас называется и сколько занимает места, тогда вы без ошибки их смонтируете.

После завершения система напишет Upgrade completed. All of your old /etc files have been restored. New /etc files are in /etc/upgrade. Они там и будут, я проверял.

Затем запускаем #mergemaster –cv (те его локальный вариант, а не глобальный, как после buildworld) и, если вы установили, как я и говорил все(all) из Distributions, то после замены нужных вам новых файлов для /etc из каталога /etc/upgrade в формате команды diff(8), получите желаемое – обновленную систему! Удачи вам во всем. Пишите комментарии, если возникли вопросы.

Автор статьи: dio
Категория: cvs | Добавил: oleg (17.12.2007)
Просмотров: 1789 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024