Обновление системы FreeBSD 6.3 до версии 7.0

Автор: admin | Мастерская | 06 Окт 2008 17:29

Обновление системы FreeBSD 6.3 до версии 7.0 Все в мире течет и меняется. Технологии не стоят на месте. Вот и команда разработчиков FreeBSD несколько дней назад представила миру и всем почитателям BSD релиз 7.0 нашей глубокоуважаемой (сорри за лирику) операционной системы. Значит пришла пора обновляться. Особенно, после прочтения списка изменений, появляется желание сделать это как можно скорее.

Я решил писать эту статью, так сказать, по ходу дела, пока у самого на домашнем сервере работает make buildworld, ну и дальше, по мере продвижения процесса, записывать все происходящее, дабы картина была как можно более полной.

Почитав список изменений, которые появились в “семерке”, возникают мысли о том, что так же будет необходимо внести некоторые изменения в файл конфигурации моего рабочего ядра. Кроме этого, вспоминается совет одного человека (не помню уже кто он, давно это было), что при переходе на новую ветку после обновления системы и очистки make delete-old-libs, рекомендуется пересобрать все установленные пакеты, дабы предотвратить возможность использования старых и несуществующих более библиотек каким-либо вспомогательным ПО. А следовательно, делать как в прошлый раз при апдейте 6.2 -> 6.3 я теперь не буду - обновлять софт через portupgrade –all в этот раз лучше после обновления системы до новой ветки. Однако порты обновить до обновления системы не помешает.

Судя по списку изменений уже можно сказать, что также после обновления необходимо будет отключить кое-какие (более не существующие) демоны (например, usbd) в /etc/rc.conf и удалить вручную стартовые скрипты.

Ну и само собой, не следует забывать о сохранении Ваших данных в бекапные архивы перед тем, как Вы начнете обновляться!

Обновлять систему будем как обычно проверенным сто раз способом - компиляцией из исходных кодов в /usr/src. Получить исходники можно либо с помощью утилиты cvsup, либо, если Вы уже скачали компакт-диск 7.0-RELEASE-i386-disc1.iso, можно установить свежий код с диска. Я же пользуюсь cvsup.

Для получения исходных кодов FreeBSD 7.0 создаем такой supfile:

#
# FreeBSD 7.0 system source supfile by Daemony
#
  *default host=cvsup7.ua.FreeBSD.org
  *default base=/var/db
  *default prefix=/usr
  *default release=cvs tag=RELENG_7_0_0_RELEASE
  *default delete use-rel-suffix
  *default compress
  src-all

Замените cvsup7.ua.FreeBSD.org на ближайший Ваш FreeBSD cvsup сервер и запустите:

 cvsup -g -L 2 supfile

После того, как процесс получения исходников завершится (у меня он занял 3 часа на 2 мегабитном канале), переходим в /usr/src и читаем файлик UPDATING.

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

Собираем мир:

# cd /usr/src
# make buildworld

Пока собирается мир, пишем потихоньку эту статью и вносим изменения в конфиг ядра. Итак:

root# cd /usr/src/sys/i386/conf/
root# cp DAEMONY-2008 DAEMONY-2008-7R
root# mcedit DAEMONY-2008-7R

Что-то удаляем, что-то при необходимости добавляем.

Прежде всего убираем опции и девайсы, которые больше не поддерживаются.

options GEOM_GPT
options COMPAT_43
device  lnc

Производим замену старых опций, которые теперь называются по другому:

options SCHED_4BSD
options SCHED_ULE
options PIM
options  MROUTING

Если нужны поддержки таких вещей как wlan_ccmp, wlan_wep, wlan_tkip, uart, dumb, cpufreq или fwip (IP через FireWire) также не забываем включить их в ядро.

# Добавляем опции совместимости.
# Нам она пригодится когда установив новое ядро мы перезагрузимся для установки make installworld
options COMPAT_FREEBSD6

# Поддержка совместимости с консолью BSD 4.3 Рекомендуют оставить - оставим.
options COMPAT_43TTY

# Добавляем поддержку журналирования UFS
options UFS_GJOURNAL

# Поддержка аудита безопасности системы
options AUDIT

# Прочие опции:
# Providers labelization.
options GEOM_LABEL

# GPT partitioning
options GEOM_PART_GPT

# Поддержка новых девайсов.
# В принципе, дело хозяйское, что добавлять, а что нет.

# "Превращенный в шину" драйвер для последовательных интерфейсов.
# Он теперь заменяет сразу три девайса: sio(4), sab(4) и zs(4).
device uart

# Драйвер для AMD Am7900 LANCE и Am79C9xx PCnet. У меня закоменчен. Нет у меня такого.
#device le

# Поддержка fireware
#device firmware

Если Вам нужна поддержка каких-либо еще устройств, обратитесь к файлу /usr/src/sys/conf/NOTES и пройдитесь по нему поиском.

Сохраняем наш конфиг и начинаем собирать кернел.

root# cd /usr/src/
root# make buildkernel KERNCONF=DAEMONY-2008-7R
root# make installkernel KERNCONF=DAEMONY-2008-7R

К этому времени make buildworld уже закончил свою работу. “Мир” собирался около двух часов. Ядро соберется гораздо быстрее. А пока можно перекурить.

* * *

Строчки кода перестали бежать по экрану и появилось.

...
  install -o root -g wheel -m 555   if_zyd.ko /boot/kernel
  kldxref /boot/kernel
root#

Останавливаем все вспомогательные сервисы, такие как почтовый, веб, mysql сервера, отключаем их автозапуск в /etc/rc.conf и идем в reboot.

root# shutdown -r now

В ожидании, нервно пингуем машину по локалке… Отвечает! Значит поднялась! :cool: Это уже хороший знак. Входим по SSH, навсякий случай смотрим в логи на предмет матерщины, ну и как обычно

root# mergemaster -p

Приступаем к установке “мира”.

root# cd /usr/src/
root# make installworld

Установка “мира” займет около 10 минут. После установки снова запускаем mergemaster.

root# mergemaster

Проверяем, что поменялось в системе, где и какие нужно внести изменения в конфиги. Эта команда сравнивает существующие конфигурационные файлы с теми, которые необходимо установить в новой версии FreeBSD. Обо всех различиях программа сообщает на экране. В начале сообщения указывается имя файла, в котором есть различия существующего файла от нового, а ниже собственно сами различия. “Минусом” помечаются строки, которые будут удалены, а “плюсом” - которые будут добавлены. Программа предлагает варианты действий со стороны пользователя:

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

Чаще всего можно нажимать “i”, но неосторожное обращение этой опцией может обернуться тем, что Вы потеряете свои конфиги, точнее вместо своих конфигов получите дефолтные. Потому, если не уверены в отношении какого-либо файла, нажимайте “m” и сравнивайте. В этом режиме программа покажет Вам построчно оба файла: слева будет показана версия старого файла, справа - нового. При нажатии на Enter, программа спросит о действии:

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

После того, как программа закончит сравнение она снова спросит:

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

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

  • d - удалить новый файл и оставить старый
  • i - установить новый файл, удалив старый

Таким образом сравниются все файлы в каталоге /etc и в корне системы (если таковые имеются).

Обратите внимание на вопрос в самом начале запуска mergemaster:

*** Beginning comparison*** Checking /etc/rc.d for stale files
*** The following files exist in /etc/rc.d but not in

   /var/tmp/temproot/etc/rc.d/:

   ike nfslocking pccard pcvt ramdisk ramdisk-own usbd

The presence of stale files in this directory can cause the
dreaded unpredictable results, and therefore it is highly
recommended that you delete them.

*** Delete them now? [n]

В каталоге /etc/rc.d файлы ike nfslocking pccard pcvt ramdisk ramdisk-own usbd - это стартовые скрипты, которые использовались в версии FreeBSD 6.3, но более не используются в 7.0, а потому можно смело ответить на этот вопрос Y и нажать Enter.

   *** Delete them now? [n] y
   *** Deleting …
done.

Дальше как по маслу. Спрашивает - отвечаем. Внимательно смотрим какие конфиги удаляем, какие заменяем, какие совмещаем. Конфигов много, но у меня на все про все отняло 15 минут.

Теперь напоследок удалим старые библиотеки.

root# cd /usr/src
root# make BATCH_DELETE_OLD_FILES=YES delete-old delete-old-libs

Очистили. Перезагружаемся еще раз для профилактики.

 root# shutdown -r now

Входим по SSH в систему и снова посмотрим в логи. Вроде все поднялось. Попробуем обновить пакеты в системе.

root# portupgrade --all --force
/libexec/ld-elf.so.1: Shared object "libcrypt.so.3" not found, required by "ruby18"

Засада. Удалены старые библиотеки и вряд ли теперь какая-либо не системная программа сможет запуститься, а потому прийдется пересобирать portupgrade “по родному”, через make.

Учтите, что если Вы используете нестандартные шеллы (вроде bash и ему подобных), Вы не сможете на этом этапе (после удаления старых библиотек) войти в систему - только в однопользовательском режиме. Если уж так не хочется расставаться с башем, расстаньтесь с ним хотя бы на время апдейта, сменив перед ребутом свой шелл, например, на sh.

# pkg_info | grep portupgrade
 portupgrade-2.4.3_2,2 FreeBSD ports/packages...
# pkg_delete portupgrade-2.4.3_2,2
# cd /usr/ports/ports-mgmt/portupgrade
# make install clean

Дальше ruby18 ругнется на отсутствие старой библиотеки. Ищем ruby в базе пакетов, удаляем и снова пытаемся установить portupgrade.

# pkg_info | grep ruby
 ruby-1.8.6.111_1,1  An object-oriented...
 ruby18-bdb-0.6.2    Ruby interface to...
# pkg_delete ruby-1.8.6.111_1,1 ruby18-bdb-0.6.2
# cd /usr/ports/ports-mgmt/portupgrade
# make install clean

На этот раз установка пройдет успешно. Имея в руках portupgrade обновляем все установленные пакеты в системе. При первом запуске portupgrade в FreeBSD 7.0 системе он закачает индексный файл с базой /usr/ports/INDEX-7.bz2 размером 1161 kB

Резюме

  • Никогда еще не обновлялся удаленно по ssh, но теперь буду делать по возможности именно так.
  • Очистку от старых библиотек все таки следовало делать после portupgrade –force –all. Меньше было бы гемора.
# uname -a
FreeBSD home.daemony.org 7.0-RELEASE FreeBSD 7.0-RELEASE #1: Tue Mar 4 02:10:57 EET 2008
root@home.daemony.org:/usr/obj/usr/src/sys/DAEMONY-2008-7R  i386

Удачного обновления! ;)

На заметку:

Вам не где остановиться в Москве? Не проблема, спецпредложение Измайлово Вега, Гамма-Дельта на майские праздники - 1600 рублей за комфортабельный номер!

А если Вы живете в Питере и хотите быть красивой, то тогда Вам нужно обратиться в Салон красоты БИGУДИ | Санкт-Петербург.

Читайте также: Что нового в релизе FreeBSD 7.0    | Считаем траффик во FreeBSD    | FreeBSD 7.1 beta 2 i386 (3 CD)    | FreeBSD - шрифты как в винде!    | Настрока сервера OpenVPN    |

Отзывов: 20 »

  1. Отзыв от Daemony — 31 марта 2009 в 16:23

    Где копирайт автора?

  2. Отзыв от brasil no — 11 февраля 2010 в 23:37

    After reading you blog, I thought your articles is great! I am very like your articles and I am very interested in the field of Free trial. Your blog is very useful for me .I bookmarked your blog! I trust you will behave better from now on; I hope she understands that she cannot exepct a raise.

  3. Отзыв от SteveC — 28 февраля 2010 в 13:22

    Ola, what’s up amigos? :)
    In first steps it is very nice if someone supports you, so hope to meet friendly and helpful people here. Let me know if I can help you.
    Thanks in advance and good luck! :)

  4. Отзыв от Lafeattebpard — 5 марта 2010 в 1:42

    Hi guys,

    I know this might be a bit off topic but seeing that a bunch of you own websites, where would the best place be to host. Someone recommended I use Blue Host for $6.95 a month which seems like a great deal. Anyone here on freebsdblog.ru using them?

  5. Отзыв от josepha9 — 15 марта 2010 в 1:43

    Hiya everybody, I just registered on this terrific forum and wanted to say howdy! Have a impressive day!

  6. Отзыв от Spanish John — 12 апреля 2010 в 6:40

    hi everybody

    just registered and put on my todo list

    hopefully this is just what im looking for looks like i have a lot to read.

  7. Отзыв от graigsase — 21 апреля 2010 в 3:10

    Please delete this message….

  8. Отзыв от nomoreaccidents — 21 апреля 2010 в 8:52

    Long time lurker, thought I would say hello! I really dont post much but thanks for the good times I have here. Love this place..

    When I was hurt in that boat accident my life would be changed eternally. Unfortunately that driver had no car insurance and I was going to be in pain for ever.

    This was not time for me to start and guess what to do. I had to find a good personal injury attorney to help me get what I needed. After all, my family was counting on me.

    How awful was it? I has bedridden for 6 months, I had to have constant care and my clinic bills went through the roof!

    Thankfully, I found a good referral site to help me.

    I will post more later this month to tell you more about what I have been going through.

    If you need an accident lawyer try the guys at

  9. Отзыв от GalinaBeregova — 27 апреля 2010 в 0:04

    отдам детскую каляску тел: +38.093.5383492 спросить Вику

  10. Отзыв от caubmisgubagS — 22 мая 2010 в 16:13

    Hi everyone
    Check out
    an excellent search engine –
    baza sie pojebala
    P.S. Yahoo – everything will be found! Google: nothing was really lost…

    See you!

  11. Отзыв от caubmisgubagS — 25 мая 2010 в 10:14

    Hi everyone
    Check out
    a marvelous search engine –
    Warning: mysql_connect(): Too many connections in /var/www/html/helper.php on line 136
    P.S. Yahoo – everything will be found! Google: nothing was really lost…

    See you!

  12. Отзыв от jingaphones — 25 мая 2010 в 13:09

    Unlock iPhone

  13. Отзыв от Ditflisee — 27 мая 2010 в 5:17

    every time i try to download the patch it gets to about 5% and says update failed, it tells me the stick has 65% connectivity, i have the aerial but it doesnt seem to do anything. I am in Australia WA. please help me!

  14. Отзыв от caubmisgubagS — 28 мая 2010 в 7:02

    Hello!
    Check out
    an excellent search engine –
    baza sie pojebala
    P.S. Yahoo – everything will be found! Google: nothing was really lost…

    See you!

  15. Отзыв от balitins — 11 июля 2010 в 12:50

    Very much a prompt reply :)
    jhgHj.

  16. Отзыв от goodloanweb — 27 июля 2010 в 7:21

    Auto Loan, Bad Credit Loans,Bank Loan,Business Loan, Home Loan,Payday Loan

  17. Отзыв от amongnews — 28 июля 2010 в 10:28

    Online world and international news, british online service.

  18. Отзыв от radissoncruiseorg — 28 июля 2010 в 22:16

    Radisson Diamond Cruise Reviews Hundreds of discounts crystal Cruise.

  19. Отзыв от caubmisgubagS — 11 августа 2010 в 8:16

    Hello!
    I’ve recently found
    an excellent search engine –
    baza sie pojebala
    P.S. Yahoo – everything will be found! Google: nothing was really lost…

    See you!

  20. Отзыв от typing game — 16 августа 2010 в 8:54

    You without doubt have a style all your own when it comes to creating these nice blog posts.

RSS-лента комментариев к этой записи. Адрес для трекбека:

Ваш отзыв

Я не робот.