2024. május 17., péntek

Gyorskeresés

A DNF csomagkezelő

Írta: |

[ ÚJ BEJEGYZÉS ]

A DNF (DeNdiFied YUM) egy fejlett, RPM alapú csomagkezelő, mely elsősorban a Red Hat Linux és annak leszármazott disztribúcióiból (pl. Fedora, CentOS) lehet ismerős, de más disztribúciók is használják. A YUM továbbfejlesztéseként jött létre, annak hibáit (gyenge teljesítmény, lassú függőségfeloldás, magas memóriahasználat) orvosolandó. A DNF a függőségek feloldására az OpenSuse Zypperétről kölcsönzött libsolv-ot használja, mely gyors iteratív függőségfeloldsást biztosít. Maga a DNF, mint program, alapvetően egy frontend a libdnf által biztosított szolgáltatásokat eléréséhez.
Ebben a blogbejegyzésben szerentém összegyűjteni a DNF legfontosabb parancsait és kapcsolóit, hogy segítségére legyen azoknak, akik DNF-es disztribúciót használnak vagy terveznek használni. Nem taglalunk minden egyes opciót, de a leggyakoribb felhasználási esetekre kitérünk. A bejegyzés nem rövid, de természetesen nem szükséges az egészet fejből tudni, elég néhány alapvető parancsot megtanulni ahhoz, hogy jól tudjuk használni a DNF-et. Vannak a leírásban olyan szakaszok, amiket valószínűleg sosem fogsz használni.
A bejegyzés elején a DNF parancsait és kapcsolóit taglaljuk, a végén pedig a DNF által használt konfigurációs fájlokról ejtünk pár szót.

A hibát találsz a bejegyzésben, kérlek mindenképp jelezd kommenteben, hogy tudjam javítani!

1. A DNF jellemzői:

- bináris és forráscsomagok telepítése, frissítése, törlése
- telepítés helyi lemezről és távoli tárolóból
- a teljes rendszer frissítése
- automatikus függőségkezelés
- automatikus frissítés (a dnf-automatic csomag segítségével)
- repozitóriumok (tárolók) kezelése
- részletes információk biztosítása csomagokról, csoportokról, tárolókról
- tárolók és csomagok hitelességének automatikus ellenőrzése
- lokális gyorsítótár a csomagok és metaadatok tárolásához
- csomagok cseréje egyetlen tranzakción belül
- tranzakciókezelés
- csomagcsoportok kezelése
- csomaglisták szűrése
- többszálon történő letöltés
- csomagok verziójának rögzítése
- letöltött csomagok automatikus másolása saját tárolóba
- shell biztosítása folyamatos interaktív munkához
- modulok kezelése
- parancskiegészítés (completion)
- Tor hálózaton történő letöltés
- bővíthetőség pluginok révén
- stb.

2. Kapcsolók és rövidítések

A DNF rendelkezik néhány általános kapcsolóval, melyeket szinten minden parancs mellé használhatunk. A legfontosabb általános kapcsolók a következők:
--help: súgó az adott parancsról. A súgó elején az általános mindig az általános kapcsolók találhatók, a végén a parancsspeficikus kapcsolók
-y, -- assumeyes: automatikus igen válasz minden kérdésre
-n, --assumeno: automatikus nem válasz minden kérdésre
-v, --verbose: bőbeszédű működés
--allowerasing: engedélyezi a telepített csomagok törlését a függőségek feloldása végett
--repo [repo], --repoid [repo]: csak bizonyos tárolók engedélyezése, azonosító vagy glob alapján (többször is megadható)
-x [package], --exclude [package], --excludepkgs [package]: csomagok kizárása név vagy glob alapján
--refresh: metaadatok frissítésének kényszerítése a parancs futtatása előtt

A DNF eléggé megengedő a parancsok és kapcsolók használatával kapcsolatban. Egyes parancsokat rövdíthetünk, például a dnf search vim ugyanazt jelenti, mint a dnf se vim. Sok esetben elhagyhatjuk a kapcsolót megelőző kötőjeleket, például a dnf list --all ugyanazt jelenti, mint a dnf list all. Bizonyos parancsoknál aliasokat is használhatunk, így a dnf upgrade vim ugyanazt jelenti, mint a dnf update vim.
Egyes helyeken jeleztem, hogy több féle megadási mód is lehetséges. Pontos részletekért lásd a dokumentációt.

A DNF parancsinak pontos leírását lásd itt: https://dnf.readthedocs.io/en/latest/command_ref.html

3. Telepítés a DNF segítségével

Csomag(ok) és függőségeinek telepítése repozitóriumból:
dnf install <csomagnév>

Csomag telepítése fájlrendszerről:
dnf install ./csomagneve.rpm

Egy adott fájlt tartalmazó csomag telepítése:
dnf install /utvonal/fajl
Például, a dnf install /usr/lib64/zzuf parancs megkeresi azt a csomagot, amelyikben az /usr/lib64/zzuf fájl van, és feltelepíti azt.

Csomagcsoport telepítése:
dnf group install <csoportnév> vagy
dnf install @csoportnév

Például:
dnf group install "KDE Plasma Workspaces"
dnf group install kde-desktop-environment
dnf install @kde-desktop-environment

