Upgrade Fedora: обновление системы.

Установка, настройка, эксплуатация.

Модератор: ROOT

Upgrade Fedora: обновление системы.

Сообщение ROOT » 11 окт 2018, 08:32

Оглавление


Темы
 Процесс обновления 
 Исправление базы пакетов после обновления 
 Сложности обновления 
 Обновлённый метод обновления системы 


 Процесс обновления 
Обновление Fedora ниже версии 29
Код: выделить все
dnf upgrade --refresh
dnf install dnf-plugin-system-upgrade
dnf system-upgrade download --releasever=$(($(rpm -E %fedora) + 1))
dnf system-upgrade reboot

Плагин dnf-plugin-system-upgrade устанавливается только один раз, при первом обновлении системы.
Обновление Fedora 29 и выше
Код: выделить все
dnf upgrade --refresh
dnf install dnf-plugin-system-upgrade
dnf system-upgrade download --releasever=$(($(rpm -E %fedora) + 1)) --setopt=module_platform_id=platform:f$(($(rpm -E %fedora) + 1))
dnf system-upgrade reboot

Для пользователей Russian Fedora
желающих обновить систему до 30 версии

Сообщаем вам, что по не зависящим от нас причинам проект Russian Fedora временно уходит в отпуск на один выпуск Fedora. Таким образом, релиза RFRemix 30 не состоится.

В настоящее время большая часть актуальных пакетов из Russian Fedora были перемещены в апстрим Fedora, а также в RPM Fusion, поэтому рекомендуем вам как можно скорее отключить репозитории Russian Fedora до выполнения обновления до Fedora 30, чтобы оно прошло в штатном режиме без конфликтов между пакетами.

  1. произвести замену пакета rfremix-release на fedora-release (только пользователям RFRemix):
    Код: выделить все
    dnf swap rfremix-release fedora-release --allowerasing
  2. полностью отключить репозитории Russian Fedora:
    Код: выделить все
    dnf remove 'russianfedora*'
  3. произвести синхронизацию выпуска дистрибутива с эталоном:
    Код: выделить все
    dnf distro-sync --allowerasing
  • --allowerasing — Разрешить удаление установленных пакетов для устранения зависимостей. Этот параметр можно использовать в качестве альтернативы команде dnf swap, когда пакеты для удаления не определены явно.
  • --dnf distro-sync [<package-spec>...] — При необходимости обновляет, понижает или сохраняет выбранные установленные пакеты в соответствии с последней версией, доступной из любого включенного репозитория. Если пакет не указан, рассматриваются все установленные пакеты.
Администрирование Fedora Linux + настройка сети и прочая IT-Ботва


Для желающих поддержать
Карта SB: 5469 4009 6510 2267


Лучше ужасный конец, чем ужас без конца!
Аватар пользователя
ROOT
Администратор
 
Сообщений: 440
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный

Сообщение ROOT » 09 апр 2022, 14:11



 Исправление базы пакетов после обновления 
Перестроить базу RPM
Код: выделить все
rpm --rebuilddb

У dnf есть опция distro-sync, которая используется для синхронизации установленных пакетов с последними доступными версиями.
Он выполняет необходимые обновления, понижает или сохраняет выбранные установленные пакеты в соответствии с последней версией, доступной из любого включенного репозитория. Если пакет не указан, учитываются все установленные пакеты. Параметр distro-sync в DNF аналогичен параметру обновления yum. Ниже приведен пример опции distro-sync:
Код: выделить все
dnf distro-sync --setopt=deltarpm=0

deltarpm=0 - Разово отключить использование Delta RPM
Администрирование Fedora Linux + настройка сети и прочая IT-Ботва


Для желающих поддержать
Карта SB: 5469 4009 6510 2267


Лучше ужасный конец, чем ужас без конца!
Аватар пользователя
ROOT
Администратор
 
Сообщений: 440
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный

Сообщение ROOT » 09 апр 2022, 14:11



 Сложности обновления 
Вы можете увидеть список пакетов со сломанными зависимостями, например:
Код: выделить все
dnf repoquery --unsatisfied

В идеале их не должно быть. Если они есть, подумайте об их удалении, потому что они вряд ли будут работать должным образом.

Вы можете увидеть дублированные пакеты (пакеты с несколькими версиями), например:
Код: выделить все
dnf repoquery --duplicated

Для обычных пакетов должна быть установлена только последняя версия. Но могут быть исключения из правила, только удалите то, что вы уверены, что вам больше не нужно.

Некоторые пакеты могут оставаться в вашей системе, пока они были удалены из репозиториев.
Смотрите их, используя:
Код: выделить все
dnf list extras


Если вы не используете их, вы можете их удалить:
Код: выделить все
dnf remove $ (dnf repoquery --extras --exclude = kernel, kernel - \ *).


Обратите внимание, что этот список действителен только в том случае, если у вас есть полностью обновленная система. В противном случае вы увидите все установленные пакеты, которые больше не находятся в репозиториях, потому что доступно новое обновление. Поэтому, прежде чем действовать на них, убедитесь, что вы запустили обновление dnf и снова создали список дополнительных пакетов. Кроме того, этот список может содержать пакеты, установленные из сторонних репозиториев, для которых обновленный репозиторий еще не опубликован. Это часто включает, например, RPM Fusion или Dropbox.
Вы можете удалить ненужные пакеты, используя:
Код: выделить все
dnf autoremove

