Categories: FreeBSD

freebsd-update/

31-го июля сего года закончилась поддержка FreeBSD 8.2 . На моем ноутбуке Asus X51L как раз установлена FreeBSD, притом именно этой версии. Решил обновиться до FreeBSD 9.0 и запостить в бложик заметку о том, как выглядит процесс обновления этой системы.

Есть по крайней мере два способа обновления FreeBSD. Если вы используете ядро GENERIC (собранное с параметрами по умолчанию), то можете скачать и установить бинарное обновление с помощью утилиты freebsd-update. Чуть более сложный, но и более универсальный, способ заключается в получении исходников интересующей вас версии FreeBSD из SVN репозитория с последующей их компиляцией. Я использую ядро GENERIC, так что далее речь пойдет о первом способе.

Дополнение: Описание второго способа вы найдете в заметке Собираем ядро и мир FreeBSD из исходников .

Важно! Каждый раз, когда вы обновляете систему, не сделав бэкап, в мире умирает десять котят!

Поехали:

freebsd-update -r 9.0 -RELEASE upgrade

Если во время обновления будет получена такая ошибка:

The update metadata is correctly signed, but failed an integrity check. Cowardly refusing to proceed any further.

… следует применить к /usr/sbin/freebsd-update вот этот патч . Там требуется всего лишь немного поправить одну строчку.

Во время обновления будут пропатчены некоторые конфигурационные файлы. Следует просматривать вносимые изменения крайне внимательно и разрешать конфликты с максимальной осторожностью. Если вы не уверены в том, что делаете, всегда лучше остановиться и посоветоваться с более опытными пользователями.

После завершения работы скрипта говорим:

freebsd-update install

… и перезагружаем систему:

shutdown -r now

После перезагрузки внимательно проверяем, что ничего не отвалилось. Если система вдруг не сможет загрузиться, то при следующей загрузке будет использовано прежнее ядро.

Лично я столкнулся со следующей проблемой. Оказалось, что перестал работать фаервол (PF). Команда `dmesg -a` показала мне следующую ошибку:

pfctl: DIOCADDRULE: Operation not supported by device

Как выяснилось , это ОК (причина заключается в расхождении версий ядра и мира), потому я продолжил обновление системы.

Следующим шагом говорим (да, опять):

freebsd-update install

И действительно, после выполнения команды:

pfctl -F all -f / etc / pf.conf

… фаервол заработал.

Во время последнего запуска freebsd-update вывел мне такое сообщение:

Completing this upgrade requires removing old shared object files. Please rebuild all installed 3rd party software (e.g., programs installed from the ports tree) and then run «/usr/sbin/freebsd-update install» again to finish installing updates.

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

pkg_upgrade -a

У меня обновилось всего лишь пять пакетов, так что все не настолько ужасно, как вы могли бы подумать. Правда, позже выяснилось, что Perl все-таки отвалился (видимо, я собирал его из портов). Но решить проблему оказалось несложно:

ln -s / lib / libutil.so.9 / lib / libutil.so.8

Итак, завершаем обновление системы:

freebsd-update install

Готово!

Не считая названных проблем с Perl и PF, на момент написания данных строк никаких косяков мною замечено не было. Да, в некоторых системах обновление ядра устроено куда проще. Но подход, описанный выше, имеет и свои плюсы:

  • Если во время обновления ядра что-то пошло не так, можно с легкостью откатиться к старой версии;
  • Диагностировать проблемы проще, хотя бы потому что точно известно, на каком шаге обновления они возникли;
  • Не хочешь — не обновляйся, система не станет настаивать;

А вы уже перешли на девятую ветку?

admin

Share
Published by
admin
Tags: FreeBSD

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

1 месяц ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

1 месяц ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

1 месяц ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

1 месяц ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

1 месяц ago

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

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

1 месяц ago