Csomag újratelepítése:
dnf reinstall <csomagnév>

4. Eltávolítás

Csomagok és függőségeinek eltávolítása:
dnf remove <csomagnév>

Egy adott fájlt tartalmazó csomag eltávolítása:
dnf remove /utvonal/fajl
Például, a dnf remove /usr/lib64/zzuf parancs megkeresi azt a csomagot, amelyikben az /usr/lib64/zzuf fájl van, és eltávolítja azt.

Csomagcsoport eltávolítása:
dnf group remove <csoportnév> vagy
dnf remove @csoportnév

Például, a KDE Office csoport eltávolítása:
dnf group remove "KDE Office"
dnf group remove kde-office
dnf remove @kde-office

Az összes elárvult csomag (olyan csomag, amely más csomag függőségeként települt, de már nincs rá szükség) eltávolítása:
dnf autoremove

5. Frissítés

Annak ellenőrzése, hogy vannak-e új frissítések. Ezt elég ritkán használjuk, mivel a DNF automatikusan letölti a metaadatokat (tároló- és csomaginformációkat) minden művelet előtt, a konfigurációs fájlban meghatározott időközönként (lsd. metadata_expire opció az /etc/dnf/dnf.conf-ban):
dnf check-update

Ha egy művelet elvégzése (pl. frissítés) előtt azonban mégis úgy gondoljuk, hogy a metaadatok frissítésére van szükség, használjuk a --refresh (--ref) kapcsolót:
dnf update --refresh vagy
dnf update --ref

Csak a biztonsági frissítések ellenőrzése:
dnf check-update --security vagy
dnf check-update security

Csak a hibajavítási frissítések ellenőrzése:
dnf check-update --bugfix vagy
dnf check-update bugfix

A fenti két parancsot kombinálhatjuk, így: dnf check-update --security --bugfix, vagy akár így is: dnf check-update security bugfix

Az összes csomag és azok függőségeinek frissítése:
dnf update vagy
dnf upgrade

Csak a biztonsági frissítések telepítése:
dnf update --security vagy
dnf update security

Csak a hibajavító frissítések telepítése:
dnf update --bugfix vagy
dnf update bugfix

Itt szintén kombinálhatjuk a kettőt: dnf update --security --bugfix vagy dnf update security bugfix.

Adott csomag(ok) és függőségeinek frissítése:
dnf upgrade <csomagnév> vagy
dnf update <csomagnév>
Például: dnf update sudo vim mc

Csak bizonyos bizonyos frissítések telepítése:
dnf update --advisory=<frissítés_azonosító>
Ahol a <frissítés_azonosító> az adott disztribúcióban használt érvényes frissítési azonosító (a dnf updateinfo parancsok kimenetéből nyerhető ki).
Például: dnf update --advisory=FEDORA-2023-6537113d6d

Adott csomag(ok) downgrade-elése:
dnf downgrade <csomagnév>

A DNF képes az ún. csomagcsoportok kezelése. A csomagcsoportok egy adott felhasználási esetre tervezett csomagok csoportja. Például a "KDE Office" csoport a KDE környezethez tartozó irodai programok csomagjait fogja össze.
Csomagcsoportokat az alábbi paranccsal frissíthetünk, így a csoportba tartozó összes csomag frissül:
dnf group update <csoportnév>

A teljes rendszer frissítése:
dnf distro-sync
dnf system-upgrade

Azon folyamatok listázása, amelyek frissítés után a rendszer újraindítását igénylik (csak a folyamatokat listázza, a szolgáltatásokat nem!):
dnf needs-restarting

6. Frissítésekkel kapcsolatos információk

A DNF lehetővé teszi, hogy különféle információkat szerezzünk a csomagfrissítésekről, így segít nekünk a frissítések menedzselésében.

Információk a csomagfrissítésekkel kapcsolatban:
dnf updateinfo

Ez a parancs egy összegzést ad vissza az elérhető frissítésekről, például:

$ dnf updateinfo
Az utolsó metaadat lejárati ellenőrzés ennyi ideje volt: 0:55:21, ekkor: 2023. márc. 5., vasárnap, 15:16:37 CET.
Információ a frissítésekkel kapcsolatban: elérhető
1 Biztonsági észrevétel(ek)
1 Alacsony biztonsági észrevétel(ek)
6 Hibajavítási észrevétel(ek)
4 Fejlesztési észrevétel(ek)
2 egyéb észrevétel(ek)

Információk a telepített frissítésekről:
dnf updateinfo installed

Ez pedig az előzőhöz kapcsolódó összesítést ad vissza a telepített frissítésekről:

$ dnf updateinfo installed
Az utolsó metaadat lejárati ellenőrzés ennyi ideje volt: 0:56:39, ekkor: 2023. márc. 5., vasárnap, 15:16:37 CET.
Információ a frissítésekkel kapcsolatban: telepítve
2 Új csomag észrevétel(ek)
37 Biztonsági észrevétel(ek)
1 Kritikus biztonsági észrevétel(ek)
7 Fontos biztonsági észrevétel(ek)
20 Közepes biztonsági észrevétel(ek)
5 Alacsony biztonsági észrevétel(ek)
149 Hibajavítási észrevétel(ek)
82 Fejlesztési észrevétel(ek)
47 egyéb észrevétel(ek)

Az elérhető frissítésekkel kapcsolatban szintén kaphatunk hasonló összegzést:
$ dnf updateinfo available
Az utolsó metaadat lejárati ellenőrzés ennyi ideje volt: 0:58:30, ekkor: 2023. márc. 5., vasárnap, 15:16:37 CET.
Információ a frissítésekkel kapcsolatban: elérhető
1 Biztonsági észrevétel(ek)
1 Alacsony biztonsági észrevétel(ek)
6 Hibajavítási észrevétel(ek)
4 Fejlesztési észrevétel(ek)
2 egyéb észrevétel(ek)

Az összes elérhető frissítés listázása:
dnf updateinfo list available

Ez a parancs egy ehhez hasonló listát ad vissza:
$ dnf updateinfo list available
Az utolsó metaadat lejárati ellenőrzés ennyi ideje volt: 0:59:51, ekkor: 2023. márc. 5., vasárnap, 15:16:37 CET.
FEDORA-2023-33f6d232ca ismeretlen annobin-docs-11.11-1.fc37.noarch
FEDORA-2023-33f6d232ca ismeretlen annobin-plugin-gcc-11.11-1.fc37.x86_64
FEDORA-2023-e4b30443ab fejlesztés container-selinux-2:2.201.0-1.fc37.noarch
FEDORA-2023-56ff346ed8 hibajavítás crun-1.8.1-1.fc37.x86_64
FEDORA-2023-76dc977fd7 hibajavítás ibus-typing-booster-2.22.1-1.fc37.noarch
FEDORA-2023-a49e467a1b fejlesztés libdmapsharing-2.9.42-1.fc37.x86_64

Használhatjuk a dnf updateinfo list updates parancsot is, amely ugyanezt a listát adja vissza.

A korábban telepített frissítések jelenlegi és eggyel korábbi verziójáról is kérhetünk listát:
$ dnf updateinfo list installed
Az utolsó metaadat lejárati ellenőrzés ennyi ideje volt: 1:00:29, ekkor: 2023. márc. 5., vasárnap, 15:16:37 CET.
FEDORA-2023-6537113d6d Közepes/bizt. ImageMagick-c++-1:6.9.12.77-1.fc37.x86_64
FEDORA-2023-6537113d6d Közepes/bizt. ImageMagick-libs-1:6.9.12.77-1.fc37.x86_64
FEDORA-2023-b299624f65 hibajavítás ModemManager-1.18.12-1.fc37.x86_64
FEDORA-2023-b299624f65 hibajavítás ModemManager-glib-1.18.12-1.fc37.x86_64
FEDORA-2023-7f92dd90a3 ismeretlen NetworkManager-1:1.40.10-1.fc37.x86_64
FEDORA-2023-7f92dd90a3 ismeretlen NetworkManager-adsl-1:1.40.10-1.fc37.x86_64
FEDORA-2023-7f92dd90a3 ismeretlen NetworkManager-bluetooth-1:1.40.10-1.fc37.x86_64
FEDORA-2023-7f92dd90a3 ismeretlen NetworkManager-config-connectivity-fedora-1:1.40.10-1.fc37.noarch
FEDORA-2022-a3c50ac087 fejlesztés NetworkManager-l2tp-1.20.8-1.fc37.x86_64
FEDORA-2022-a3c50ac087 fejlesztés NetworkManager-l2tp-gnome-1.20.8-1.fc37.x86_64
FEDORA-2023-7f92dd90a3 ismeretlen NetworkManager-libnm-1:1.40.10-1.fc37.x86_64
FEDORA-2023-7f92dd90a3 ismeretlen NetworkManager-ppp-1:1.40.10-1.fc37.x86_64

A dnf updateinfo list all parancs pedig a telepített csomagok összes korábbi verzióját is kilistázza.

Információk lekérés egy adott frissítéssel kapcsolatban:
dnf updateinfo info <frissítés_azonosító>

Ahol a <frissítés_azonosító> az adott disztribúcióban használt érvényes frissítési azonosító (a dnf updateinfo parancsok kimenetéből nyerhető ki).
Fedorában például a fenti parancs a FEDORA-2023-27958e9307 számú frissítéssel kapcsolatban ezt adja vissza:

$ dnf updateinfo info FEDORA-2023-27958e9307
Az utolsó metaadat lejárati ellenőrzés ennyi ideje volt: 1:07:20, ekkor: 2023. márc. 5., vasárnap, 15:16:37 CET.
===============================================================================
vim-9.0.1367-1.fc37
===============================================================================
Frissítési azonosító: FEDORA-2023-27958e9307
Típus: biztonsági
Frissítve: 2023-03-04 03:17:34
Hibák: 2174662 - CVE-2023-1127 vim: Divide By Zero in vim/vim
: 2174930 - CVE-2023-1127 vim: Divide By Zero in vim/vim [fedora-all]
Leírás: The newest upstream patchlevel 1367
:
: Security fix for CVE-2023-1127
Súlyosság: Low

