Обновление FreeBSD
Обновление 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 · Теги: csup, cvsup, FreeBSD, freebsd-update, pkg_add, pkg_deinstall, pkg_version, portsnap, portupgrade, обновление

10 июля 2010 в 20:33
Ссылка
Еще есть неплохая утилитка pkgfe(/usr/ports/ports-mgmt/pkgfe)
она использует portupgrade и позволяет замутить масс обновление.
11 января 2011 в 18:33
Ссылка
Спасибо, статья очень доходчиво объясняет процесс
19 марта 2011 в 17:57
Ссылка
Установка пакета Midnight Commander
# pkg_deinstall mc
Удаление пакета Midnight Commander
# pkg_add -r mc
По моему коментарии к командам не совсем верные
12 мая 2011 в 21:05
Ссылка
Кажется еррор в статье.
В месте где описывается обновления из сорцов, сначала говорится, что надо компилять мир и его ставить, а потом уже ядро. А надо наоборот!!! По одной простой причине, что новый софт может закладываться на новые фичи в новом ядре, которое еще не скомпилено и не заинсталено. Ога?! ;)
30 мая 2011 в 0:22
Ссылка
Да вот хрен его знает что в первую очередь надо компилить, на офф сайт давно заходил. При сборке так же может быть как зависимость от новых фич ядра так и от новых фич мира, так что истина где то там… =)
22 августа 2011 в 23:44
Ссылка
Если юзать cvsup то в свежескачанном /usr/src/UPDATING четко прописано что как и когда делать. Для полного обновления
make buildworld
make buildkernel
reboot
mergemaster -p
make installworld
mergemaster
reboot
и кстати как про mergemaster ничего не написали то? Он же все конфиги и скрипты обновляет, без него может и не запустится :)
22 августа 2011 в 23:46
Ссылка
ой после buildkernel еще и installkernel надо, куда ж без этого)