Обновление 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, потому что разработчики упразднили какую либо функцию в своем софте.