Az összes, még nem telepített biztonsági frissítés listázása:
dnf updateinfo list updates security vagy
dnf updateinfo list security

Az összes, már telepített biztonsági frissítés listázása:
dnf updateinfo list security --installed

Információk kérése egy adott CVE azonosítóhoz kapcsolódó biztonsági frissítésről:
dnf updateinfo info --cve <cve_azonosíto>
Például: dnf updateinfo info --cve CVE-2019-20386

7. Változásnaplók

Ha szeretnénk tudni, hogy a friss csomagok milyen változásokat hoznak magukkal, megtekinthetjük a változásnaplót az alábbi utasításokkal.

Teljes, az összes csomaghoz tartozó változásnapló megtekintése:
dnf changelog

Ha csak egy vagy több csomag változásnaplójára vagyunk kíváncsiak, azt is könnyen megnézhetjük:
dnf changelog <csomagnév>
Itt is használhatunk egymás után több csomagnevet, a DNF a szép sorban visszaadja a hozzájuk tartozó változásnaplót.
Pl. a dnf changelog sudo parancs a következőt adja vissza:

$ dnf changelog sudo
Az utolsó metaadat lejárati ellenőrzés ennyi ideje volt: 0:02:49, ekkor: 2023. márc. 5., vasárnap, 14:30:37 CET.
Összes változásnapló megjelenítése
Változásnaplók ehhez: sudo-1.9.13-1.p2.fc37.x86_64
* sze márc 01 00:00:00 2023 Radovan Sroka <rsroka@redhat.com> - 1.9.13-1.p2
- Rebase to sudo 1.9.13p2
- sudo-1.9.13p2 is available Resolves: rhbz#2169840
- sudo: double free with per-command chroot sudoers rules Resolves:
CVE-2023-27320

* cs jan 19 00:00:00 2023 Radovan Sroka <rsroka@redhat.com> - 1.9.12-1.p2
- Rebase to sudo 1.9.12p2
- sudo-1.9.12p2 is available Resolves: rhbz#2137775
- sudo: arbitrary file write with privileges of the RunAs user
CVE-2023-22809 Resolves: rhbz#2162042

* szo júl 23 00:00:00 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.11-4.p3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

* sze jún 22 00:00:00 2022 Radovan Sroka <rsroka@redhat.com> - 1.9.11-3.p3
- Update to 1.9.11p3

* h jún 13 00:00:00 2022 Python Maint <python-maint@redhat.com> - 1.9.8-7.p2
- Rebuilt for Python 3.11

Változásnapló megtekintése adott dátumtól:
dnf changelog --since

Szintén lehet használni egy vagy több csomagra szűkítve, például a sudo csomaghoz:

$ dnf changelog sudo --since 2013-01-01
Az utolsó metaadat lejárati ellenőrzés ennyi ideje volt: 0:25:36, ekkor: 2023. márc. 5., vasárnap, 15:16:37 CET.
Változásnapló-bejegyzések megjelenítése 2023-01-01 00:00:00 óta
Változásnaplók ehhez: sudo-1.9.13-1.p2.fc37.x86_64
* sze márc 01 00:00:00 2023 Radovan Sroka <rsroka@redhat.com> - 1.9.13-1.p2
- Rebase to sudo 1.9.13p2
- sudo-1.9.13p2 is available Resolves: rhbz#2169840
- sudo: double free with per-command chroot sudoers rules Resolves:
CVE-2023-27320

* cs jan 19 00:00:00 2023 Radovan Sroka <rsroka@redhat.com> - 1.9.12-1.p2
- Rebase to sudo 1.9.12p2
- sudo-1.9.12p2 is available Resolves: rhbz#2137775
- sudo: arbitrary file write with privileges of the RunAs user
CVE-2023-22809 Resolves: rhbz#2162042

Adott számú változás megtekintése a naplóból:
dnf changelog --count 3

Például, a sudo csomag utolsó három változása:

$ dnf changelog sudo --count 3
Az utolsó metaadat lejárati ellenőrzés ennyi ideje volt: 0:29:10, ekkor: 2023. márc. 5., vasárnap, 15:16:37 CET.
Csak a legfrissebb 3 változásnapló-bejegyzés megjelenítése
Változásnaplók ehhez: sudo-1.9.13-1.p2.fc37.x86_64
* sze márc 01 00:00:00 2023 Radovan Sroka <rsroka@redhat.com> - 1.9.13-1.p2
- Rebase to sudo 1.9.13p2
- sudo-1.9.13p2 is available Resolves: rhbz#2169840
- sudo: double free with per-command chroot sudoers rules Resolves:
CVE-2023-27320

* cs jan 19 00:00:00 2023 Radovan Sroka <rsroka@redhat.com> - 1.9.12-1.p2
- Rebase to sudo 1.9.12p2
- sudo-1.9.12p2 is available Resolves: rhbz#2137775
- sudo: arbitrary file write with privileges of the RunAs user
CVE-2023-22809 Resolves: rhbz#2162042

* szo júl 23 00:00:00 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.11-4.p3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

8. Keresés, listázás

Keresés a csomagok neveiben:
dnf search <kifejezés> vagy
dnf se <kifejezés>

Keresés a csomagok neveiben, leírásukban és a hozzájuk tartozó URL-ben is:
dnf search all <kifejezés> vagy
dnf se a <kifejezés>

Az összes csomag listázása:
dnf list

Szintén az összes csomag listázása (ugyanaz, mint az előző):
dnf list --all vagy
dnf list all

Adott kifejezésre illeszkedő nevű csomagok listázása:
dnf list <kifejezés>
A <kifejezés> bármilyen érvényes, helyettesítő (joker) karakterekkel ellátot kifejezés (glob) lehet. Például:
dnf list *sudo*

Összes telepített csomag listázása
dnf list --installed vagy
dnf list installed

Az összes frissíthető csomag listázása:
dnf list --updates vagy
dnf list updates

Szintén az összes frissíthető csomag listázása (ugyanaz, mint az előző):
dnf list --upgrades vagy
dnf list upgrades

A legutóbb megváltozott csomagok listázása:
dnf list recent

9. Csomagokkal és csomagcsoportokkal kapcsolatos információk

Egy adott csomaggal kapcsolatos (bő) információk megjelenítése:
dnf info <csomagnév>

Egy hasonló leírást fogunk visszakapni:
$ dnf info sudo
Az utolsó metaadat lejárati ellenőrzés ennyi ideje volt: 0:35:11, ekkor: 2023. márc. 5., vasárnap, 16:29:46 CET.
Telepített csomagok
Név : sudo
Verzió : 1.9.13
Kiadás : 1.p2.fc37
Architektúra : x86_64
Méret : 4.6 M
Forrás : sudo-1.9.13-1.p2.fc37.src.rpm
Tároló : @System
Ezen tárolób : updates
Összegzés : Allows restricted root access for specified users
URL : https://www.sudo.ws
Licenc : ISC
Leírás : Sudo (superuser do) allows a system administrator to give certain
: users (or groups of users) the ability to run some (or all) commands
: as root while logging all commands and arguments. Sudo operates on a
: per-command basis. It is not a replacement for the shell. Features
: include: the ability to restrict what commands a user may run on a
: per-host basis, copious logging of each command (providing a clear
: audit trail of who did what), a configurable timeout of the sudo
: command, and the ability to use the same configuration file (sudoers)
: on many different machines.

Adott csomagcsoporttal kapcsolatos információk:
dnf groupinfo <csoportnév>
Például: $ dnf groupinfo kde-office
Az utolsó metaadat lejárati ellenőrzés ennyi ideje volt: 0:36:28, ekkor: 2023. márc. 5., vasárnap, 16:29:46 CET.
Csoport: KDE Office
Leírás: KDE irodai alkalmazások
Szükséges csomagok:
calligra-sheets
calligra-stage
calligra-words
okular

Összes csoport listázása:
dnf group list

10. Tranzakciótörténet

A DNF nyilvántartja az összes korábban elvégzett műveletet, ez a tranzakciótörténet. A tranzakciótörténet alapján lehetőségünk van valamely korábbi telepítési vagy eltávolítási művelet visszavonására (undo) és korábbi állapotra való visszaállásra (rollback).

Tranzakciótörténet megjelenítése:
dnf history vagy
dnf hist

Tranzakciótörténet szűkítése adott csomagra (csak az adott csomaggal kapcsolatos műveleteket jeleníti meg):
dnf history <csomagnév>

Tranzakció részletes adatainak megjelenítése
dnf history info <azonosító>

Például:
$ dnf history info 68
Tranzakció azonosító: 68
Kezdés ideje : 2023. márc. 4., szombat, 19:24:34 CET
rpmdb kezdete: 960bf87da3ffb4ddba176b230e7c6ec087aeeea33edbc74f58be2a719edff881
Befejezés ideje: 2023. márc. 4., szombat, 19:24:54 CET (20 másodperc)
rpmdb vége : b025cdc21c532e688a80c5b1394853bdc134b236cf19d74866c76ab96a680961
Felhasználó :
Vissz. érték : Siker
Kiadásverzió : 37
Parancssor : install hugo
Megjegyzés :
Módosított csomagok:
Telepítés hugo-0.98.0-5.fc37.x86_64 @fedora
Telepítés libsass-3.6.4-6.fc37.x86_64 @fedora
Telepítés python3-fb-re2-1.0.7-10.fc37.x86_64 @fedora
Telepítés utf8proc-2.7.0-3.fc37.x86_64 @fedora
Telepítés golang-1.19.6-1.fc37.x86_64 @updates
Telepítés golang-bin-1.19.6-1.fc37.x86_64 @updates
Telepítés golang-src-1.19.6-1.fc37.noarch @updates
Telepítés libserf-1.3.9-27.fc37.x86_64 @updates
Telepítés mercurial-6.2.3-2.fc37.x86_64 @updates
Telepítés re2-1:20220601-1.fc37.x86_64 @updates
Telepítés subversion-1.14.2-8.fc37.x86_64 @updates
Telepítés subversion-libs-1.14.2-8.fc37.x86_64 @updates

Tranzakciótörténet adott tartományának megjelenítése:
dnf history list <kezdet>...<veg>

