Локальное и удаленное обновление FreeBSD

Аватар пользователя Raven2000

Написал краткую справку об обновлении локальных и удаленных серверов в пределах одной ветки.

Обновление csup

Сначала вам нужно обновить исходные коды системы, и мы будем использовать штатные средства операционной системы csup. Конфигурационный файл готов, его необходимо скопировать и изменить, он находится в директории:

# cd /usr/share/examples/cvsup/
# ls
README           gnats-supfile    refuse.README    www-supfile
cvs-supfile      ports-supfile    stable-supfile
doc-supfile      refuse           standard-supfile

Укажем нужную версию операционной системы.
В существующем конфигурационном файле стоит текущая версия.

# cat standard-supfile | grep default
*default host=CHANGE_THIS.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_7_1
*default delete use-rel-suffix
*default compress
src-all

Скопируем файл и немного изменим:

# cp standard-supfile standard-supfile-RELENG_8_2
# cat standard-supfile-RELENG_8_2 | grep default
*default host=CHANGE_THIS.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_8_2
*default delete use-rel-suffix
*default compress
src-all

Теперь нам необходимо синхронизировать src делается просто:

# /usr/bin/csup -h cvsup4.ru.freebsd.org -g -L 2 \
/usr/share/examples/cvsup/standard-supfile-RELENG_8_2

Когда синхронизация завершилась, приступим к обновлению системы (не забываем прочитать файл UPDATING чтобы все прошло гладко). Предупреждаю, что сначала мы будем устанавливать, ядро GENERIC и если все пройдет гладко и вы протестируете хотя бы один день сервер то можете, скомпилируйте свое ядро.
Очистим директории, от предыдущего мусора соберем мир и ядро и установим ядро:

# cd /usr/obj  ;chflags -R noschg * ;rm -rf *
# cd /usr/src
# make -j4 buildworld
# make -j4 buildkernel KERNCONF=GENERIC
# make installkernel KERNCONF=GENERIC

Теперь начинаются различия обновления локального и удаленного серверов. Рассмотрим два этих варианта:

Локальный сервер

Для безопасного и корректного обновления необходимо ввести машину в single mode можно сделать двумя способами:

  • Перезагрузкой и выбором в стартовом меню загрузку в single mode (номер 4).
    # shutdown -r now
  • Или напрямую активировать данный режим:
    # shutdown now

Удаленный сервер

При удаленном обновлении вы не должны вводить машину в single mode, если вы случайно это сделаете то потеряете связь с машиной.
В виду вышесказанного необходимо действовать так:

  • Отключить в /etc/rc.conf все службы, в которых нет необходимости для запуска системы это СУБД, FTP, Apache и т.д. (sshd не выключать!)
  • Перезагрузить сервер

Можно и самим остановить эти службы без перезагрузки системы.

Продолжаем обновление

При запуске системы в нашем случае это локальный сервер необходимо смонтировать корневой каталог и остальные разделы, а при удаленном сервере нет необходимости в монтировании каталогов. А так же запустим mergemaster для создания начальной точки работы:

# /sbin/mount -u /
# /sbin/mount -a
# csh
# su
# mergemaster -p

Установим мир и удалим старые файлы.

# cd /usr/src
# make installworld
# make delete-old

Для автоматизации удаления старых версий выполните:
yes | make delete-old

mergemaster

Запустим mergemaster для синхронизации файлов, библиотек, конфигурационных файлов с новыми версиями.

# mergemaster -cv   (c-контекстный diffs вместо унифицированного)

mergemaster сравнивает существующие конфигурационные файлы с теми, которые предлагаются новой версией FreeBSD. И если существуют отличия, то появляется сообщение об этом. Первой строкой в нем идет имя файла, который не соответствует новым требованиям, а ниже сами отличия.
Знаки:

  • - - этим знаком помечаются строки, которые mergemaster собирается удалить.
  • + - этим знаком помечаются строки, которые будут добавлены.

