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

Apple: история логотипа

Как менялся логотип Apple на протяжении многих лет. Логотип Apple — это не просто символ,…

6 дней ago

Security Boot Fail при загрузке Acer — решение проблемы

Security Boot Fail при загрузке Acer — решение проблемы При загрузке ноутбука Acer с флешки,…

3 недели ago

Ноутбук не включается — варианты решения

Ноутбук не включается — варианты решения Если при попытке включить ноутбук вы обнаруживаете, что он…

3 недели ago

The AC power adapter wattage and type cannot be determined — причины и решение

The AC power adapter wattage and type cannot be determined — причины и решение При…

3 недели ago

Свистит или звенит блок питания компьютера — причины и решения

Свистит или звенит блок питания компьютера — причины и решения Некоторые владельцы ПК могут обратить…

3 недели ago

Мигает Caps Lock на ноутбуке HP — почему и что делать?

Мигает Caps Lock на ноутбуке HP — почему и что делать? При включении ноутбука HP…

3 недели ago