Például:
$ dnf history 65..70
Azonos | Parancssor | Dátum és idő | Művelet(ek) | Változt
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
70 | install ruby-devel | 2023-03-04 19:40 | Install | 12
69 | remove hugo | 2023-03-04 19:40 | Removed | 12 EE
68 | install hugo | 2023-03-04 19:24 | Install | 12
67 | install seahorse | 2023-03-04 18:41 | Install | 1
66 | install docker | 2023-03-04 03:27 | Install | 3 EE
65 | install gnome-tweaks | 2023-03-02 06:32 | Install | 1

Tranzakció visszavonása:
dnf history undo <azonosító>

Például:
dnf undo 70

Használhatjuk a 039;last039; kapcsolót is az utolsó tranzakció visszavonására, illetve használhatjuk a 039;last-<n>039; formában is, ahol x egy szám, így a "hátulról" számított n-edik tranzakció kerül visszavonásra.

Tranzakció ismétlése:
dnf history redo <azonosító>

Például:
dnf redo 70

Használhatjuk a 039;last039; kapcsolót is az utolsó tranzakció ismétlésére, illetve használhatjuk a 039;last-<x>039; formában is, ahol x egy szám, így a "hátulról" számított x-e
dik tranzakció kerül ismétlésre.

A felhasználó által telepített összes csomag megjelenítése:
dnf history userinstalled

Az összes tranzakció visszavonása egy adott tranzakcióig:
dnf history rollback <azonosító>
Ha esetleg az RPMDB sérülése miatt nem lehetséges egy vagy több tranzakciót visszavonni, akkor ez a parancs nem csinál semmit.

11. Repozitóriumok (tárolók) kezelése

Az engedélyezett tárolók listázása:
dnf repolist

Részletes adatok az engedélyezett tárolókról:
dnf repolist -v

Az összes (engedélyezett és letiltott) tárolók listázása:
dnf repolist all

Egy adott tárolóhoz tartozó összes csomag megjelenítése:
dnf repository-packages <tárolónév> list

Például:
$ dnf repository-packages rpmfusion-free list
Az utolsó metaadat lejárati ellenőrzés ennyi ideje volt: 0:47:27, ekkor: 2023. márc. 5., vasárnap, 16:29:46 CET.
Elérhető csomagok
BasiliskII.x86_64 1.0-0.20171001.7.fc37.10 rpmfusion-free
HandBrake.x86_64 1.5.1-4.fc37 rpmfusion-free
HandBrake-gui.x86_64 1.5.1-4.fc37 rpmfusion-free
Nestopia.x86_64 1.51.1-3.fc37 rpmfusion-free
ProjectX.x86_64 0.91.0-21.fc37 rpmfusion-free
SheepShaver.x86_64 2.4-0.17.20171001.fc37 rpmfusion-free
VirtualBox.x86_64 6.1.40-1.fc37 rpmfusion-free
...

Egy adott tárolóhoz tartozó összes csomag részleteinek megjelenítése:
dnf repository-packages <tárolónév> info

Például:
$ dnf repository-packages rpmfusion-free info
Az utolsó metaadat lejárati ellenőrzés ennyi ideje volt: 0:45:49, ekkor: 2023. márc. 5., vasárnap, 16:29:46 CET.
Elérhető csomagok
Név : BasiliskII
Verzió : 1.0
Kiadás : 0.20171001.7.fc37.10
Architektúra : x86_64
Méret : 544 k
Forrás : BasiliskII-1.0-0.20171001.7.fc37.10.src.rpm
Tároló : rpmfusion-free
Összegzés : 68k Macintosh emulator
URL : http://basilisk.cebix.net/
Licenc : GPLv2+
Leírás : Basilisk II is an Open Source 68k Macintosh emulator. That is, it enables
: you to run 68k MacOS software on you computer, even if you are using a
: different operating system. However, you still need a copy of MacOS and
: a Macintosh ROM image to use Basilisk II.

Név : HandBrake
Verzió : 1.5.1
Kiadás : 4.fc37
Architektúra : x86_64
Méret : 439 k
Forrás : HandBrake-1.5.1-4.fc37.src.rpm
Tároló : rpmfusion-free
Összegzés : An open-source multiplatform video transcoder
URL : http://handbrake.fr/
Licenc : GPLv2+
Leírás : HandBrake is a general-purpose, free, open-source, cross-platform, multithreaded
: video transcoder software application. It can process most common multimedia
: files and any DVD or Bluray sources that do not contain any kind of copy
: protection.
:
: This package contains the command line version of the program.

Név : HandBrake-gui
Verzió : 1.5.1
Kiadás : 4.fc37
Architektúra : x86_64
Méret : 3.5 M
Forrás : HandBrake-1.5.1-4.fc37.src.rpm
Tároló : rpmfusion-free
Összegzés : An open-source multiplatform video transcoder (GUI)
URL : http://handbrake.fr/
Licenc : GPLv2+
Leírás : HandBrake is a general-purpose, free, open-source, cross-platform, multithreaded
: video transcoder software application. It can process most common multimedia
: files and any DVD or Bluray sources that do not contain any kind of copy
: protection.
:
: This package contains the main program with a graphical interface.
...

