Dnf je výchozí správce balíčků na vysoké úrovni v rodině distribucí Red Hat, která zahrnuje Fedora, Red Hat Enterprise Linux a všechny jeho klony. Je to nástupce Yum a skutečně použití příkazu yum v posledních verzích výše zmíněných distribucí je jen další způsob, jak volat dnf. Dnf má spoustu pěkných funkcí
a pluginů, které nám pomáhají instalovat, aktualizovat a odstraňovat software zabalený ve formátu „.rpm“. V tomto tutoriálu prozkoumáme skupiny balíčků dnf a naučíme se s nimi zacházet.
V tomto tutoriálu se to naučíte :
- Co je to skupina balíčků
- Jak získat informace o skupině balíčků
- Jak vypsat všechny dostupné skupiny balíčků
- Jak nainstalovat, upgradovat a odebrat skupinu balíčků

Použité softwarové požadavky a konvence
Kategorie | Požadavky, konvence nebo použitá verze softwaru |
---|---|
Systém | Distribuce, které používají dnf jako správce balíčků |
Software | dnf |
Jiné | Žádné |
Konvence | # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo command$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel |
Co je to skupina balíčků?
Začněme tím, že definujeme, co je to skupina balíčků. Skupina balíčků je v podstatě „virtuální“ balíček. Zde tomu říkáme „virtuální“, protože neposkytuje konkrétní software jako takový, ale odkazuje na jiné „skutečné“ balíčky. Můžeme
použít skupiny balíčků k instalaci „sady“ balíčků pomocí jediného příkazu. Řekněme například, že potřebujeme nainstalovat balíčky potřebné pro práci s virtuálními stroji kvm na Fedoře:namísto samostatné instalace každého balíčku můžeme pouze nainstalovat skupinu balíčků „virtualizace“, což způsobí, že veškerý potřebný software bude nainstalován na náš systém. .
Získání informací o skupině balíčků
Než nainstalujeme skupinu balíčků, možná budeme chtít vidět, jaké balíčky budou staženy. Ke splnění tohoto úkolu nám nezbývá nic jiného než použít dnf group info
příkaz, předáním názvu skupiny balíčků, kterou chceme zkontrolovat, jako jeho argumentu. Chcete-li zjistit, co je @virtualization
skupiny balíčků obsahují, například bychom spustili:
$ dnf group info virtualization
Zde je výstup příkazu výše na systému Fedora 34:
Group: Virtualization Description: These packages provide a graphical virtualization environment. Mandatory Packages: virt-install Default Packages: libvirt-daemon-config-network libvirt-daemon-kvm qemu-kvm virt-manager virt-viewer Optional Packages: libguestfs-tools python3-libguestfs virt-top
Můžeme zvýšit upovídanost příkazu a získat podrobnější informace jeho vyvoláním pomocí -v
(zkratka pro --verbose
) možnost:
Group: Virtualization Group-Id: virtualization Description: These packages provide a graphical virtualization environment. Mandatory Packages: virt-install-3.2.0-3.fc34.noarch @System Default Packages: libvirt-daemon-config-network-7.0.0-4.fc34.x86_64 @System libvirt-daemon-kvm-7.0.0-4.fc34.x86_64 @System qemu-kvm-2:5.2.0-7.fc34.x86_64 @System virt-manager-3.2.0-3.fc34.noarch @System virt-viewer-9.0-3.fc34.x86_64 @System Optional Packages: libguestfs-tools python3-libguestfs-1:1.45.4-1.fc34.x86_64 updates virt-top-1.0.9-17.fc34.x86_64 fedora
První věc, které si můžeme ve výstupu všimnout, je název a id skupiny balíčků, v tomto případě „virtualizace“ a „virtualizace“. Po nich si můžeme přečíst stručný popis skupiny balíčků a jejího účelu
a nakonec aktuální seznam balíčků v ní obsažených. Vidíme, že balíčky jsou rozděleny do tří hlavních sekcí:
- Povinné
- Výchozí
- Volitelné
Balíčky označené jako „Povinné“ a „Výchozí“ budou vždy být nainstalovány, zatímco ty označené jako „Volitelné“ se nainstalují pouze v případě, že budou specifikovány. Pro úplnost bychom měli zmínit, že existuje další sekce, která se v tomto případě nepoužívá:Podmíněné . Balíčky, které jsou součástí sekce “Podmíněné” se instalují pouze v případě, že balíky, které vyžadují, jsou již nainstalovány.
V určitých případech mohou být některé balíčky, které jsou součástí skupiny balíčků, již v systému přítomny. Když spustíme group info
pomocí -v
Jak jsme to udělali výše, balíčky, které jsou součástí skupiny a ještě nejsou nainstalovány, budou snadno rozlišitelné, protože budou v seznamu zvýrazněny. Zde je výstup dnf -v group info virtualization
příkaz za virt-viewer
balíček byl nainstalován samostatně:

dnf -v group info virtualization
příkazový výstup Seznam všech dostupných skupin balíčků
K vypsání všech dostupných skupin balíčků v repozitářích naší distribuce stačí spustit následující příkaz:
$ dnf group list
Výše uvedený příkaz vrátí seznam všech známých skupin. Můžeme však přidat řadu možností, jak upravit jeho chování. Ve výchozím nastavení takzvané skryté skupiny nejsou zahrnuty v seznamu. Aby se zobrazily, stačí
přidat --hidden
možnost:
$ dnf group list --hidden
Pokud chceme získat pouze seznam všech nainstalovaných skupiny balíčků, místo toho můžeme použít --installed
možnost:
$ dnf group list --installed
Instalace, aktualizace a odstranění skupiny balíčků
Jak tedy můžeme nainstalovat skupinu balíčků? Existují dva hlavní způsoby:můžeme zadat název balíčku s předponou @
nebo použijte dnf group install
příkaz, jak jsme již viděli. Níže uvedené příkazy jsou ekvivalentní:
$ sudo dnf install @virtualization
$ sudo dnf group install virtualization
Jak jsme již řekli, ve výchozím nastavení jsou nainstalovány pouze balíčky „Povinné“ a „Výchozí“. Toto výchozí chování však lze upravit pomocí group_package_types
dnf, buď z příkazového řádku nebo v konfiguračním souboru dnf
. Uveďme příklad. Předpokládejme, že chceme nainstalovat pouze balíčky, které jsou součástí „Povinné“ části skupiny balíčků, mohli bychom spustit následující příkaz:
$ sudo dnf --setopt=group_package_types="mandatory" group install Virtualization
Pokud nechceme zadávat volbu při každém spuštění příkazu, můžeme ji nastavit trvale v konfiguračním souboru dnf, /etc/dnf/dnf.conf
:
[main] # Install only Mandatory packages from package groups group_package_types=mandatory
Pokud chceme, aby byly zahrnuty pouze balíčky zahrnuté v části „Volitelné“ skupiny balíčků, můžeme také přidat --with-optional
příznak příkazového řádku při instalaci skupiny balíčků:
$ sudo dnf group install --with-optional virtualization
Můžeme mít také možnost upgradovat skupina balíčků. Když tak učiníme, všechny balíčky, které jsou součástí skupiny, budou aktualizovány společně se samotnou skupinou balíčků:to by mohlo potenciálně způsobit instalaci nových balíčků
pokud byly přidány do skupiny, nebo odebrány, pokud nejsou již nejsou součástí skupiny a uživatel je explicitně nenainstaloval. K upgradu skupiny balíčků používáme group upgrade
příkaz, takže například
pro upgrade balíčku „Virtualizace“ bychom spustili:
$ sudo dnf group upgrade virtualization
Dnf také poskytuje příkaz k odstranění nainstalovaná skupina balíčků:group remove
. Příkaz odstraní vše balíčky, které jsou součástí skupiny z operačního systému, kromě těch, které jsou součástí jiné skupiny balíčků, nebo těch, které jsou explicitně nainstalovány uživatelem. Chcete-li odstranit skupinu balíčků „Virtualizace“, spustili bychom:
$ sudo dnf group remove virtualization
Závěry
V tomto tutoriálu jsme se dozvěděli o skupinách balíčků. Viděli jsme, jak získat informace o konkrétní skupině balíčků v distribucích, které používají dnf jako správce balíčků, jako je Fedora a Rhel, jak jsou balíčky, které jsou členy skupin balíčků, rozděleny do sekcí, které z nich jsou standardně instalovány a jak můžeme toto
chování upravit. Nakonec jsme se naučili, jak nainstalovat, upgradovat a odstranit skupinu balíčků.