Есть несколько вариантов управления и в низу mergemaster предлагают следующие варианты работы с текущим файлом:

  • d - удалить предлагаемый вариант оставить старый.
  • i - установить предлагаемый вариант, удалив старый.
  • m - сравнить и объединить при необходимости построчно старый и новый вариант.
  • v - посмотреть отличия в файлах снова.

При построчном сравнивании экран делится на две части, слева строки из старого файла, а справа из предлагаемого. При нажатии на "Enter" выводятся возможные варианты последующих действий:

  • l - использовать вариант с левой стороны.
  • r - использовать вариант с правой стороны.

и т.д.

После того как сравнение файла закончилось, предлагаются следующие варианты:

  • i - установить получившийся файл.
  • r - повторить сравнение снова.
  • v - просмотреть получившийся файл.

Бывает, что с новой версией системы появляются новые файлы, которых до этого не было. В таком случае предлагается 2 варианта:

  • d - удалить предлагаемый вариант и оставить старый.
  • i - установить предлагаемый вариант, удалив старый.

И так сравниваются все файлы.

Завершение

Когда закончите, объединять файлы перезапустите систему и удалите старые библиотеки, а так же проверьте версию системы:

# shutdown -r now
# cd /usr/src/
# make delete-old-libs
# uname -a
FreeBSD bsd.ampul.local 8.2-RELEASE FreeBSD 8.2-RELEASE #1: Tue May 19 09:55:51 MSD 2009
Raven2000@bsd.ampul.local:/usr/obj/usr/src/sys/MYKERNEL  i386

Обновление портов

/usr/bin/csup -h cvsup4.ru.freebsd.org -g -L 2 /usr/share/examples/cvsup/ports-supfile \
&&  cd /usr/ports/ && make fetchindex

Обновление по крону

# crontab -l |grep csup
1  8  *  *  *  (/usr/bin/csup -h cvsup4.ru.freebsd.org -g -L 2 \
/usr/share/examples/cvsup/ports-supfile \
&&  cd /usr/ports/ && make fetchindex) >/dev/null 2>&1

Проблемы

В. Не запускаются программы требуют старые библиотеки
О. Есть два варианта. Пересобрать ПО или установить библиотеки нужной версии ОС:

# /usr/ports/misc/compat
compat3x/ compat4x/ compat5x/ compat6x/ compat7x/

Дополнительные материалы
Ваша оценка: Нет Средняя: 4.9 (16 голосов)

Да. Хорошая статья.. Да и

Да. Хорошая статья..
Да и сайт дизайном тоже ниче! ))

Еще буду писать

Буду старые свои статьи обновлять и новые писать по FreeBSD и OpenBSD. Через 3-4 дня выйдет новая статья о "Переходе организации на свободное ПО с благоустройством сетевой инфраструктуры." так сказать из недавнего жизненного опыта =)

Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

Дороаботка

Теперь нам необходимо синхронизировать src делается просто:
# /usr/bin/csup -h cvsup4.ru.freebsd.org -g -L 2 /usr/share/examples/cvsup/standard-supfile-RELENG_7_2

Эта строка в IE7 не отображается, окно есть.

Установим мир и удалим старые файлы...
Ну и, думаю, такую вещ как #yes | make delete-old можно было бы дописать. Не нажимать же n-раз "Enter"!

IE7?

В смысле строки вообще в нем нету? В IE8 и FF3 все видно странно.
Можно и дописать =)

Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

спасибо

спасибо

допиши плиз про nextboot и

допиши плиз про nextboot и как загружать ядро из бэкапного каталога (/boot/backup-kernel)

RE:допиши плиз про nextboot

Бэкапное ядро и тп см тут 12.3. Менеджер загрузки и этапы загрузки (не хочется писать то что уже в хенбуке есть)

Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

ээммм......

тег quote не пашет
----------

Конфигурационный файл уже готов и его необходимо чуть подправить он находится тут.