Egy adott tárolóhoz tartozó csomagok frissítéseinek ellenőrzése:
dnf repository-packages <tárolónév> check-update

Egy adott tárolóhoz tartozó csomagok frissítése:
dnf repository-packages <tárolónév> upgrade

Egy adott csomag által biztosított fájlok listájának megtekintése:
dnf repoquery -l <csomagnév>
Például:
$ dnf repoquery -l sudo
Az utolsó metaadat lejárati ellenőrzés ennyi ideje volt: 0:49:17, ekkor: 2023. márc. 5., vasárnap, 16:29:46 CET.
/etc/dnf/protected.d/sudo.conf
/etc/pam.d/sudo
/etc/pam.d/sudo-i
/etc/sudo.conf
/etc/sudoers
/etc/sudoers.d
/usr/bin/cvtsudoers
...

Egy adott csomag függőségeinek megtekintése:
dnf repoquery --deplist <csomagnév> vagy
dnf deplist <csomagnév> (elavult változat)

Ez a parancs nem csak a csomag által igényelt csomagok neveit, de az igényelt fájlt nevét is megmutatja.
Például:
$ dnf repoquery --deplist sudo
Az utolsó metaadat lejárati ellenőrzés ennyi ideje volt: 0:51:01, ekkor: 2023. márc. 5., vasárnap, 16:29:46 CET.
package: sudo-1.9.11-4.p3.fc37.x86_64
dependency: libaudit.so.1()(64bit)
provider: audit-libs-3.1-2.fc37.x86_64
dependency: libc.so.6(GLIBC_2.34)(64bit)
provider: glibc-2.36-9.fc37.x86_64
dependency: libcrypto.so.3()(64bit)
provider: openssl-libs-1:3.0.8-1.fc37.x86_64
...

Azon csomag megkeresése, ami egy adott képességet (programot) biztosít:
dnf provides <név>

Például:
$ dnf provides vim
Az utolsó metaadat lejárati ellenőrzés ennyi ideje volt: 0:51:01, ekkor: 2023. márc. 5., vasárnap, 16:29:46 CET.
vim-enhanced-2:9.0.475-1.fc37.x86_64 : A version of the VIM editor which includes recent enhancements
Tároló : fedora
Találat a következőtől:
Biztosítja: vim

vim-enhanced-2:9.0.1367-1.fc37.x86_64 : A version of the VIM editor which includes recent enhancements
Tároló : updates
Találat a következőtől:
Biztosítja: vim

Egy adott csomag által biztosított függőségek (képességek) megtekintése:
dnf repoquery --provides <csomagnév> vagy

Azon képességek (függőségek) megjelenítése, amelyektől a csomag függ:
dnf repoquery --requires <csomagnév>

Egy adott csomag által biztosított képességekhez tartozó függőségfa megtekintése:
dnf repoquery --provides --tree <csomagnév>

Azon képességek függőségfájának megjelenítése, amelyektől a csomag függ:
dnf repoquery --requires --tree <csomagnév>

Azon csomagok megjelenítése, amelyek ütköznek a csomaggal:
dnf repoquery --whatconflicts <csomagnév>

Tároló hozzáadása:
dnf config-manager --add-repo <url>
Az <url> egy link egy .repo fájlra.

Tároló engedélyezése:
dnf config-manager --set-enabled <tároló>

Tároló letiltása:
dnf config-manager --set-disabled <tároló>

12. Takarítás

A tárolók metaadataiból generált gyorsítótári fájlok törlése:
dnf clean dbcache

A tárolók helyi gyorsítótárában lévő sütik törlése (lejártként való megjelölése). A DNF újra le fogja tölteni a tárolók adatait a következő használatkor:
dnf clean expire-cache

A tárolók metaadatainak eltávolítása. Ezek azok a fájlok, amik alapján a DNF meghatározza a csomagok elérhetőségét. A DNF újra le fogja tölteni a csomagadatokat a következő használatkor:
dnf clean metadata

A gyorsítótárban lévő összes csomag eltávolítása:
dnf clean packages

Az összes enegedélyezett plugin gyorsítótárának ürítése:
dnf clean plugins

Az összes fenti művelet elvégzése:
dnf clean all

13. A DNF fontosabb beállításai

A DNF beállításait alapértelmezés szerint az /etc/dnf/dnf.conf fájlban találjuk meg, míg a tárolók adatait (*.repo fájlok) jellemzően az /etc/yum.repos.d mappa tartalmazza, mely magasabb priorítást élvez a dnf.conf-ban definiált tárolóadatokkal szemben. A dnc.conf INI szerkezetű, a beállításokat egyszerű név=érték párokból álló kulcsok tartalmazzák.
A fájlban két fő szekció lehet, a [main] és a [repository]. A [main] szekció definiálja az összes globális beállítást, míg a [repository] szekció tárolja az összes (helyi és távoli) tároló adatát (bár ez a szekció jellemzően nem is létezik, az /etc/yum.repos.d mappában tárolt adatok helyettesítik).

