💾 Archived View for tilde.team › ~rami › redhat_upgrade.gmi captured on 2024-05-10 at 11:05:44. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-01-29)

🚧 View Differences

-=-=-=-=-=-=-

~Rami ₪ MANUALS

רמי

SUBJECT: Fedora: Глобальный апгрейд релизов ОС

AUTHOR: Rami Rosenfeld

DATE: 12/09/22; upd. 04/05/24

TIME: 15.00

LANG: ru, en

LICENSE: GNU FDL 1.3

TAGS: gnu, gnome, software, opensource, linux, system, man, manual, bash, privacy, security, rhel, centos, mate, xfce, lxde, spin, de, systemd, systemctl, selinux, firewalld, dnf, rpm

Fedora: Глобальный апгрейд релизов ОС (rel. v.N > rel. v.N+1)

INTRO

ВАЖНО! Перед запуском процесса обновления ОС на новый релиз сохраните свои критичные данные на стороннем носителе.

ВАЖНО! На всякий случай, заранее подготовьте Live USB-Flash со старой (т.е. текущей) версией операционной системы).

Рекомендация: не делайте апгрейд сразу на +2 версии релиза, хотя это допустимо. Не делайте апргрейд версий Fedora с закончившимся сроком поддержки (EOL: "end-of-the-life").

NOTE

dnf upgrade --refresh

systemctl reboot

dnf install dnf-plugin-system-upgrade

dnf system-upgrade download --releasever=40

Примечание 1: В предыдущей строке измените значение --releasever на необходимое. Например, если вы обновляетесь с 39 (текущая версия Fedora) на 40, выставьте значение "40" (без кавычек и пробела).

Примечание 2: Если некоторые пакеты будут иметь неудовлетворенные зависимости (например, в случае использования ранее сторонних репозиториев), добавьте опцию --allowerasing, разрешающую удаление:

dnf system-upgrade download --releasever=40 --allowerasing

Примечание 3: Если вы хотите удалить/установить некоторые пакеты вручную перед запуском обновления ОС, используйте опцию --setopt=keepcache=1 - она удержит (т.е. сохранит) кэш пакетов, скачанных с помощью DNF; в противном случае все обновляемые пакеты будут загружены заново:

dnf system-upgrade download --releasever=40 --allowerasing --setopt=keepcache=1

dnf system-upgrade reboot

Пост-установочные операции

Многие конфигурационные файлы хранятся по адресу /etc. Если вы видоизменяли их перед апгрейдом ОС, система RPM создаст новые конфигурационные файлы с расширением .rpmnew, а старые пометит как .rpmsave (резервные копии ваших конфигурационных файлов). Вы можете найти эти файлы или использовать утилиту rpmconf для упрощения данного процесса:

dnf install rpmconf

При возникновении ошибок используйте команду:

rpmconf -a

Примечание: Эти операции мне не понадобились.

После глобального апгрейда ОС некоторые пакеты могут утратить работоспособность (устареть по разным причинам, не использоваться более в новом релизе ОС, разработчик не проявляет активности), но они будут присутствовать в обновленной ОС. Для их удаления выполните:

dnf install remove-retired-packages

Исполните:

remove-retired-packages

Примечание: В моем случае таковых не оказалось.

dnf repoquery --unsatisfied

Примечание: В моем случае таковых тоже не оказалось.

dnf repoquery --duplicates

После глобального апгрейда ОС все пакеты из официальных репозиториев должны быть обновлены до последней версии. Если некоторые пакеты не содержатся более в обновленных (еще точнее, в "сменённых" - с 39 на 40) репозиториях, их можно найти и удалить, например:

dnf list extras

kmod-wl-6.8.8-200.fc39.x86_64.x86_64

kmod-wl-6.8.8-300.fc40.x86_64.x86_64

Логично было бы предположить, что следует удалить пакет, относящийся к предшествующему релизу ОС (39):

dnf remove kmod-wl-6.8.8-200.fc39.x86_64.x86_64

ВАЖНО: Однако будьте осторожны - следующая глобальная команда может затронуть также орфанные (одиночные) пакеты, удаление которых вы НЕ планируете. Например:

dnf remove $(dnf repoquery --extras --exclude=kernel,kernel-\*)

Removing:

kmod-wl-6.8.8-300.fc40.x86_64

musikcube

Removing dependent packages

broadcom-wl

