Tento tutoriál vysvětluje všechny základní příkazy pro ty, kteří chtějí vědět, jak používat správce balíčků DNF. Jak už možná víte, DNF je verze nové generace YUM a je výchozím správcem balíčků od Fedory 22. Má být náhradou za YUM v systémech založených na RPM, jako je RHEL, CentOS. Ve srovnání s YUM má DNF některé významné výhody, jako je podpora více úložišť, podpora skupin balíčků, rychlejší rychlost řešení závislostí a spotřebovává méně paměti, běží v Pythonu 2 i Pythonu 3, solidní dokumentace API, kompatibilita s YUM a mnohé.
Doporučeno:
- Začínáme s Pacmanem
Příklady příkazů DNF pro začátečníky
Od Fedory 22 byl yum nahrazen DNF, takže jej nemusíte instalovat, pokud používáte Fedoru. Na CentOS 7 a RHEL 7 jej můžete nainstalovat, jak je popsáno v níže uvedeném tutoriálu.
- Jak nainstalovat DNF na CentOS 7
Použití DNF je velmi podobné YUM. Všechny zde uvedené příkazy byly testovány na CentOS 7 minimální serverové edici s rootem uživatel.
1. Získání nápovědy
Chcete-li zobrazit všechny hlavní příkazy, příkazy pluginu a možnosti, spusťte:
# dnf help
Chcete-li získat nápovědu ke konkrétnímu příkazu, například 'install', spusťte:
# dnf help install
Chcete-li se dozvědět o aktuálně nainstalované verzi DNF, spusťte:
# dnf --version
2. Správa balíčků
Tato část vysvětluje instalaci, aktualizaci, výpis, vyhledávání, stahování, přeinstalování a odstraňování balíčků.
Získání informací o balíčku
Chcete-li získat podrobnosti o jakémkoli nainstalovaném nebo nenainstalovaném balíčku, spusťte:
# dnf info vim
Instalace balíčků
Chcete-li nainstalovat nový balíček, například vim , spustit:
# dnf install vim
Můžeme také nainstalovat několik balíčků, jak je uvedeno níže.
# dnf install vim nano emacs
Chcete-li pokračovat v instalaci, musíte zadat "y". Pokud to nechcete dělat pokaždé, můžete do příkazů pro automatické potvrzení zahrnout možnost „y“.
# dnf install vim nano emacs -y
To nebude čekat na potvrzení uživatele. Místo toho jednoduše nainstaluje všechny balíčky automaticky.
Výpis balíčků
Seznam všech dostupných a nainstalovaných balíčků:
# dnf list
K vypsání pouze všech nainstalovaných balíčků používáme:
# dnf list installed
Chcete-li vypsat pouze dostupné balíčky:
# dnf list available
Aktualizace balíčků
Chcete-li zkontrolovat všechny dostupné aktualizace, postupujte takto:
# dnf check-update
Nebo,
# dnf list updates
Chcete-li aktualizovat jeden balíček (např. bash), spusťte:
# dnf update bash
Chcete-li zjistit, zda existuje nějaká aktualizace nainstalovaného balíčku, spusťte:
# dnf list yum.noarch Using metadata from Sat Feb 10 14:47:22 2018 Installed Packages yum.noarch 3.4.3-150.el7.centos @System Available Packages yum.noarch 3.4.3-154.el7.centos.1 update
Tento příkaz zobrazí aktuálně nainstalovanou verzi a dostupnou aktualizaci z úložiště. Ve výše uvedeném výstupu @system určuje nainstalovanou verzi a aktualizaci určuje dostupnou aktualizaci z úložiště.
Chcete-li aktualizovat více balíčků:
# dnf update package1 package2
Předejte možnost „y“ pro automatické potvrzení.
# dnf update package1 package2 -y
Chcete-li aktualizovat/upgradovat všechny balíčky, spusťte:
# dnf update
# dnf upgrade
Chcete-li synchronizovat nainstalované balíčky na nejnovější dostupné verze:
# dnf distro-sync
Vyhledávání balíčků
Chcete-li vyhledat balíček z úložiště, spusťte:
# dnf search vim
Tento příkaz zobrazí seznam všech balíků, které odpovídají slovu "vim".
Stahování balíčků
Někdy si možná budete chtít stáhnout balíček, ale nechcete ho hned instalovat. Pokud ano, spusťte:
# dnf download vim
Tento příkaz stáhne balíček vim-enhanced-xx.xx.x.rpm, ale nenainstaluje jej.
Chcete-li nainstalovat stažený balíček, spusťte:
# dnf install vim-enhanced-7.4.160-2.el7.x86_64.rpm
Všechny ostatní požadované závislosti budou staženy a nainstalovány z úložiště.
Přechod balíčků na nižší verzi
Chcete-li přejít na nižší verzi balíčku, který jste dříve aktualizovali, spusťte:
# dnf downgrade bash
Přeinstalování balíčků
Máte nějaké problémy s již nainstalovaným balíčkem? Bez obav! Můžete jej kdykoli znovu nainstalovat.
Chcete-li přeinstalovat balíček, použijte:
# dnf reinstall vim
Odebrání balíčků
Chcete-li odebrat balíček (např. vim) ze systému, spusťte:
# dnf remove vim
Můžete také použít možnost „vymazat“, jak je uvedeno níže.
# dnf erase vim
3. Skupiny balíčků
Skupina balíčků je kolekce balíčků, které slouží společnému účelu, například „Nástroje pro vývoj“ nebo „Webový server“. Když nainstalujete skupinu balíčků, budou staženy a nainstalovány všechny závislé balíčky. Instalace skupin vám ušetří značné množství času.
Instalace skupin balíčků
Chcete-li zobrazit seznam všech dostupných skupin balíčků, spusťte:
# dnf grouplist
Chcete-li nainstalovat skupinu balíčků, například "Development Tools", spusťte:
# dnf groupinstall 'Development Tools'
Tento příkaz nainstaluje všechny balíčky potřebné k nastavení vývojového prostředí.
Aktualizace skupin balíčků
Chcete-li aktualizovat skupinu balíčků, spusťte:
# dnf groupupdate 'Development Tools'
Odebrání skupin balíčků
Chcete-li odstranit skupinu balíčků, spusťte:
# dnf groupremove 'Development Tools'
4. Práce s repozitáři
Výpis nainstalovaných úložišť
Ve výchozím nastavení budou všechna úložiště přidána do adresáře /etc/yum.repos.d/ v CentOS/RHEL. Nainstalovaná úložiště můžete vypsat pomocí příkazu:
# dnf repolist
Výše uvedený příkaz zobrazí pouze povolená úložiště. Chcete-li zobrazit všechna úložiště (jak povolená, tak deaktivovaná), spusťte:
# dnf repolist all
Přidávání úložišť
Úložiště můžete přidat ručním vytvořením souboru package.repo v adresáři /etc/yum.repos.d/. DNF to však ještě usnadňuje.
Chcete-li přidat nové úložiště, spusťte:
# dnf config-manager --add-repo repository_url
Příklad:
# dnf config-manager --add-repo http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/
Chcete-li zobrazit nově přidané úložiště, provedeme:
# dnf repolist created by dnf config-manager from http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/ 115 kB/s | 3.5 MB 00:31 Using metadata from Sat Feb 10 14:47:22 2018 repo id repo name status base CentOS-7 - Base 9,591 epel Extra Packages for Enterprise Linux 7 - x86_64 12,278 extras CentOS-7 - Extras 388 springdale.math.ias.edu_data_puias_unsupported_7_x86_64_ created by dnf config-manager from http://springdale.math.ias.edu/data/puias/unsupporte 2,760 updates CentOS-7 - Updates
Chcete-li zobrazit pouze soubor .repo:
# cat /etc/yum.repos.d/springdale.math.ias.edu_data_puias_unsupported_7_x86_64_.repo [springdale.math.ias.edu_data_puias_unsupported_7_x86_64_] name=created by dnf config-manager from http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/ baseurl=http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/ enabled=1
Povolení úložišť
Chcete-li povolit úložiště, použijte:
# dnf config-manager --set-enabled <repo-id>
Příklad:
# dnf config-manager --set-enabled epel
Můžeme to ověřit spuštěním následujícího příkazu, abychom viděli pouze povolená úložiště.
# dnf repolist
Můžeme také kombinovat možnosti povolení a instalace, jak je uvedeno níže.
# dnf config-manager --set-enabled epel install zsh
Výše uvedený příkaz povolí úložiště EPEL a nainstaluje balíček zsh.
Deaktivace úložišť
K deaktivaci úložiště, například EPEL, používáme:
# dnf config-manager --set-disabled epel
Můžeme také kombinovat možnosti aktivace a deaktivace dohromady, jak je uvedeno níže.
# dnf --enablerepo=epel --disablerepo=updates
Výše uvedený příkaz povolí úložiště EPEL a zakáže úložiště aktualizací.
5. Hledání, které něco poskytuje
DNF vám umožňuje zjistit, který balíček poskytuje konkrétní příkaz nebo soubor. Pokud si přesně nepamatujete, který balíček poskytuje konkrétní příkaz, který jste chtěli použít, může vám pomoci DNF.
Zjistěte, který balíček poskytuje konkrétní příkaz
Chybí mi starý dobrý příkaz "ifconfig". Tento příkaz je zastaralý a není dostupný v posledních verzích. Chcete-li zjistit, který balíček obsahuje tento klenot, spusťte:
# dnf provides */ifconfig
Ukázkový výstup:
Using metadata from Thu Feb 8 15:52:17 2018 net-tools-2.0-0.22.20131004git.el7.x86_64 : Basic networking tools Repo : base
Aha, ano! síťové nástroje balíček poskytuje tento příkaz. Můžete tedy nainstalovat tento balíček a použít příkaz ifconfig.
Zjistěte, který balíček poskytuje soubor
Dovolte nám, abyste zjistili, co balíček nabízí /bin/ls soubor. Chcete-li to provést, spusťte:
# dnf provides */bin/ls Using metadata from Thu Jun 30 12:51:16 2016 coreutils-8.22-18.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts Repo : @System coreutils-8.22-18.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts Repo : base
Jak vidíte ve výše uvedeném výstupu, coreutils balíček poskytuje /bin/ls soubor.
Přečtěte si také:
- Jak najít balíček, který poskytuje konkrétní soubor v Linuxu
6. Práce s historií DNF
Pomocí příkazu "dnf history" můžeme zobrazit všechny akce, které jsme provedli příkazem DNF.
# dnf history Using metadata from Sat Feb 10 14:47:22 2018 ID | Command line | Date a | Action | Altere ------------------------------------------------------------------------------- 2 | update bash | 2018-02-10 14:55 | Update | 1 1 | install vim | 2018-02-10 14:51 | E, I | 33 EE
Jak vidíte ve výše uvedeném výstupu, došlo ke dvěma transakcím. Nainstaloval jsem balíček s názvem „vim“ a aktualizoval balíček „bash“. Nejnovější transakce se zobrazí nahoře.
Chcete-li zobrazit podrobnosti konkrétní transakce, použijte její ID, jak je uvedeno níže.
# dnf history list 2
Můžeme také zobrazit úplné podrobnosti konkrétní transakce, jak je uvedeno níže.
# dnf history info 2 Using metadata from Sat Feb 10 14:47:22 2018 Transaction ID : 2 Begin time : Sat Feb 10 14:55:38 2018 Begin rpmdb : 360:fa7bea798a10e850b2bf800182b377443b481652 End time : 14:55:39 2018 (1 seconds) End rpmdb : 360:dc9f6bb33b00fe1d74dd205586c0ff8c4674f8f7 User : root <root> Return-Code : Success Command Line : update bash Transaction performed with: Installed dnf-0.6.4-2.sdl7.noarch (unknown) Installed rpm-4.11.3-21.el7.x86_64 (unknown) Packages Altered: Upgraded bash-4.2.46-21.el7_3.x86_64 (unknown) Upgrade 4.2.46-29.el7_4.x86_64 @updates
Jak vidíte, transakce s ID 2 byla použita k aktualizaci balíčku s názvem "bash". Tuto transakci můžeme kdykoli vrátit zpět pomocí příkazu:
# dnf history undo 2
Chcete-li zopakovat předchozí transakci „vrátit zpět“, stačí spustit:
# dnf history redo 2
7. Vytváření mezipaměti metadat DNF
Mezipaměť metadat DNF se automaticky vytvoří při instalaci aktualizačních balíčků. Nemusíme ho tedy ručně stavět. DNF má však vestavěný příkaz pro vytvoření mezipaměti, aby byly budoucí transakce rychlejší.
Chcete-li vytvořit mezipaměť metadat, spusťte:
# dnf makecache Extra Packages for Enterprise Linux 7 - x86_64 155 kB/s | 15 MB 01:35 created by dnf config-manager from http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/ 136 kB/s | 3.5 MB 00:26 CentOS-7 - Base 195 kB/s | 9.5 MB 00:49 CentOS-7 - Updates 240 kB/s | 7.9 MB 00:33 CentOS-7 - Extras 84 kB/s | 820 kB 00:09 Metadata cache created.
8. Úklid
Chcete-li odstranit nechtěné/osiřelé balíčky, spusťte:
# dnf autoremove
Chcete-li odebrat všechny balíčky uložené v mezipaměti, spusťte:
# dnf clean all
Místo úplného vyčištění mezipaměti můžete chtít provést individuální čištění metadat, dbcache, balíčků, pluginů atd.
Chcete-li odstranit soubory mezipaměti generované z metadat úložiště:
# dnf clean dbcache
To přinutí DNF, aby při příštím spuštění obnovil soubory mezipaměti.
Chcete-li odstranit místní soubory cookie oznamující, že byla stažena metadata a seznamy zrcadlení pro každé úložiště, spusťte:
# dnf clean expire-cache
DNF znovu ověří mezipaměť pro každé úložiště při příštím použití.
Chcete-li odstranit metadata úložiště:
# dnf clean metadata
Použití této možnosti způsobí, že DNF stáhne všechna metadata při příštím spuštění.
Odebrání všech balíčků uložených v mezipaměti ze systému:
# dnf clean packages
Následující příkaz říká všem povoleným pluginům, aby odstranily svá data uložená v mezipaměti.
# dnf clean plugins
To stačí k základnímu použití DNF na Fedoře, RHEL a CentOS. Další podrobnosti naleznete na manuálových stránkách.
$ man dnf