A [main] szekció néhány fontosabb beállítása:
- arch: a csomagok telepítéséhez használt architektúra. Értéke egy string lehet (), alapértelmezett értéke auto-detect. Gyakran együtt használatos az 039;ignorearch039; opcióval.
- assumeno: ahol lehetséges, a dnf kérdés esetén (pl. tranzakcióműveleteknél) automatikusan a nem lehetőséget választja. Értéke true vagy false lehet, alapértelmezett értéke false.
- assumeyes: ahol lehetséges, a dnf kérdés esetén (pl. tranzakcióműveleteknél) automatiksaun az igen lehetőséget választja. Értéke true vagy false lehet, alapértelmezett értéke false.
- best: kényszeríti a solvert (fűggőségfeloldót), hogy az elérhető legmagasabb verziószámú csomagot telepítse. False esetén nem jelez hibát, ha nem érhető el a legújabb verzió, ehelyett egy régebbi verziót telepít. Értéke true vagy false lehet, alapértelmezett értéke false. Csak a közvetleneül kért csomagokra vonatkozik, a függőségekre nem!
- clean_requirements_on_remove: Meghatározza, hogy a dnf eltávolítsa-e a nem használt függőségeket csomag eltávolításánál. Értéke true vagy false lehet, alapértelmezett értéke true.
- defaultyes: Meghatározza, hogy csaomagműveletek megerősítésénél az alapértelmezetten felajánlott művelet az 039;igen039; legyen. Nem összekeverendő az 039;assumeyes039; opció, ami nem ajánl fel választási lehetőséget, automatikusan az igent választja! Értéke true vagy false lehet, alapértelmezett értéke false.
- ignorearch: ha értéke true, az RPM lehetővé teszi a CPU architektúrájával inkompatibilis csomagok telepítését. Értéke true vagy false lehet, alapértelmezett értéke false.
- keepcache: tartsa-e a gyorsítótárban a letöltött csomagokat. Ha értéke false, akkor is gyorsítótárazza a csomagokat a követkető sikeres tranzakcióig. Értéke true vagy false lehet, alapértelmezett értéke false.
- color: meghatározza, hogy a dnf használjon-e a színeket a kimenet megjelenítésekor. Értéke lehet "auto", "never" vagy "always", alapértelmezett értéke "auto".
- fastestmirror: ha engedélyezve van, egy mérőszám alapján megpróbálja meghatározni a leggyorsabb tükröt. Ping alapján mér, nem sávszélesség alapján, így használata nem feltétlenül okoz érzékelhető gyorsulást. Az opció által meghatározott értéke felülírja a tárolók sorrendjét. Értéke true vagy false lehet, alapértelmezett értéke false.
- max_parallel_downloads: meghatározza a párhuzamosan letölthető csomagok számát. Értéke egy egész szám (legfeljebb 20) lehet, alapértelmezett értéke 3.
- metadata_expire: meghatározza a metaadak újraellenőrzésének időtartamát másodpercben. Alapértelmezett értéke 48 órának megfelelő másodperc. Ha -1-re állítjuk, a metaadatok lejárta nem lesz ellenőrizve.
- minrate: az a minimum sebesség, ami alatt a dnf megszakítja a letöltést az adott kiszolgálóról. Értéke bájt/másodpercben van kifejezve, érvényes mértékegységek "k", "M", "G", alapértelmezett értéke 1000.

A dnf gyorsítótára a /var/cache/dnf mappa. A telepített pluginok beállításai a /etc/dnf/plugins mappában találhatók.

14. Frissítések automatikus telepítése

A frissítések automatikus telepítéséhez a dnf-automatic csomag kell telepítenünk:
dnf install dnf-automatic

A dnf-automatic beállításához használd a dokumentációt: https://dnf.readthedocs.io/en/latest/automatic.html

-------------

Utolsó módosítás: 2023. 03. 11.

Hozzászólások

(#1) Honkydoo


Honkydoo
őstag

Szépen összeszedted! :R

A TOR hálózaton keresztüli letöltés mit takar?

"Légy olyan, mint bárki más, tégy olyat, mint senki más."

(#2) urandom0 válasza Honkydoo (#1) üzenetére


urandom0
aktív tag

A TOR hálózaton keresztüli letöltés mit takar?

Az összes forgalmat, tehát a metaadatok letöltését és a csomagok letöltését is TOR proxyn keresztül végzi, ennyi. Ha a strict paraméter be van állítva, akkor a TOR hálózat elérhetetlensége esetén leállítja a letöltést, tehát akkor sem fog kimenni a clear webre.
Alapból ugye a TOR a 9050-es portot használja, ennek nyitva kell lennie.

DNF torproxy plugin

(#3) Honkydoo válasza urandom0 (#2) üzenetére


Honkydoo
őstag

Köszönöm a válaszod! :R

"Légy olyan, mint bárki más, tégy olyat, mint senki más."

(#4) Rowon


Rowon
veterán

Szép és tartalmas bejegyzés, részemről köszönöm! :R Most ismerkedem Fedorával, a csomagkezeléshez nagyszerű kiindulópont lesz ez a bejegyzés.

Az emberiség két legnagyobb találmánya az írás és a mikrohullámú sütő.

További hozzászólások megtekintése...
Copyright © 2000-2024 PROHARDVER Informatikai Kft.