Решил прояснить для себя вопрос с обновлением системы. В freebsd есть определенная неоднозначность в этом процессе. Один раз я попал в неприятную ситуацию при обновлении и потратил много времени, пока не понял, в чем же было дело. Сейчас постараюсь рассказать обо всех нюансах обновления freebsd. В качестве подопытной машины у меня выступает версия 10.1
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Содержание:
Использование утилиты freebsd-update
Установить все обновления безопасности на сервер freebsd можно легко и быстро с помощью утилиты freebsd-update. Итак, у нас имеется:
# uname -a
FreeBSD websrv.local 10.1-RELEASE FreeBSD 10.1-RELEASE #0 r274401: Tue Nov 11 21:02:49 UTC 2014 root@releng1.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64
Запускаем freebsd-update, проверяем наличие обновлений и скачиваем необходимые:
# freebsd-update fetch
Looking up update.FreeBSD.org mirrors... none found. Fetching public key from update.FreeBSD.org... done. Fetching metadata signature for 10.1-RELEASE from update.FreeBSD.org... done. Fetching metadata index... done. Fetching 2 metadata files... done. Inspecting system... done. Preparing to download files... done. Fetching 19 patches.....10.... done. Applying patches... done. The following files will be updated as part of updating to 10.1-RELEASE-p1:
и дальше список обновлений перечисляется.
Устанавливаем обновления:
# freebsd-update install Installing updates... done.
Если после этого мы снова проверим версию системы с помощью uname, то окажется, что ничего не изменилось. Будет показана та же версия. Что же произошло после этого обновления? Произошло бинарное обновление системы до актуальных значений. При этом, если у вас собрано и установлено свое ядро, отличное от GENERIC, то после перезагрузки у вас будет загружено ядро GENERIC. Про это обязательно нужно помнить. Я так долго разбирался, почему вдруг перестала работать команда forward в ipfw. Перепроверил все, что только мог, опустились руки. А все потому, что процесс обновления и перезагрузки сервера были сильно разделены по времени, а заметил я то, что не работает перенаправление еще позже, поэтому не сопоставил эти два события. О том, что у меня не то ядро загружено я и представить не мог. Я же знаю и помню, что ядро собирал и не трогал с тех пор. Вот такой нюанс, о котором нужно не забывать.
Чтобы отразить изменения в версии системы, пересоберем и установим ядро GENERIC. Исходные тексты системы, нужные для сборки, находятся в папке /usr/src. Если у вас там пусто, то их необходимо установить.
Установка и обновление исходных текстов системы Freebsd
Для установки исходных текстов системы есть много способов. Я предлагаю воспользоваться, как мне кажется, самым простым - с помощью программы subversion. Устанавливаем ее из портов:
# cd /usr/ports/devel/subversion # make install clean # rehash
И качаем исходники для версии 10.1:
# svn checkout https://svn0.ru.freebsd.org/base/release/10.1.0 /usr/src
Или для версии 10.2:
# svn checkout https://svn0.ru.freebsd.org/base/release/10.2.0 /usr/src
Для 10.3:
# svn checkout https://svn0.ru.freebsd.org/base/release/10.3.0 /usr/src
После того, как скачали исходники, снова запускаем обновление системы. Она найдет исправления, которые нужно внести в тексты:
# freebsd-update fetch # freebsd-update install
После этого собираем и устанавливаем ядро GENERIC:
# cd /usr/src # make buildkernel # make installkernel # shutdown -r now
Проверяем версию:
# uname -a FreeBSD websrv.local 10.1-RELEASE-p1 FreeBSD 10.1-RELEASE-p1 #0 r275828M: Tue Dec 16 16:55:19 MSK 2014 root@websrv.local:/usr/obj/usr/src/sys/GENERIC amd64
Все изменения вступили в силу и отображены.
Теперь для того, чтобы иметь всегда актуальную версию критических обновлений безопасности системы, создадим задание cron на ежедневную проверку обновлений:
# echo '20 3 * * * root freebsd-update cron' >> /etc/crontab
По этому заданию каждый день в 3.20 будет проверяться наличие новых критических обновлений безопасности системы freebsd 10. В случае, если таковые найдутся, они будут закачаны и пользователю root отправлено оповещение. Устанавливать их необходимо вручную.
Помогла статья? Подписывайся на telegram канал автора
Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.Дополнительные материалы по Freebsd
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Рекомендую полезные материалы по Freebsd: |
Описание установки Freebsd 11 на одиночный диск, либо на софтовый raid1, сделанный средствами zfs, которые поддерживает стандартный установщик.
Базовая настройка Freebsd, которую можно выполнить после установки сервера общего назначения. Представлены некоторые рекомендации по повышению удобства пользования и безопасности.
Описание и нюансы обновления системы Freebsd с помощью утилиты freebsd-update. Показано пошагово на конкретном примере обновления.
Настройка Freebsd шлюза для обеспечения выхода в интернет. Используется ipfw и ядерный нат, dnsmasq в качестве dhcp и dns сервера. Мониторинг сетевой активности с помощью iftop.
Подробная настройка на Freebsd прокси сервера squid + sams2 - панели управления для удобного администрирования.
Настройка максимально быстрого web сервера на базе Freebsd и nginx + php-fpm. Существенный прирост производительности по сравнению с классическим apache.
Настройка web сервера на Freebsd в связке с apache, nginx, php и mysql. Пошаговая установка и настройка каждого компонента.
|
Для обновления исходников и портов "subversion" ставить необязательно. В составе системы, по крайней мере начиная с 10-ки, присутствует утилита "svnlite" которая отлично с этим справляется.
Проверил обновление по этой статье только что. Все в порядке, обновляется все как положено. Обновился с версии 10.1-RELEASE-p1 до 10.1-RELEASE-p6.