Обновление Fedora Linux с помощью системного плагина DNF. Команда dnf system-upgrade (встроенная в DNF5 и плагин dnf-plugin-system-upgrade для менеджера пакетов DNF4) используется для обновления вашей системы до текущего выпуска Fedora Linux.
Это рекомендуемый метод обновления из командной строки. Он работает следующим образом:
- Пакеты загружаются во время нормальной работы системы
- Система перезагружается в специальное окружение (реализованное как systemd target) для их установки
- По завершении система перезагружается в новый выпуск Fedora Linux.
Выполнение обновления системы
Перед выполнением обновления всей системы создайте резервную копию данных, поскольку каждое обновление системы потенциально рискованно. В качестве меры предосторожности скачайте образ
Fedora Workstation Live на случай, если что-то пойдет не так.
- Чтобы обновить выпуск Fedora Linux из командной строки, выполните следующие действия:
и перезагрузите компьютер.
Важно: Не пропускайте этот шаг. Обновления системы необходимы для получения ключей подписи более высоких версий, и они часто устраняют проблемы, связанные с процессом обновления.
- Загрузите обновленные пакеты:
Код: Выделить всё
dnf system-upgrade download --releasever=42
Измените число --releasever=, если вы хотите перейти на другой выпуск. Большинство людей захотят обновиться до последнего стабильного релиза, то есть до 42, но в некоторых случаях, например, если вы используете более старый релиз, чем 41, вы можете захотеть обновиться только до Fedora Linux 41. Обновление системы официально поддерживается и тестируется не более чем на 2 релиза (например, с 40 до 42). Если вам нужно обновить больше релизов, рекомендуется сделать это в несколько меньших шагов (читайте подробнее).
Вы также можете использовать 43 для обновления до Branched-релиза или rawhide для обновления до Rawhide. Обратите внимание, что ни один из этих двух вариантов не является стабильным релизом. Подробную информацию о процессе обновления и распространенных проблемах, связанных с этими двумя релизами, вы можете найти в соответствующих разделах на страницах по ссылкам.
- Если некоторые из ваших пакетов имеют неудовлетворенные зависимости, обновление откажется продолжаться, пока вы не запустите его снова с дополнительной опцией --allowerasing. Такое часто случается с пакетами, установленными из сторонних репозиториев, для которых еще не опубликован обновленный репозиторий. Очень внимательно изучите вывод и посмотрите, какие пакеты будут удалены. Ни один из них не должен быть важен для функциональности системы, но некоторые из них могут быть важны для вашей производительности.
- В случае неудовлетворенных зависимостей иногда можно увидеть больше деталей, если добавить в командную строку опцию --best.
- Если вы хотите удалить/установить некоторые пакеты вручную перед повторной загрузкой dnf system-upgrade, рекомендуется выполнять эти операции с опцией --setopt=keepcache=1 командной строки dnf. В противном случае весь кэш пакетов будет удален после вашей операции, и вам придется загружать все пакеты заново.
- Когда новый ключ GPG будет импортирован, вам будет предложено проверить отпечаток пальца ключа. Для этого обратитесь к сайту https://fedoraproject.org/security.
- Запустите процесс обновления. Это перезагрузит вашу машину (немедленно!, без обратного отсчета или подтверждения, поэтому закройте другие программы и сохраните свою работу) в процесс обновления, запущенный в консольном терминале:
- После завершения процесса обновления ваша система повторно перезагрузится в обновленную версию Fedora Linux.
Дополнительные задачи после обновления
Вот некоторые из задач, которые можно выполнить после успешного обновления.
Обновление конфигурационных файлов системы
Большинство конфигурационных файлов хранятся в папке /etc. Если вы изменили файлы конфигурации пакета, RPM создает новые файлы либо с расширением .rpmnew (новый файл конфигурации по умолчанию), либо с расширением .rpmsave (старый файл конфигурации, сохраненный в резервной копии). Вы можете искать эти файлы или использовать инструмент rpmconf, который упрощает этот процесс. Чтобы установить rpmconf, введите:
После завершения установки введите:
Замечание
Некоторые пакеты сторонних разработчиков оставляют отредактированные конфигурационные файлы в каталоге /etc/yum.repos.d/, и возврат этих файлов к исходным версиям может привести к отключению обновлений для программного обеспечения. Пожалуйста, не забывайте внимательно просматривать конфигурационные файлы в этом каталоге.
Для получения дополнительной информации вы можете обратиться к man-страницам (man rpmconf).
Если вы используете rpmconf для обновления системных конфигурационных файлов, поставляемых с обновленными пакетами, то некоторые конфигурационные файлы могут измениться. После обновления необходимо проверить, что файлы /etc/ssh/sshd_config, /etc/nsswitch.conf, /etc/ntp.conf и другие находятся на своих местах. Например, если обновляется OpenSSH, то sshd_config возвращается к конфигурации пакета по умолчанию. Конфигурация пакета по умолчанию не включает аутентификацию с открытым ключом и позволяет аутентификацию с помощью пароля.
Обновление загрузчика GRUB в системах с BIOS
В системах с микропрограммой BIOS обновляются пакеты GRUB RPM. Однако установленный или встроенный загрузчик никогда не обновляется автоматически. Неплохо бы обновлять его между версиями выпуска Fedora Linux.
Найдите устройство, на котором находится каталог /boot/:
mount | grep "/boot "
/dev/sda1 on /boot type ext4 (rw,relatime,seclabel)
Устройство - /dev/sda1. Переустановите загрузчик, указав устройство без номера раздела:
Очистка выбывших пакетов
С каждым выпуском Fedora выбывает несколько пакетов. Это происходит по разным причинам: пакеты устаревают, у них не работает восходящий поток, или их сопровождающий уходит в отставку. Fedora больше не распространяет эти пакеты, однако они все еще находятся в вашей системе. Эти пакеты не будут получать обновления. Настоятельно рекомендуется удалить их.
Если вы обновляетесь в рамках одного выпуска (например, с Fedora Linux 41 до 42), выполните следующие команды:
Код: Выделить всё
dnf install remove-retired-packages
remove-retired-packages
Если вы обновляете два выпуска (например, с Fedora Linux 40 до 42), вы должны указать версию старого выпуска в remove-retired-packages:
Обновления более чем двух выпусков не поддерживаются.
Очистка старых пакетов
Вы можете увидеть дубликаты пакетов (пакеты с несколькими установленными версиями) с помощью:
И вы можете удалить их с помощью:
Замечание
Сначала выполните команду dnf upgrade, поскольку этот список действителен только в том случае, если у вас полностью обновленная система. В противном случае вы увидите список установленных пакетов, которые больше не содержатся в репозиториях, поскольку доступно обновление. Этот список также может содержать пакеты, установленные из сторонних репозиториев, которые, возможно, не обновили свои репозитории.
Для пакетов из официальных репозиториев следует устанавливать последнюю версию. Однако некоторые пакеты, которые все еще находятся в вашей системе, могут быть уже не в репозиториях. Чтобы просмотреть список таких пакетов, выполните следующие действия:
Если вы видите пакет, который вам не нужен или не используется, вы можете удалить его с помощью:
Код: Выделить всё
dnf remove $(dnf repoquery --extras --exclude=kernel,kernel-\*,kmod-\*)
Вы можете безопасно удалить пакеты, которые больше не используются, с помощью:
Внимание
DNF решает, что пакет больше не нужен, если вы явно не просили его установить и ничто другое его не требует. Однако это не значит, что пакет бесполезен или что вы его не используете. Удаляйте только то, что вам точно не нужно.
Очистка старых ключей, доверенных для подписи пакетов RPM
Со временем в базе данных RPM накапливаются ключи из старых выпусков Fedora и сторонних репозиториев. Вы можете удалить ключи, на которые больше нет ссылок, из /etc/yum.repos.d/ с помощью команды:
Код: Выделить всё
dnf install clean-rpm-gpg-pubkey
clean-rpm-gpg-pubkey
Очистка старых симлинков
После обновления в файловой системе могут остаться висячие симлинки. Вы можете очистить висячие ссылки, установив утилиту symlinks и удалив старые ссылки.
После установки утилиты вы можете провести аудит на наличие неработающих симлинков, как показано ниже. -r означает рекурсивный.
После проверки списка битых симлинков вы можете удалить их, как показано ниже. -d означает удаление.
Обновление спасательного ядра
Спасательное ядро и initramfs генерируются Anaconda во время установки системы. initramfs будет обновляться при обновлении ядра, но спасательное ядро может не обновляться. Обновляется ли спасательное ядро, зависит от конфигурации системы.
Если аварийное ядро устарело, выполните следующие команды для его регенерации.
Код: Выделить всё
rm /boot/*rescue*
kernel-install add "$(uname -r)" "/lib/modules/$(uname -r)/vmlinuz"
Процесс восстановления ядра можно автоматизировать, установив пакет dracut-config-rescue.
После установки ядро спасения будет регенерироваться до тех пор, пока dracut является генератором initrd. Подробности см. в файле /usr/lib/kernel/install.d/51-dracut-rescue.install.
Устранение проблем после обновления
Код: Выделить всё
Примечание
Выполняйте эти действия только в том случае, если у вас возникли проблемы с обновленной системой.
Перестройка базы данных RPM
Если при работе с инструментами RPM/DNF вы видите предупреждения, возможно, ваша база данных повреждена. Можно перестроить ее и посмотреть, решит ли это ваши проблемы. Сначала всегда делайте резервную копию /var/lib/rpm/. Чтобы перестроить базу данных, выполните команду:
Использование distro-sync для решения проблем с зависимостями
Инструмент обновления системы по умолчанию использует dnf distro-sync. Если ваша система обновлена частично или вы видите некоторые проблемы с зависимостями пакетов, попробуйте запустить еще одну distro-sync вручную, чтобы посмотреть, устранит ли это проблему. Это попытается сделать установленные пакеты той же версии, что и в текущих репозиториях, даже если для этого придется понизить версию некоторых пакетов:
Вы также можете использовать опцию --allowerasing, чтобы удалить пакеты с зависимостями, которые не могут быть удовлетворены. Всегда просматривайте, какие пакеты будут удалены, прежде чем подтвердить это:
Переразметка файлов с учетом последней политики SELinux
Если вы столкнулись с предупреждениями о политике SELinux, некоторые файлы могут иметь неправильные разрешения SELinux. Это может произойти, если в прошлом SELinux была отключена. Чтобы перемаркировать SELinux в системе, выполните следующую команду, а затем перезагрузитесь:
Процесс загрузки, скорее всего, займет много времени, поскольку он проверяет и исправляет метки разрешений SELinux на всех файлах в системе.