Обновлённый метод обновления системы
(DNF5 из командной строки) ПереводОбновление Fedora Linux с помощью системного плагина DNF. Команда dnf system-upgrade (встроенная в DNF5 и плагин dnf-plugin-system-upgrade для менеджера пакетов DNF4) используется для обновления вашей системы до текущего выпуска Fedora Linux.
Это рекомендуемый метод обновления из командной строки. Он работает следующим образом:
- Пакеты загружаются во время нормальной работы системы
- Система перезагружается в специальное окружение (реализованное как systemd target) для их установки
- По завершении система перезагружается в новый выпуск Fedora Linux.
Выполнение обновления системыПеред выполнением обновления всей системы создайте резервную копию данных, поскольку каждое обновление системы потенциально рискованно. В качестве меры предосторожности скачайте образ
Fedora Workstation Live на случай, если что-то пойдет не так.
- Чтобы обновить выпуск Fedora Linux из командной строки, выполните следующие действия:
dnf upgrade --refresh
и перезагрузите компьютер.
Важно: Не пропускайте этот шаг. Обновления системы необходимы для получения ключей подписи более высоких версий, и они часто устраняют проблемы, связанные с процессом обновления. - Загрузите обновленные пакеты:
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.
- Запустите процесс обновления. Это перезагрузит вашу машину (немедленно!, без обратного отсчета или подтверждения, поэтому закройте другие программы и сохраните свою работу) в процесс обновления, запущенный в консольном терминале:
dnf system-upgrade reboot - После завершения процесса обновления ваша система повторно перезагрузится в обновленную версию Fedora Linux.
Дополнительные задачи после обновленияВот некоторые из задач, которые можно выполнить после успешного обновления.
Обновление конфигурационных файлов системыБольшинство конфигурационных файлов хранятся в папке /etc. Если вы изменили файлы конфигурации пакета, RPM создает новые файлы либо с расширением .rpmnew (новый файл конфигурации по умолчанию), либо с расширением .rpmsave (старый файл конфигурации, сохраненный в резервной копии). Вы можете искать эти файлы или использовать инструмент rpmconf, который упрощает этот процесс. Чтобы установить rpmconf, введите:
- Код: выделить все
dnf install rpmconf
После завершения установки введите:
- Код: выделить все
rpmconf -a
Замечание
Некоторые пакеты сторонних разработчиков оставляют отредактированные конфигурационные файлы в каталоге /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. Переустановите загрузчик, указав устройство без номера раздела:
- Код: выделить все
grub2-install /dev/sda
Очистка выбывших пакетовС каждым выпуском Fedora выбывает несколько пакетов. Это происходит по разным причинам: пакеты устаревают, у них не работает восходящий поток, или их сопровождающий уходит в отставку. Fedora больше не распространяет эти пакеты, однако они все еще находятся в вашей системе. Эти пакеты не будут получать обновления. Настоятельно рекомендуется удалить их.
Если вы обновляетесь в рамках одного выпуска (например, с Fedora Linux 41 до 42), выполните следующие команды:
- Код: выделить все
dnf install remove-retired-packages
remove-retired-packages
Если вы обновляете два выпуска (например, с Fedora Linux 40 до 42), вы должны указать версию старого выпуска в remove-retired-packages:
- Код: выделить все
remove-retired-packages 40
Обновления более чем двух выпусков не поддерживаются.
Очистка старых пакетовВы можете увидеть дубликаты пакетов (пакеты с несколькими установленными версиями) с помощью:
- Код: выделить все
dnf repoquery --duplicates
И вы можете удалить их с помощью:
- Код: выделить все
dnf remove --duplicates
Замечание
Сначала выполните команду dnf upgrade, поскольку этот список действителен только в том случае, если у вас полностью обновленная система. В противном случае вы увидите список установленных пакетов, которые больше не содержатся в репозиториях, поскольку доступно обновление. Этот список также может содержать пакеты, установленные из сторонних репозиториев, которые, возможно, не обновили свои репозитории.
Для пакетов из официальных репозиториев следует устанавливать последнюю версию. Однако некоторые пакеты, которые все еще находятся в вашей системе, могут быть уже не в репозиториях. Чтобы просмотреть список таких пакетов, выполните следующие действия:
- Код: выделить все
dnf list --extras
Если вы видите пакет, который вам не нужен или не используется, вы можете удалить его с помощью:
- Код: выделить все
dnf remove $(dnf repoquery --extras --exclude=kernel,kernel-\*,kmod-\*)
Вы можете безопасно удалить пакеты, которые больше не используются, с помощью:
- Код: выделить все
dnf autoremove
Внимание
DNF решает, что пакет больше не нужен, если вы явно не просили его установить и ничто другое его не требует. Однако это не значит, что пакет бесполезен или что вы его не используете. Удаляйте только то, что вам точно не нужно.
Очистка старых ключей, доверенных для подписи пакетов RPMСо временем в базе данных RPM накапливаются ключи из старых выпусков Fedora и сторонних репозиториев. Вы можете удалить ключи, на которые больше нет ссылок, из /etc/yum.repos.d/ с помощью команды:
- Код: выделить все
dnf install clean-rpm-gpg-pubkey
clean-rpm-gpg-pubkey
Очистка старых симлинковПосле обновления в файловой системе могут остаться висячие симлинки. Вы можете очистить висячие ссылки, установив утилиту symlinks и удалив старые ссылки.
- Код: выделить все
dnf install symlinks
После установки утилиты вы можете провести аудит на наличие неработающих симлинков, как показано ниже. -r означает рекурсивный.
- Код: выделить все
symlinks -r /usr | grep dangling
После проверки списка битых симлинков вы можете удалить их, как показано ниже. -d означает удаление.
- Код: выделить все
symlinks -r -d /usr
Обновление спасательного ядраСпасательное ядро и initramfs генерируются Anaconda во время установки системы. initramfs будет обновляться при обновлении ядра, но спасательное ядро может не обновляться. Обновляется ли спасательное ядро, зависит от конфигурации системы.
Если аварийное ядро устарело, выполните следующие команды для его регенерации.
- Код: выделить все
rm /boot/*rescue*
kernel-install add "$(uname -r)" "/lib/modules/$(uname -r)/vmlinuz"
Процесс восстановления ядра можно автоматизировать, установив пакет dracut-config-rescue.
- Код: выделить все
dnf install dracut-config-rescue
После установки ядро спасения будет регенерироваться до тех пор, пока dracut является генератором initrd. Подробности см. в файле /usr/lib/kernel/install.d/51-dracut-rescue.install.
Устранение проблем после обновления- Код: выделить все
Примечание
Выполняйте эти действия только в том случае, если у вас возникли проблемы с обновленной системой.
Перестройка базы данных RPM
Если при работе с инструментами RPM/DNF вы видите предупреждения, возможно, ваша база данных повреждена. Можно перестроить ее и посмотреть, решит ли это ваши проблемы. Сначала всегда делайте резервную копию /var/lib/rpm/. Чтобы перестроить базу данных, выполните команду:
- Код: выделить все
rpm --rebuilddb
Использование distro-sync для решения проблем с зависимостямиИнструмент обновления системы по умолчанию использует dnf distro-sync. Если ваша система обновлена частично или вы видите некоторые проблемы с зависимостями пакетов, попробуйте запустить еще одну distro-sync вручную, чтобы посмотреть, устранит ли это проблему. Это попытается сделать установленные пакеты той же версии, что и в текущих репозиториях, даже если для этого придется понизить версию некоторых пакетов:
- Код: выделить все
dnf distro-sync
Вы также можете использовать опцию --allowerasing, чтобы удалить пакеты с зависимостями, которые не могут быть удовлетворены. Всегда просматривайте, какие пакеты будут удалены, прежде чем подтвердить это:
- Код: выделить все
dnf distro-sync --allowerasing
Переразметка файлов с учетом последней политики SELinuxЕсли вы столкнулись с предупреждениями о политике SELinux, некоторые файлы могут иметь неправильные разрешения SELinux. Это может произойти, если в прошлом SELinux была отключена. Чтобы перемаркировать SELinux в системе, выполните следующую команду, а затем перезагрузитесь:
- Код: выделить все
fixfiles -B onboot
Процесс загрузки, скорее всего, займет много времени, поскольку он проверяет и исправляет метки разрешений SELinux на всех файлах в системе.