Upgrading Fedora Linux Using DNF System Plugin
dnf system-upgrade
command (embedded into DNF5 and a dnf-plugin-system-upgrade
plugin for the DNF4 package manager ) is used to upgrade your system to the current release of Fedora Linux. For Fedora Silverblue and Fedora CoreOS, which use rpm-ostree, you may refer to rpm-ostree documentation for details.
Jedná se o doporučenou metodu přechodu na vyšší verzi z příkazové řádky. Funguje následovně:
-
Balíčky jsou staženy, zatímco systém lze používat stále normálně
-
Systém je restartován do speciálního prostředí (implementované jako cíl systemd), aby se balíčky nainstalovaly
-
Upon completion, the system reboots into the new Fedora Linux release
Provedení přechodu na vyšší verzi systému
Zazálohujte si svá data před provedením přechodu, neboť každý přechod na vyšší verzi systému je potenciálně rizikový. Preventivně si stáhněte spustitelný obraz Fedory Workstation pro případ, že by nastaly nějaké problémy. |
-
To update your Fedora Linux release from the command-line do:
sudo dnf upgrade --refresh
a restartujte počítač.
Důležité: Nevynechejte tento krok. Aktualizace systému jsou nezbytné pro získání podpisových klíčů vydání s vyšší verzí a často odstraní problémy související s procesem přechodu na vyšší verzi.
-
Stáhněte aktualizované balíčky:
sudo dnf system-upgrade download --releasever=41
Change the
--releasever=
number if you want to upgrade to a different release. Most people will want to upgrade to the latest stable release, which is41
, but in some cases, such as when you’re currently running an older release than40
, you may want to upgrade just to Fedora Linux40
. System upgrade is only officially supported and tested over 2 releases at most (e.g. from39
to41
). If you need to upgrade over more releases, it is recommended to do it in several smaller steps (read more).Rovněž můžete použít
42
, abyste přešli na vydání jiné větve, neborawhide
, abyste přešli na Rawhide. Uvědomte si, že ani jedno z těchto vydání není stabilní. Pro podrobnosti o procesu přechodu a známé problémy se vztahem k těmto dvěma vydání se, prosíme, podívejte na příslušné oddíly na jejich uvedených stránkách. -
Nemá-li některý z balíčků vyřešeny závislosti, proces přechodu na vyšší verzi odmítne pokračovat, dokud ho nespustíte znovu s přidanou volbou
--allowerasing
. Nejčastěji se tak děje s balíčky instalovanými z repozitářů třetích stran, pro které zatím nebyl publikován aktualizovaný repozitář. Zobrazený výstup si pečlivě prostudujte a zjistěte, které balíčky budou odstraněny. Žádný z nich by neměl být významný pro funkci systému, ale některé mohou být důležité z hlediska vaší produktivity.-
V případě nevyřešených závislostí lze někdy získat více podrobností, přidáte-li do příkazu volbu
--best
. -
Chcete-li odstranit/nainstalovat některé balíčky ručně před novým spuštěním
dnf system-upgrade download
, doporučuje se provést tyto operace s volbou dnf--setopt=keepcache=1
na příkazovém řádku. Jinak celá cache balíčků bude po skončení operace odstraněna a bude nutné všechny balíčky opět stáhnout.
-
-
When the new GPG key is imported, you are asked to verify the key’s fingerprint. Refer to https://fedoraproject.org/security to do so.
-
Spusťte proces přechodu na vyšší verzi. Váš počítač bude restartován (ihned!, bez odpočítávání či potvrzování, zavřete proto předtím ostatní programy a uložte si svou práci) do procesu povýšení běžícím v konzolovém terminálu:
sudo dnf system-upgrade reboot
-
Once the upgrade process completes, your system will reboot a second time into the updated release version of Fedora Linux.
Volitelné úkony po provedeném přechodu
Zde jsou některé úlohy, které lze provést po úspěšném přechodu systému na vyšší verzi.
Aktualizace konfiguračních souborů systému
Většina konfiguračních souborů se nachází v adresáři /etc
. Pokud jste upravili konfigurační soubory balíčku, RPM vytvoří nové soubory s příponou .rpmnew
(nový výchozí konfigurační soubor) nebo .rpmsave
(záloha vašeho konfiguračního souboru). Tyto soubory lze vyhledat, nebo využijte nástroj rpmconf
, který tento proces zjednoduší. Nainstalovat rpmconf lze příkazem:
sudo dnf install rpmconf
Po dokončení instalace zadejte příkaz:
sudo rpmconf -a
Některé balíčky třetích stran umístí upravené konfigurační soubory do |
Více informací lze nalézt v manuálových stránkách (man rpmconf
).
Použijete-li rpmconf
pro povýšení konfiguračních souborů systému s povýšenými balíčky, pak některé konfigurační soubory mohou doznat změn. Po provedení povýšení byste měli ověřit, že /etc/ssh/sshd_config
, /etc/nsswitch.conf
, /etc/ntp.conf
a další soubory mají očekávaný obsah. Například, je-li povýšen OpenSSH, pak sshd_config
byl změněn zpět na výchozí konfiguraci balíčku. Výchozí konfigurace balíčku neumožňuje autentizaci pomocí veřejných klíčů, ale umožňuje autentizaci pomocí hesla.
Aktualizace zavaděče GRUB na systémech s BIOS
Systems with the BIOS firmware have the GRUB RPM packages updated. However, the installed or embedded bootloader is never updated automatically. It is a good idea to update it between Fedora Linux release versions.
Vyhledejte uzel zařízení, kde je umístěn adresář /boot/
:
sudo mount | grep "/boot "
/dev/sda4 on /boot type ext4 (rw,relatime,seclabel)
Uzel zařízení je /dev/sda4
. Přeinstalujte zaváděcí program uvedením uzlu zařízení bez čísla:
sudo grub2-install /dev/sda
The correct output should be:
Installing for i386-pc platform.
Installation finished. No error reported.
Vyčištění od opuštěných balíčků
S každým vydáním opouští Fedora několik málo balíčků. Existují pro to různé důvody; balíčky zastaraly, vývoj v dodavatelském (upstream) projektu ustal, nebo správce balíčku odstoupil. Fedora tyto balíčky dále nešíří; ačkoliv se stále nacházejí na vašem systému. Tyto balíčky neobdrží žádné aktualizace. Silně se doporučuje, aby se odstranily.
If you upgrade across one release (e.g. Fedora Linux 40 to 41), run the following commands:
sudo dnf install remove-retired-packages
remove-retired-packages
If you upgrade across two releases (e.g. Fedora Linux 39 to 41), you must supply the old release version to remove-retired-packages
:
sudo dnf install remove-retired-packages
remove-retired-packages 39
Přechod na vyšší verzi přes více než dvě vydání není podporován. |
Vyčištění starých balíčků
Zobrazit duplicitní balíčky (nainstalované balíčky s různými verzemi) lze příkazem:
sudo dnf repoquery --duplicates
A odstranit:
sudo dnf remove --duplicates
Nejdříve spusťte příkaz`sudo dnf upgrade`, neboť tento seznam je platný pouze pokud je systém zcela aktuální. Jinak uvidíte seznam nainstalovaných balíčků, které se v repozitářích již nenachází, protože je k dispozici jejich aktualizace. Seznam může rovněž obsahovat balíčky instalované z repozitářů třetích stran, které své repozitáře ještě neaktualizovaly. |
Z oficiálních repozitářů by měly být nainstalovány nejaktuálnější verze. Ačkoliv některé balíčky, které se stále nachází na vašem systému, se již v repozitářích nacházet nemusejí. Zobrazit seznam těchto balíčků lze příkazem:
sudo dnf list --extras
Uvidíte-li balíčky, které nepotřebujete nebo nepoužíváte, lze je odstranit příkazem:
sudo dnf remove $(sudo dnf repoquery --extras --exclude=kernel,kernel-\*,kmod-\*)
Bezpečně odstranit balíčky, které se již nepoužívají, lze příkazem:
sudo dnf autoremove
DNF považuje balíček za nepotřebný, pokud jste výslovně nepožádali o jeho instalaci a není ničím dále vyžadován. Přesto to nemusí znamenat, že balíček nemá užitek nebo že ho nepoužíváte. Odstraňte pouze to, čím jste si jisti, že nepotřebujete. |
Vyčištění starých jader
Až spustíte počítač s nejnovějším jádrem a systém otestujete, je možné odstranit předchozí jádra. Stará jádra jsou ponechána i po dnf autoremove
, aby se předešlo nechtěnému odstranění.
Jedním z nejsnadnějších způsobů odstranění starých jader je pomocí skriptu, který ponechává nejaktuálnější jádro. Skript uvedený níže funguje kdykoliv Fedora zaktualizuje jádro a nezávisí na přechodu na vyšší verzi systému.
#!/usr/bin/env bash
old_kernels=($(dnf repoquery --installonly --latest-limit=-1 -q))
if [ "${#old_kernels[@]}" -eq 0 ]; then
echo "No old kernels found"
exit 0
fi
if ! dnf remove "${old_kernels[@]}"; then
echo "Failed to remove old kernels"
exit 1
fi
echo "Removed old kernels"
exit 0
Clean-up old keys trusted for RPM package signing
Keys from older Fedora releases and third-party repositories will accumulate in the RPM database over time. You can remove keys no-longer referenced from /etc/yum.repos.d/
with:
sudo dnf install clean-rpm-gpg-pubkey
sudo clean-rpm-gpg-pubkey
Vyčištění starých symbolických odkazů
V systému se mohou po přechodu na vyšší verzi nacházet neplatné symbolické odkazy. Ty lze pročistit tak, že nainstalujete pomocný program symlinks a staré odkazy odstraníte.
sudo dnf install symlinks
Když je pomocný program nainstalován, lze prověřit neplatné symlinky příkazem níže. -r
znamená pozpátku (rekurzivně).
sudo symlinks -r /usr | grep dangling
Po prověření seznamu neplatných symlinků je lze odstranit příkazem uvedeným níže. -d
znamená odstranit (delete).
sudo symlinks -r -d /usr
Aktualizace záchranného jádra
Záchranné jádro a soubor initramfs jsou vytvořeny instalačním programem Anaconda během instalace. initramfs je aktualizován, když je aktualizováno jádro, ale záchranné jádro aktualizované být nemusí. Zda je záchranné jádro aktualizováno záleží na nastavení systému.
Je-li záchranné jádro neaktualizované, zadejte následující příkazy pro aktualizaci.
sudo rm /boot/*rescue*
sudo kernel-install add "$(uname -r)" "/lib/modules/$(uname -r)/vmlinuz"
Obnovovací proces záchranného jádra lze zautomatizovat nainstalováním balíčku dracut-config-rescue
.
sudo dnf install dracut-config-rescue
Po nainstalování je záchranné jádro obnovováno dokud je dracut generátorem initrd. Podrobnosti viz /usr/lib/kernel/install.d/51-dracut-rescue.install
.
Řešení problémů po přechodu na vyšší verzi
Podle těchto kroků postupujte, pokud zaznamenáte problémy s povýšeným systémem. |
Opětovné sestavení databáze RPM
Uvidíte-li při práci s nástroji RPM/DNF varování, může být poškozena databáze. Je možné ji opět sestavit a zjistit tak, zda došlo k vyřešení problémů. Vždy si nejprve zazálohujte /var/lib/rpm/
. Pro opětovné sestavení databáze spusťte příkaz:
sudo rpm --rebuilddb
Použití distro-sync k vyřešení problémů se závislostmi
Nástroj system upgrade používá standardně dnf distro-sync
. Je-li váš systém aktualizovaný částečně nebo pokud se zobrazují problémy s některými závislostmi balíčků, zkuste spustit další distro-sync ručně a uvidíte, zda došlo k odstranění problémů. Příkaz se pokusí sladit verze nainstalovaných balíčků s jejich verzemi ve vámi povolených repozitářích, i kdyby to znamenalo jejich ponížení (instalaci nižší verze):
sudo dnf distro-sync
Lze rovněž použít volbu --allowerasing
, kdy budou odstraněny balíčky se závislostmi, které nelze uspokojit. Vždy před potvrzením zkontrolujte balíčky, které se odstraní:
sudo dnf distro-sync --allowerasing
Přeznačkování souborů s nejaktuálnější politikou SELinuxu
Zaznamenáte-li nějaké varování ohledně politik SElinuxu, některé soubory mohou mít vadná oprávnění SELinux. Může se tak stát, pokud byl SELinux v minulosti vypnut. Chcete-li přeštítkovat SELinux na systému, spusťte následující příkaz a poté restartujte počítač:
sudo fixfiles -B onboot
Proces spuštění počítače pravděpodobně zabere delší čas, neboť bude kontrolovat a opravovat štítky oprávnění SELinuxu na všech souborech systému.
Časté dotazy
Jak mám nahlásit problém s přechodem na vyšší verzi systému?
-
Podívejte se na Obvyklé chyby a zkontrolujte, zda se jedná o známý problém, kterého si je komunita již vědoma.
-
Search Bugzilla for an existing bug report filed against DNF5, resp. DNF4 plug-in.
If you do not see a report that matches your symptoms, you can file a new report from the search page. Please follow the bug reporting instructions mentioned in the README from the GitHub repo.
Zaznamenáte-li problém po přechodu na vyšší verzi systému s konkrétním balíčkem, podejte hlášení o chybě pro dotčený balíček.
Ověřuje DNF System Upgrade software, který spouští nebo instaluje během přechodu na vyšší verzi systému?
Yes. The package signing keys for the newer Fedora Linux release are sent to older releases to allow DNF to verify the integrity of the downloaded packages. You can disable this function if needed, but is not recommended as you will be open to attacks from malicious software.
Budou balíčky v repozitářích třetích stran povýšeny na novou verzi?
Yes, if they are configured like regular DNF repositories and the version numbers are not hard-coded in the repository file (usually found in /etc/yum.repos.d/
). Commonly used third-party repositories like RPM Fusion should work. However, if attempting to upgrade prior to, or soon after, an official Fedora Linux release, they may not have updated their repository paths, and DNF may be unable to find their packages. Usually, this should not prevent the upgrade from running successfully. Also, you can update packages from the third-party repository later.
Mohu přejít na novou verzi systému z vydání, jehož životní cyklus je ukončen (End-of-Life(EOL))?
Naléhavě se doporučuje přejít na novou verzi z vydání EOL na kterémkoliv produkčním systému, nebo kterémkoliv systému připojenému k veřejnému internetu.
Any upgrade from Fedora Linux 20 or earlier is done at your own risk as DNF was not the default package management tool. However, if you do have a release newer than Fedora Linux 20 that is EOL, you can attempt to do an upgrade, but this method is not supported. You may try to upgrade through intermediate releases until you reach a currently-supported release, or try to upgrade to a currently-supported release in a single operation. Again this is unsupported and is at your own risk.
Mohu provést přechod přes několik vydání (např. 30→34) najednou?
Přechod na vedlejší vydání (např. z 40
na 41
), stejně jako přechod přes jedno vydání (např. z 39
na 41
) je podporován. Naproti tomu se velmi doporučuje provést přechod předtím, než vaše vydání dosáhne ukončení životního cyklu (EOL). Ukončení nastává přibližně za jeden měsíc od zveřejnění vydání N+2 (když provozujete vydání N). Životní cyklus vydání Fedory je navržen konkrétně tak, aby poskytl toto přibližně jedno měsíční "přechodné období" (odklad), aby se poskytla uživatelům možnost přecházet na vyšší verzi jejich systémů na ročním základu, tzn. ob jedno vydání. Stav současného vydání a jeho harmonogram lze prostudovat na Vydání. Asi měsíc po zveřejnění nového vydání je druhému staršímu (předpředposlednímu) vydání ukončen životní cyklus (End of Live (EOL)). Přechod na nové vydání proběhne pravděpodobně úspěšně poté, kdy vydání dosáhne EOL, ale po jak dlouho dobu po uveřejnění nového vydání není zcela jisté.
Přechod na vyšší verzi systému přes více než dvě vydání není podporován a zaznamenané problémy s takovým přechodem nemusejí být shledány za významné chyby.
Při přechodu přes více než dvě vydání, budete pravděpodobně potřebovat naimportovat klíč GPG pro vydání, na které chcete přejít. Naimportujte klíč příkazem:
sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-N-primary
(where N
is the Fedora Linux version.)
Want to help? Learn how to contribute to Fedora Docs ›