Как видно из примера выше, команда предлагает удалить не только необходимые в обновленной ОС (40) пакеты поддержки беспроводного соединения для Wi-Fi-карт Broadcom (подробности см. ниже), но и плейер Musikcube (установленный ранее вручную из RPM-пакета).

Примечание: Как правило, по умолчанию DNF удерживает в системе 3 ядра (см. отдельное руководство по его конфигурации) - текущее и два предыдущих, хотя у меня это количество сокращено до двух. Однако ядро от предыдущего релиза ОС (39) никогда не пригодится более, т.к. на него невозможно сделать откат. Поэтому его следует удалить вместе со всеми компонентами:

dnf remove $(dnf repoquery --installonly --latest-limit=-1 -q)

kernel 6.8.8-200.fc39

kernel-core 6.8.8-200.fc39

kernel-devel 6.8.8-200.fc39

kernel-modules 6.8.8-200.fc39

kernel-modules-core 6.8.8-200.fc39

kernel-modules-extra 6.8.8-200.fc39

ВАЖНО! Это достаточно опасная команда. Она лишает пользователя возможности отката на предыдущую версию ядра, поэтому исполняйте ее ТОЛЬКО ОДИН РАЗ - при глобальном обновлении ОС с релиза на релиз.

Как я неоднократно писал, лучший вариант беспроводной связи - карты Atheros. Однако если в вашем устройстве установлена Wi-Fi-карта Broadcom, она требует сторонней поддержки (пакеты располагаются в подключаемом репозитории RPM Fusion).

Но существует следующая проблема: после обновления ОС с релиза на релиз (и ТОЛЬКО в этом случае; иного я не встречал, ибо штатное обновление ОС в пределах одного релиза всегда происходит без проблем) карта Broadcom не будет работать. Причин здесь, на мой взгляд, несколько:

- одновременное наличие двух схожих пакетов kmod-wl...fc39 и kmod-wl...fc-40 (см. выше) в ОС после ее глобального апгрейда;

- неудаленное ядро (см. выше) от предыдущего релиза - это весьма сомнительное предположение, но от ядра все же следует избавиться;

- третья неустановленная проблема. Лично у меня складывается впечатление, что ОС после своего обновления считает новые (обновленные) пакеты kmod-wl и broadcom-wl орфанными (одиночными), поэтому не задействует kernel-devel для динамического генерирования поддержки Wi-Fi в момент загрузки ОС.

Поэтому после ВСЕХ указанных выше операций следует удалить поддержку полностью (включая зависимости, например openssl; не волнуйтесь, она восстановится):

dnf remove akmod-wl broadcom-wl kernel-devel

Затем следует перезагрузить ОС:

systemctl reboot

и установить поддержку карты заново:

dnf install akmods akmod-wl kmod-wl broadcom-wl kernel-devel fakeroot fakeroot-libs

ВАЖНО: После последней команды поддержка Wi-Fi будет восстановлена (это видно по отдельным пунктам, появившимся в общих настройках ОС и в главном меню), однако связи по-прежнему не будет. Причина: необходимо еще раз перезагрузить ОС, т.к. новые akmod/kmod будут динамически сгенерированы только при последующей загрузке ОС.

dnf install symlinks

symlinks -r /usr | grep dangling

Если вы наблюдаете предупреждения при использовании RPM/DNF, ваша база данных RPM может быть повреждена. Вначале сохраните бэкап содержимого /var/lib/rpm, затем пересоберите базу данных RPM:

rpm --rebuilddb

Если по какой-то причине ваша ОС или ее отдельные компоненты обновились не полностью, используйте команду:

dnf distro-sync --allowerasing

Примечание: Опция --allowerasing удалит пакеты с зависимостями, которые не могут быть удовлетворены. Предварительно ознакомьтесь с их списком и выполняйте команду с осторожностью (или откажитесь от этой опции)!

Если после апгрейда ОС вы наблюдаете предупреждения, связанные с правилами SELinux, скорее всего, некоторые файлы имеют некорректные разрешения SELinux. Зачастую это связано с тем, что вы деактивировали его ранее. Для исправления SELinux-контекстов безопасности файлов выполните:

fixfiles -B onboot

Примечание: Процесс произойдет во время перезагрузки ОС.

dnf system-upgrade clean

dnf clean all

Подробнее см.:

DNF System Upgrade

DNF Command Reference

₪ Back to home ₪

🄯 Rami Rosenfeld, 2022. GNU FDL 1.3.