Вчера наконец собрался и обновил свой боевой ноутбук с федорой до последней версии оной. Долго думал, стоит или нет, так как мой опыт обновления дистрибутива целиком был печальным — тогдашняя kubuntu после обновления просто разлетелась на части вплоть до слетевших шрифтов и графики. Но с федорой все прошло как надо, поэтому я решил записать инструкцию для тех, кто еще этого не делал.
Резервное копирование дистрибутива и данных
Перед такими важными действиями, как обновления дистрибутива целиком, я всегда рекомендую сделать полную резервную копию вашей системы на внешний носитель. Это избавит от проблем в случае неудачи с обновлением — нужно будет просто достать образ системы и раскатать его обратно, получив снова рабочую систему в том состоянии, в котором она была перед началом обновления. Сделать это можно разными способами, но я предпочитаю систему резервного копирования *Clonezilla. С ее помощью можно легко и быстро сделать копию ОС и восстановить ее обратно (или перенести на новую машину).
Обновление дистрибутива
Войдите в систему как root
Можно, конечно, пользоваться sudo, как предлагает система по умолчанию, но лучше все же войти под суперпользователем окончательно. Для этого можно выполнить команду
su -
или
sudo -i
введя далее свой пароль. Я предпочитаю второй вариант.
Полностью обновите систему до актуальной версии пакетной базы
Перед обновлением дистрибутива рекомендуется обновить пакеты до актуальных версий. Сделать это можно командой
dnf --refresh upgrade
Убедитесь, что вы используете последнюю актуальную версию ядра
Если во время обновления было показано уведомление об обновлении пакета kernel
, то нужно перезагрузить машину. Это можно сделать как из GUI, так и командой в терминале
reboot
Установка плагина обновления системы
Для обновления необходимо установить плагин dnf-plugin-system-upgrade
. Сделать это можно командой:
dnf install dnf-plugin-system-upgrade
Непосредственно обновление дистрибутива
Далее можно приступать к обновлению дистрибутива. Я рекомендую разделить это на два под-этапа: загрузку необходимых пакетов и само обновление.
Загрузка необходимых пакетов
Загрузить необходимые пакеты можно командой
dnf system-upgrade download --refresh --releasever=34
Обратите внимание на последний аргумент команды, в нем должна быть указана версия, на которую будем обновляться. В нашем случае это 34.
У меня загрузка заняла достаточно долгое время, так как пришлось качать около 6200 пакетов, что заняло примерно 4Gb места. Оказалось, что в Fedora LaTeX упакован каждым модулем в отдельный пакет, а в полной его установке этих пакетов около 4000.
Установка обновления
После загрузки и проверки можно начать установку обновления. Для этого выполните команду
dnf system-upgrade reboot
После этого система уйдет в перезагрузку, а вместо обычного запуска запустит средство обновления системы, которое иногда можно видеть после каких-то критических системных обновлений, когда вместо выключения система ведет себя в лучших традициях Windows, и «устанавливает обновления», прося при этом не выключать компьютер.
У меня этот процесс занял ни много, ни мало три часа. Думаю, что все из-за того же LaTeX’а.
После обновления
После обновления следует выполнить еще пару действий для обновления конфигурации и очистки от лишнего.
Обновление базы данных RPM
Для начала нужно обновить базу данных пакетного менеджера:
rpm --rebuilddb
Синхронизация дистрибутива
Далее выполнить синхронизацию дистрибутива:
dnf distro-sync --setopt=deltarpm=0
Проверить конфигурационные файлы
Напоследок нужно сравнить изменения в конфигурационных файлах и решить, оставить их своими или принять изменения, внесенные майнтейнерами дистрибутива. Для этого нужно установить пакет rpmconf и выполнить команду
rpmconf -a
Система покажет, какие конфигурационные файлы будут изменены и спросит, что с ними делать. Внимательно почитайте и примите нужные решения.
Заключение
Оказалось, что обновление Fedora до последней версии дистрибутива не такое уж и сложное и опасное занятие, как я сначала думал. Если планируете это сделать — дерзайте, только все же рекомендую не забывать про резервное копирование в самом начале.