Остерегайтесь того, что dnf решает, что пакет больше не нужен, если вы явно не просили его установить, и ничто другое не требует его. Это не означает, что пакет не является полезным или что вы его не используете. Удалите только то, что вы уверены, что вам не нужно. В PackageKit есть известная ошибка, которая не маркирует пакеты как установленные пользователем, см. Ошибку 1259865. Если вы используете PackageKit (или GNOME Software, Apper и т.д.) Для установки, этот вывод может содержать список важных приложений и системных пакетов, поэтому будьте осторожны
Администрирование Fedora Linux + настройка сети и прочая IT-Ботва


Для желающих поддержать
Карта SB: 5469 4009 6510 2267


Лучше ужасный конец, чем ужас без конца!
Аватар пользователя
ROOT
Администратор
 
Сообщений: 440
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный

Сообщение ROOT » Вчера, 13:45

 Обновлённый метод обновления системы
(DNF5 из командной строки)
 
Перевод
Обновление Fedora Linux с помощью системного плагина DNF. Команда dnf system-upgrade (встроенная в DNF5 и плагин dnf-plugin-system-upgrade для менеджера пакетов DNF4) используется для обновления вашей системы до текущего выпуска Fedora Linux.
Это рекомендуемый метод обновления из командной строки. Он работает следующим образом:
  1. Пакеты загружаются во время нормальной работы системы
  2. Система перезагружается в специальное окружение (реализованное как systemd target) для их установки
  3. По завершении система перезагружается в новый выпуск Fedora Linux.
Выполнение обновления системы
Перед выполнением обновления всей системы создайте резервную копию данных, поскольку каждое обновление системы потенциально рискованно. В качестве меры предосторожности скачайте образ Fedora Workstation Live на случай, если что-то пойдет не так.
  1. Чтобы обновить выпуск Fedora Linux из командной строки, выполните следующие действия:
    dnf upgrade --refresh
    и перезагрузите компьютер.
    Важно: Не пропускайте этот шаг. Обновления системы необходимы для получения ключей подписи более высоких версий, и они часто устраняют проблемы, связанные с процессом обновления.
  2. Загрузите обновленные пакеты:
    dnf system-upgrade download --releasever=42
    Измените число --releasever=, если вы хотите перейти на другой выпуск. Большинство людей захотят обновиться до последнего стабильного релиза, то есть до 42, но в некоторых случаях, например, если вы используете более старый релиз, чем 41, вы можете захотеть обновиться только до Fedora Linux 41. Обновление системы официально поддерживается и тестируется не более чем на 2 релиза (например, с 40 до 42). Если вам нужно обновить больше релизов, рекомендуется сделать это в несколько меньших шагов (читайте подробнее).
    Вы также можете использовать 43 для обновления до Branched-релиза или rawhide для обновления до Rawhide. Обратите внимание, что ни один из этих двух вариантов не является стабильным релизом. Подробную информацию о процессе обновления и распространенных проблемах, связанных с этими двумя релизами, вы можете найти в соответствующих разделах на страницах по ссылкам.
  3. Если некоторые из ваших пакетов имеют неудовлетворенные зависимости, обновление откажется продолжаться, пока вы не запустите его снова с дополнительной опцией --allowerasing. Такое часто случается с пакетами, установленными из сторонних репозиториев, для которых еще не опубликован обновленный репозиторий. Очень внимательно изучите вывод и посмотрите, какие пакеты будут удалены. Ни один из них не должен быть важен для функциональности системы, но некоторые из них могут быть важны для вашей производительности.
    • В случае неудовлетворенных зависимостей иногда можно увидеть больше деталей, если добавить в командную строку опцию --best.
    • Если вы хотите удалить/установить некоторые пакеты вручную перед повторной загрузкой dnf system-upgrade, рекомендуется выполнять эти операции с опцией --setopt=keepcache=1 командной строки dnf. В противном случае весь кэш пакетов будет удален после вашей операции, и вам придется загружать все пакеты заново.
  4. Когда новый ключ GPG будет импортирован, вам будет предложено проверить отпечаток пальца ключа. Для этого обратитесь к сайту https://fedoraproject.org/security.
  5. Запустите процесс обновления. Это перезагрузит вашу машину (немедленно!, без обратного отсчета или подтверждения, поэтому закройте другие программы и сохраните свою работу) в процесс обновления, запущенный в консольном терминале:
    dnf system-upgrade reboot
  6. После завершения процесса обновления ваша система повторно перезагрузится в обновленную версию 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 на всех файлах в системе.
Администрирование Fedora Linux + настройка сети и прочая IT-Ботва


Для желающих поддержать
Карта SB: 5469 4009 6510 2267


Лучше ужасный конец, чем ужас без конца!
Аватар пользователя
ROOT
Администратор
 
Сообщений: 440
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный


Вернуться в Fedora

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1