rizloff
Linux

upgrade Fedora 30 до Fedora 31, десять лет спустя

3 мин чтения

Блог молчал почти шесть лет. Возвращаюсь с темы, о которой тут писал чаще всего: обновление Fedora. 29 октября вышла Fedora 31.

Десять лет назад я обновлялся с 11 на 12 через preupgrade, выкраивал место в /boot и проверял, не ставит ли PackageKit пакеты без пароля. С тех пор поменялось почти все.

yum больше нет

С Fedora 22 вместо yum работает dnf. Команда yum осталась, но это просто ссылка на dnf, так что старые привычки не ломаются. Команды почти те же: dnf install, dnf remove, dnf search.

preupgrade тоже давно нет. После него был fedup, а теперь обновление до новой версии делает плагин самого dnf. Ну и su -c больше не нужен: если при установке отметить, что пользователь администратор, он попадает в группу wheel, и работает sudo.

Обновление

Четыре команды:

sudo dnf upgrade --refresh
sudo dnf install dnf-plugin-system-upgrade
sudo dnf system-upgrade download --releasever=31
sudo dnf system-upgrade reboot

Первая обновляет тридцатую до последних пакетов, вторая ставит плагин. Третья качает пакеты 31-й и заранее проверяет, что все зависимости сходятся. Четвертая перезагружает компьютер в особый режим, там пакеты ставятся, и после второй перезагрузки уже 31-я. Никакого установщика и никаких образов в /boot.

Если стоят сторонние репозитории и dnf ругается на конфликты, к третьей команде добавляем --allowerasing. Тогда он удалит пакеты, которые мешают обновлению, и перед этим покажет их список. Список стоит прочитать.

Что убрали в 31-й

32-битной версии больше нет: ни ядра i686, ни установочных образов. Если у вас старый ноутбук на 32-битном процессоре, он остается на Fedora 30, обновления для нее будут примерно до конца весны 2020 года.

Команда python теперь запускает Python 3. Старые скрипты, где print без скобок, сломаются. Python 2 официально заканчивается 1 января 2020 года, и пакеты для него из Fedora постепенно убирают.

Прибраться после

Скачанные для обновления пакеты сами не удаляются:

sudo dnf system-upgrade clean
sudo dnf autoremove

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

sudo dnf install rpmconf
sudo rpmconf -a

А запрос из записи Наводим порядок, который ищет самые большие пакеты, работает и сейчас, rpm за десять лет в этом не изменился.

Десять лет назад обновление занимало вечер и половину записи про грабли. Сейчас это четыре команды и две перезагрузки.

Что-то не сработало или нашли ошибку — напишите: rizloff@gmail.com или @rizloff в Telegram.