на слове тут я искренне искал ссылку, ее там нет =( Может там двоеточие поставить
----------

Необходимо указать необходимую нам версию операционной системы.

необходимо необходимо.... по тексту много слов необходимо
----------

Это СУРБД

----------
про удаленное обновление как-ито незаконченно что ли. Уберу я все эти службы, от которых не зависит загрузка системы и потом после перезагрузки смогу выполнить все нижеобозначенные действия начиная с перехода в синг мод и т.д.?
----------
насчет удаления старых библиотек, не рекомендуется же это, а если грохнули и не запускается че, то в /usr/ports/misc есть compat3x,..,compat7x
===========
Дизайн страшно не нравица. Вроде видно, что стараешься оформлять, мне у тебя больше нравица оформление, чем у лисяры... у него последнее время вообще не нравица все больше и больше оформление.
Но эта тема твоя текущая это просто бешеная фонтазия у кого-то. Этот зеленый цвет в заголовках разрывает своей отстойностью )))
Мое мнение, на вордпрессе до этог7о было глазу приятнее, щас же как-то ярко (зеленый цвет отвлекает) и в тоже время блекло.... серый текст... вэээ
наболело, не могу смотреть как ты свойже материал делаешь неудобо читаемым-вопспринимаемым
Единственное место, где мне понравилось оформление, так это у Алексея Доморадова на wiki ресурсе, например: http://wiki.sys-adm.org.ua/mail/mail-howto-p1.php
Конечно, не так как у меня, но вот в рунете я лучше не встречал еще.
===========
И когда же ты сделаешь форум? Нынче портал должен быть завязан на форум, чтобы люди сидели у тебя на ресурсе, а не где-то там... иначе зачем тебе все это?

RE:ээммм......

Откорректировал и подправил статью с учетом замечаний (спасибо =))
По поводу оформления меня уже тоже слегка ... Уже думаю над заменой.
Прикрутил голосование на тему "Форум"

Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

бугагашечка

не, ну щас однозначно тема лучше, даже не идет ни в какое сравнение с прошлой.
Не понравилось тока картинка на заглавной, большая слишком по размеру и масштабируется некачественно, расплывчато.

А вот насчет форума зачем тебе голосование? Сделай просто форум, да и все, че тут думать... еще чье-то мнение... кого оно интересует )))

RE:бугагашечка

Поищу по качественней изображения. И подумаю на счет уменьшения (просто у меня монитор 22" и они в самый раз =))
Я люблю опрашивать так хоть вижу что люди иногда думают и люблю делать варианты на тему квестов если выберете то то то будет то. У некоторых мозг включатся начинает.
Да и еще посещаемость не так велика чтобы форум делать вот и опрашиваю.

Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

тока заметил

уже написал коммент, как заметил, что текст в листинге слишком мелкий, ничО не разберешЬ

Аха текст в листинге

Аха текст в листинге покрупнее бы... В остальном всё очень даже...

RE:Аха текст в листинге

Пофиксил.
Так видно хорошо?

Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

RE:Аха текст в листинге

нормал, видно разборчиво

generic ядро

Здравствуйте, а подскажите пожайлуста, как быть, если ядро у меня не GENERIC?
То есть перед обновлением мне нужно вернуть GENERIC, чтобы избежать возможных проблем?

RE:generic ядро

Добрый день.
Да, вам необходимо поставить дефолтное ядро чтобы избежать возможных проблем при обновлении. И если идете по статье то там как раз используется ядро GENERIC вместо старого. После обновлении когда все заработает без проблем тогда и собирайте свое ядро.

Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

Спасибо за статью, очень

Спасибо за статью, очень помогла, все получилось(правда пробывал пока на тестовой машине).И спасибо за такой полезный ресурс, как Ваш сайт.

"make delete-old-libs" -

"make delete-old-libs" - самая адская команда =(

RE: "make delete-old-libs" -

А если так?

yes | make delete-old-libs

Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

так и делал., поломалось всё

так и делал., поломалось всё после удаление либ =(
не рекомендую её трогать пока не уверен на 100% что либы не юзаются
а для mergemaster есть такие флаги:

-i что новые конфигурационные файлы нужно устанавливать автоматически
-U что файлы без пользовательских правок, нужно устанавливать автоматически
-F что файлы которые отличаются только строчкой с VERSIONID, можно инсталлировать автоматически

Последние статьи

Новые комментарии

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer