Локальное и удаленное обновление 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, можно инсталлировать автоматически

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <p> <span> <div> <h1> <h2> <h3> <h4> <h5> <h6> <img> <map> <area> <hr> <br> <br /> <ul> <ol> <li> <dl> <dt> <dd> <table> <tr> <td> <em> <b> <u> <i> <strong> <font> <del> <ins> <sub> <sup> <quote> <blockquote> <pre> <address> <code> <cite> <embed> <object> <param> <strike> <caption>
  • Строки и параграфы переносятся автоматически.
  • Вы можете использовать подсветку исходного кода следующими тегами: <code>, <blockcode>, <apache>, <bash>, <c>, <cpp>, <mysql>, <perl>, <php>, <python>, <text>. The supported tag styles are: <foo>, [foo].
  • Glossary terms will be automatically marked with links to their descriptions. If there are certain phrases or sections of text that should be excluded from glossary marking and linking, use the special markup, [no-glossary] ... [/no-glossary]. Additionally, these HTML elements will not be scanned: a, abbr, acronym, code, pre.

Подробнее о форматировании

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
1 + 1 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.

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

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer