Обновление FreeBSD.

Обновить ОС FreeBSD в общем случае достаточно просто и легко, но для начала нужно определиться какого рода обновления нас интересуют.

Любого рода обновления можно разделить на несколько категорий:

  • Обновление самой ОС FreeBSD
    • Обновление ядра FreeBSD
    • Обновление мира FreeBSD
  • Обновление установленного программного обеспечения ( порты, ports )

Теперь разберем по порядку каждый вариант обновлений.

Обновления ОС FreeBSD

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

  • Бинарное обновление.
  • Обновление «по старинке», сборкой из исходников.

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

Итак, что нужно набирать в консоли при бинарном обновлении:

# freebsd-update fetch
скачаем бинарные обновления с сервера обновлений

# freebsd-update install
установим обновления

# reboot
перезагрузка требуется если обновилось ядро или другие важные части системы

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

Вариант с обновлением из исходников требует немного больше телодвижений, а так же у вас должны быть исходники.

Для начала необходимо скопировать и поправить файлик с настройками:
# cp /usr/share/examples/cvsup/stable-supfile /root
в этом фале нужно поправить строки
*default host=cvsup4.ru.FreeBSD.org
адрес сайта можете поставить любой с которым у вас наиболее высокая скорость, например просто пропинговать несколько адресов меняя цифру 4.
*default release=cvs tag=RELENG_8_0
тут надо указать исходники какого релиза мы хотим скачать, в данном случае FreeBSD 8.0
Далее собственно скачиваем исходники системы, можно использовать либо старый cvsup либо рекомендуемая замена csup.

csup -g -L /root/stable-supfile
Приступаем непосредственно к компиляции:
# cd /usr/src/
# make buildworld
# make installworld
# reboot

После перезагрузки необходимо собрать ядро:
# cd /usr/src
# make buildkernel KERNCONF=GENRIC
# make installkernel KERNCONF=GENERIC
# reboot
В данном случае используем GENERIC ядро, но вы можете поправить ядро под свои нужды.

Обновление установленного программного обеспечения.

Есть несколько вариантов как установить софт в ОС FreeBSD:

  • Сборка из «портов»
  • Сборка из исходных кодов
  • Установка скомпилированых пакетов

Самостоятельная сборка из исходных кодов не рекомендуется, хотя вы наверняка знаете о проблемах если выбрали данный вариант.

Порты FreeBSD это грубо говоря набор указаний для системы, откуда скачивать исходники, какие патчи применять, какие права выставлять, и т.п.
Для того чтобы использовать всю мощь «портов» и их удобство, порты необходимо скачать и регулярно обновлять, делается это так:

# portsnap fetch
# portsnap extract
Эти две команды нужно использовать если у вас еще не установлены «порты».

# portsnap fetch update
Эта команда используется для обновления дерева портов

Для сборки какого либо порта например php нужно использовать такую команду:

# make -C /usr/ports/lang/php5/ install clean

Для обновления рекомендую использовать например portupgrade который так же можно установить из портов командой:

# make -C /usr/ports/ports-mgmt/portupgrade/ install clean

После обновления дерева портов нужно посмотреть что собственно требует обновления

# pkg_version -v|grep need
apache-2.2.15_2 < needs updating (port has 2.2.15_7)
freetype2-2.3.11 < needs updating (port has 2.3.12)
gio-fam-backend-2.22.4 < needs updating (port has 2.24.1)

Ну вот у нас есть явные кандидаты на обновление, при помощи portupgrade делаем примерно так:

# portupgrade -a
Такой командой мы обновим все.

# portupgrade apache-2.2.15_2
Такой командой мы обновим только пакет Apache

Установка и обновление уже собранных пакетов выглядит примерно так:

# pkg_add -r mc
Установка пакета Midnight Commander

# pkg_deinstall mc
Удаление пакета  Midnight Commander

# pkg_add -r mc
Установка обновленного пакета делается точно так же как и первоначальная его установка.

Вот в принципе и все премудрости обновления ОС FreeBSD и установленных программ.
Надеюсь данная статья пригодиться кому нибудь.
Хочу сделать небольшое замечание:
Перед обновлением чего либо читайте чейнжлог обновляемого ПО или ОС, иначе после очередного обновления вы рискуете получить например неработающий MTA, потому что разработчики упразднили какую либо функцию в своем софте.

Обновление FreeBSD: 7 комментариев

  1. cloudsv on 10 июля 2010 at 20:33 пишет:

    Еще есть неплохая утилитка pkgfe(/usr/ports/ports-mgmt/pkgfe)
    она использует portupgrade и позволяет замутить масс обновление.

  2. mitakie on 11 января 2011 at 18:33 пишет:

    Спасибо, статья очень доходчиво объясняет процесс

  3. slagm on 19 марта 2011 at 17:57 пишет:

    Установка пакета Midnight Commander
    # pkg_deinstall mc
    Удаление пакета Midnight Commander
    # pkg_add -r mc
    По моему коментарии к командам не совсем верные

  4. ntvisigoth on 12 мая 2011 at 21:05 пишет:

    Кажется еррор в статье.
    В месте где описывается обновления из сорцов, сначала говорится, что надо компилять мир и его ставить, а потом уже ядро. А надо наоборот!!! По одной простой причине, что новый софт может закладываться на новые фичи в новом ядре, которое еще не скомпилено и не заинсталено. Ога?! ;)

  5. admin on 30 мая 2011 at 0:22 пишет:

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

  6. s3men on 22 августа 2011 at 23:44 пишет:

    Если юзать cvsup то в свежескачанном /usr/src/UPDATING четко прописано что как и когда делать. Для полного обновления
    make buildworld
    make buildkernel
    reboot
    mergemaster -p
    make installworld
    mergemaster
    reboot

    и кстати как про mergemaster ничего не написали то? Он же все конфиги и скрипты обновляет, без него может и не запустится :)

  7. s3men on 22 августа 2011 at 23:46 пишет:

    ой после buildkernel еще и installkernel надо, куда ж без этого)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Навигация по записям