Инструменты пользователя

Инструменты сайта


обновление_портов_релиза_и_ядра_freebsd

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
обновление_портов_релиза_и_ядра_freebsd [2014/03/28 13:09]
81.222.241.194
обновление_портов_релиза_и_ядра_freebsd [2014/03/28 18:24] (текущий)
Строка 6: Строка 6:
 Как видно из вывода команды, данная программа находится в директории: // /usr/ports/devel/svn2git // Как видно из вывода команды, данная программа находится в директории: // /usr/ports/devel/svn2git //
  
-Дадее переходим в эту директорию и вводим команду: **make install clean**+Далее переходим в эту директорию и вводим команду: **make install clean** 
 +Отвечаем на вопросы с установкой, можно оставить дефолтные настройки, после установки переходим в каталог // /usr/ports/ // и удаляем всё его содержимое **rm -rf * ** после переходим в // /usr/src/ // и удаляем его содержимое **rm -rf * **.
  
 +Теперь нам необходимо перенести содержимое исходников и портов от релиза 9.1 (Либо того релиза, до которого вы хотите обновиться. Список релизов можно увидеть на странице [[http://www.freebsd.org/releases/]] )
 +Вот тут то нам и понадобится наш svn. Вводим вот такие вот 2 команды:
 +**svn co svn://svn.freebsd.org/base/release/9.1.0 /usr/src**
 +**svn co svn://svn.freebsd.org/ports/head /usr/ports**
  
 +После переноса содержимого портов и исходных кодов, мы вводим команду:
 +**freebsd-update -r 9.1 upgrade** Где 9.1 это наш релиз, до которого мы хотим обновиться. И далее
 +**/usr/sbin/freebsd-update install**
 +
 +Теперь мы обновили сам релиз, но остались ещё пакеты и конечно же ядро. Так как я использую архитектуру //i386// , то путь к конфигурационному файлу моего ядра будет // /usr/src/sys/i386/conf // (если вы используете архитектуру // amd64 // , то путь к вашему конфигу будет // /usr/src/sys/amd64/conf // )
 +
 +В этом каталоге нам понадобится файл **GENERIC**, это и есть конфиг ядра, которым нам понадобится, скопируем этот файл **cp GENERIC FW00** (FW00 это то, как я решил назвать ядро, которое я собственно и буду собирать)
 +
 +Теперь открываем наш конфиг **vim FW00** и видим поддерживаемые девайсы и опции, которое включает в себя этот конфиг. (Не большое примечание. Как вы могли уже догадаться по названию ядра, то я собираю фаерволл и так как я не использую протокол IPv6, то я его отключу в целях безопасности, для этого необходимо просто удалить строчку **options   INET6**). Теперь мы можем вписать сюда необходимые нам опции и убрать то, что не будет использоваться. Список опций ядра, можно найти в [[http://www.freebsd.org/doc/ru/books/handbook/kernelconfig-config.html]] там подробно описаны все необходимые опции. Я включил для себя поддержку:
 +
 +  device pf
 +  device pfsync
 +  device pflog
 +  device carp
 +
 +  options IPSEC
 +  options IPSEC_DEBUG
 +  device crypto
 +
 +  options ALTQ
 +  options ALTQ_CBQ 
 +  options ALTQ_RED 
 +  options ALTQ_RIO 
 +  options ALTQ_HFSC 
 +  options ALTQ_PRIQ 
 +
 +Эти опции весьма полезны для работы с фаерволлом pf. Но про сам pf и его девайсы я напишу позже, когда у меня будет время. Вы можете указать любые другие опции, которые вы посчитаете нужными. 
 +
 +Так давайте приступим к самому обновлению нашего "мира" и ядра >=)
 +
 +Переходим в каталог исходников **cd /usr/src/** и производим сборку нашего ядра.
 +**make -j4 buildkernel KERNCONF=FW00** параметр -j4 это количество потоков, я использую все 4ре, если в это время кто-то ещё работает с вами на сервере, то лучше выставите более меньшее количество потоков, что бы не мешать работе другому человеку или службе, которая для вас жизненно необходима, но если вы делаете процедуру обновления на отдельном сервере, то можете выделить то количество потоков, которое вам необходимо.
 +
 +Далее необходимо собрать сам "мир"
 +
 +**make -j4 buildworld**
 +
 +После сборки мира, вводим команду: **mergemaster -p** и переходим к самой установке ядра и мира:
 +**make installkernel KERNCONF=FW00**
 +**make installworld**
 +
 +После завершения процесса установки вводим **mergemaster** и перезагружаемся **reboot**.
 +
 +Теперь мы можем войти в нашу обновлённую систему и произвести обновление самих пакетов из портов, для этого нам понадобится ввести 3 команды:
 +
 +**portupgrade -rRFa**
 +**portupgrade -nrRba -l portupgrade_show**
 +**portupgrade -rRbak --batch -y x tripwire -l portupgrade_show** - в данном примере, опцию **x tripwire** можно пропустить, если у вас нет данного пакета. Я же решил его не обновлять, так как мне он больше не нужен.
 +
 +После этого мы можем произвести обновления наших программ, через **pkg**, для этого введём: 
 +**pkg update && pkg upgrade** 
 +
 +Но вот тут то у меня и появилась ошибка связанная с пакетом perl ( pkg не видел новую версию (необходимая 5.14 и реально присутствующая 5.16)) 
 +FIXME Давай те исправим это, введём команду:
 +
 +**pkg set -o lang/perl5.14:lang/perl5.16**
 +
 +И после этого мы снова может вернуться к нашему обновлению, **pkg update && pgk upgrade** (не забываем утвердительно отвечать на вопросы "y")
 +
 +После этого мы можем перезагрузить систему, что бы удостовериться что всё работает как надо. Так же, в портах есть весьма полезная программа **portaudit**, которая покажет вам список уязвимых пакетов в вашей системе и даст ссылку на описание этой уязвимости. но так как мы перешли на систему пакетов **pkg**, то теперь, чтобы произвести "аудит" нам необходимо ввести команду: **pkg-static audit -F** и если мы увидим строки:
 +
 +Vulnxml file up-to-date.
 +0 problem(s) in the installed packages found.
 +
 +То значит всё у нас хорошо, уязвимых пакетов нет. можно спать спокойно =)
 +
 +Так же, теперь мы может искать и устанавливать программы, через **pkg search "name"** и **pkg install "name"**.
 +В случае, если вы обнаружите какие-то проблемы ссылающиеся на базу pkg // /var/db/pkg/pkgdb.db //
 +FIXME То, лечится это довольно просто **pkgdb -fu** , простое обновление базы пакетов.
 +
 +Надеюсь эта статья помогла вам увидеть сам процесс сборки и обновления в FreeBSD. Всем спасибо !
 +
 +                                                                                                      BlackEVA
обновление_портов_релиза_и_ядра_freebsd.1396012195.txt.gz · Последнее изменение: 2014/03/28 17:09 (внешнее изменение)

DokuWiki Appliance - Powered by TurnKey Linux