Linux · Tag 3 · Kapitel 04 von 6

Paketverwaltung mit dnf

Software-Installation auf Linux funktioniert anders als auf Windows — kein „Setup.exe herunterladen", sondern dnf install paketname. Heute lernst du die Welt von RPM-Paketen, Repositories und die vier dnf-Befehle, die du 90 % der Zeit brauchst.

📚 Kapitel 04 ⏱️ ca. 15 min Theorie + 30 min Lab 🧪 Lab 3.4
Inhalt dieses Kapitels
4.1

Pakete, Repositories & dnf

Grundlage

Auf Windows lädst du setup.exe herunter, klickst dich durch den Installer und hoffst, dass es funktioniert. Auf Linux machst du dnf install nano — und Linux holt sich das Programm aus einem zentralen, signierten Repository.

Drei Begriffe, die du brauchst

REPOSITORY (Repo) ┌─────────────────────────────────────────────┐ │ Server im Internet mit Tausenden Paketen │ │ z.B. mirror.rockylinux.org/baseos/ │ └─────────────────────────────────────────────┘ │ enthält ▼ PAKET (.rpm-Datei) ┌─────────────────────────────────────────────┐ │ nano-5.6.1-5.el9.x86_64.rpm │ │ • der Programm-Code │ │ • Manpage, Konfig-Dateien │ │ • Liste der Abhängigkeiten │ └─────────────────────────────────────────────┘ │ wird installiert von ▼ dnf (Paketmanager) ┌─────────────────────────────────────────────┐ │ • lädt das Paket aus dem Repo │ │ • prüft Signatur │ │ • löst Abhängigkeiten auf │ │ • installiert + registriert │ └─────────────────────────────────────────────┘
📌
Die RPM-Familie

RPM = Red Hat Package Manager. Das ist das Paketformat (.rpm-Dateien). dnf ist das Werkzeug, das mit RPM-Paketen umgeht — installiert, aktualisiert, löst Abhängigkeiten auf. Auf Rocky, RHEL, Fedora, Alma → überall dnf. Auf Debian/Ubuntu wäre das Pendant apt.

▶ Was ist mit yum?

yum war der Vorgänger von dnf. In Rocky 9 ist yum nur noch ein Symlink auf dnf — du kannst yum install nano tippen, es funktioniert, aber intern ruft es dnf auf. Neue Skripte und Dokumentation sollten dnf verwenden. Wenn du irgendwo alte Anleitungen mit yum siehst — funktioniert 1:1, einfach dnf statt yum tippen.

Wo lebt was?

PfadInhalt
/etc/yum.repos.d/Repository-Definitionen (.repo-Dateien)
/var/cache/dnf/Cache der heruntergeladenen Pakete und Metadaten
/var/log/dnf.logLog aller dnf-Aktionen
/var/log/dnf.rpm.logLog aller Installationen/Updates
4.2

Die drei dnf-Pflicht-Befehle — install, remove, update

Pflicht

Du musst nicht alle 50 dnf-Optionen kennen. Diese drei reichen für den Großteil des Admin-Alltags:

▶ Bonus (optional) – dnf search & dnf info (Repos durchsuchen)

dnf search — was gibt's überhaupt?

bash
# Pakete mit "nmap" im Namen oder der Beschreibung
dnf search nmap

# Detaillierte Info zu einem Paket
dnf info nmap

1 · dnf install — installieren

bash
# Ein Paket installieren (sudo wegen Schreibrechten in /usr/)
sudo dnf install nmap

# Mehrere auf einmal
sudo dnf install nmap tree nano

# Ohne Rückfrage (Achtung: keine Sicherheitsabfrage!)
sudo dnf install -y nmap

2 · dnf update — aktualisieren

bash
# Schauen, welche Updates es gäbe (nichts installieren)
dnf check-update

# Alle Pakete aktualisieren
sudo dnf update

# Nur ein bestimmtes Paket aktualisieren
sudo dnf update nmap

# Alias: dnf upgrade macht das Gleiche
sudo dnf upgrade
🧠
update vs. upgrade bei dnf

Bei dnf sind beide identisch — beide installieren neuere Versionen. (Bei Debian/Ubuntu mit apt ist es anders: dort macht apt update nur die Paketliste, apt upgrade installiert. Verwirrend, aber wir sind bei Rocky → dnf update = dnf upgrade.)

3 · dnf remove — entfernen

bash
# Paket entfernen
sudo dnf remove nmap

# Mehrere
sudo dnf remove nmap tree

# Verwaiste Abhängigkeiten aufräumen
sudo dnf autoremove
🛡️
Die Wichtigen auf einen Blick
BefehlWirkung
dnf search PAKETnach Paketen suchen
dnf info PAKETInfos zum Paket
sudo dnf install PAKETinstallieren
sudo dnf remove PAKETentfernen
sudo dnf updatealle Updates
sudo dnf upgradeidentisch zu update
dnf check-updatewelche Updates gäbe es?
dnf list installedinstallierte Pakete
4.3

rpm — die Low-Level-Ebene

Übersicht Bonus

Unter dnf arbeitet rpm — das eigentliche Paket-Werkzeug. Du brauchst es selten direkt, aber es ist gut, die wichtigsten rpm-Befehle zu kennen — vor allem, wenn du ein lokales .rpm-File hast, das nicht aus einem Repo kommt.

▶ Bonus (optional) – RPM-Grundbefehle (selten direkt nötig)
BefehlWirkung
rpm -qaliste alle installierten Pakete
rpm -qi PAKETprüft, ob ein Paket installiert ist, zeigt Infos
rpm -qpi datei.rpmInfos zu einer paket-Datei (nicht installiert)
rpm -qpl datei.rpmwas würde dieses Paket installieren? (liste)
rpm -ivh datei.rpmlokales Paket installieren (install verbose hash)
rpm -K datei.rpmSignatur prüfen

Faustregel: wenn das Paket aus einem Repo kommt → dnf. Wenn du ein einzelnes .rpm-File hast (z.B. heruntergeladen von einer Hersteller-Seite) → rpm -ivh oder auch dnf install ./datei.rpm (kann dnf auch).

🧪

Lab 3.4 — Werkzeugkasten selbst installieren

Selbstständig · 30 min
📧
Mail von Markus Becker

Betreff: Mach dir deinen Werkzeugkasten

Hi Tim,

auf der Minimal-Installation fehlt einiges, was Admins täglich brauchen. Statt dir eine Einkaufsliste zu geben, beschreibe ich dir die Aufgaben, für die du Tools brauchst — und du suchst dir selbst die passenden Pakete:

  • Du willst Prozesse besser beobachten als mit dem eingebauten top — mit Farben, Mauszeiger, F-Tasten.
  • Du brauchst eine Möglichkeit, Verzeichnis-Strukturen als Baum zu visualisieren — gut für Dokumentation und schnelle Übersicht.
  • Du willst Dateien aus dem Web ziehen können (Klassiker, wirst du in vielen Anleitungen sehen).
  • Prüf außerdem kurz, ob nano schon installiert ist — als Fallback-Editor sollte er da sein.

Lern dabei dnf kennen. Such selbst mit dnf search, was passt. Du wirst dnf ab nächster Woche ständig brauchen.

— Markus

Phase 1 — Was habe ich, was suche ich? (10 min)
Bonus (optional)

Dieser Teil ist Bonus — bearbeite ihn, wenn du mit den Pflichtteilen fertig bist.

🎯
Deine Aufgabe

„Du weißt noch nicht, welche Tools dir Markus eigentlich meint. Such selbst — bevor du blind installierst."

Verschaff dir Überblick: Was ist installiert? Dann finde mit dnf search und dnf info die Pakete für Markus' drei Aufgaben. Notiere dir die Paketnamen — installieren kommt in Phase 2.

💡 Hint 1 — Wie sehe ich, was schon installiert ist?

rpm -qa listet alle installierten Pakete. Mit | wc -l zählst du sie. Mit rpm -qi PAKETNAME prüfst du gezielt ein einzelnes Paket.

💡 Hint 2 — Wie suche ich nach Paketen?

dnf search STICHWORT. Beispiel: dnf search process findet alle Pakete, die im Namen oder in der Beschreibung „process" enthalten. dnf info PAKETNAME zeigt dir Details.

💡 Hint 3 — Welche Pakete passen zu Markus' drei Aufgaben?

Stichworte, die helfen: für Prozesse → such nach „interactive process viewer"; für Verzeichnis-Baum → der Paketname ist sehr kurz und sagt es direkt; für Web-Download → ebenfalls sehr klassischer kurzer Name.

bash
# 1) Was ist installiert?
rpm -qa | wc -l
# → meist 400–600 bei Minimal-Install

# 2) Nano-Status prüfen
rpm -qi nano
# Wenn installiert: zeigt Version, Größe, Beschreibung
# Wenn nicht: "package nano is not installed"

# 3) Suchen nach passenden Tools
dnf search "network scanner"
# → nmap.x86_64 : Network exploration tool and security scanner
dnf search tree
# → tree.x86_64 : File system tree viewer
dnf search wget
# → wget.x86_64 : A utility for retrieving files using HTTP, HTTPS, and FTP

# 4) Details ansehen, bevor du installierst
dnf info nmap
# Zeigt: Version, Architektur, Größe (Download + installiert),
#        Repository, Beschreibung

Erklärung: dnf search durchsucht Paketnamen UND -beschreibungen — deshalb findet er auch Pakete, deren Name nicht das Stichwort enthält.

Phase 2 — Installieren und ausprobieren (12 min)
🎯
Deine Aufgabe

„Markus erwartet, dass du nicht blind klickst. Jeder erfahrene Admin liest, was bei einem install mitkommt — bevor er bestätigt."

Installier die in Phase 1 gefundenen Tools. Vor dem Bestätigen mit y die Abhängigkeitsliste lesen — du musst dich daran gewöhnen, was du dem System hinzufügst. Dann probiere die Tools aus.

💡 Hint 1 — Wie installiere ich ein Paket?

sudo dnf install PAKETNAME. Achtung: ohne sudo geht's nicht (Schreibrechte in /usr). Mehrere Pakete in einem Befehl: sudo dnf install p1 p2 p3.

💡 Hint 2 — Soll ich -y benutzen?

Lieber nicht beim ersten Mal — du sollst die Abhängigkeiten sehen. -y ist für Skripte/Automatisierung, nicht für interaktives Lernen.

💡 Hint 3 — Wie sehe ich nmap und tree in Aktion?

Nach Installation: nmap --version starten, oder nmap localhost ausführen, um einen kurzen Scan zu testen. tree -L 2 /etc/ zeigt die ersten zwei Verzeichnis-Ebenen — beeindruckend! Für wget: einfach wget --version.

bash
# 1) Installieren (mehrere in einem Befehl)
sudo dnf install nmap tree wget
# Lies die Liste der Abhängigkeiten!
# Bestätige mit y

# Falls nano noch fehlt, jetzt nachinstallieren
sudo dnf install nano

# 2) nmap ausprobieren — vergleiche mit den anderen Werkzeugen
nmap --version
# Zeigt die installierte Version und bestätigt, dass das Tool da ist

# 3) tree mit /etc/-Beispiel (beeindruckender als ~)
tree -L 2 /etc/
# Zeigt erste zwei Ebenen unter /etc

# 4) wget testen
wget --version
# Zeigt installierte Version

Erklärung: nmap ist ein klassischer Netzwerkscanner für Service-Discovery und Host-Erkennung. nmap --version zeigt dir, dass das Tool installiert ist. Der Trick tree -L 2 zeigt nur die obersten zwei Ebenen — bei /etc/ schon eindrucksvoll.

Phase 3 — Verwalten: Updates und Entfernen (8 min)
🎯
Deine Aufgabe

„Ab Montag wirst du das wöchentlich machen: schauen, was es an Updates gibt, gezielt einspielen, gelegentlich aufräumen."

Jetzt das Pflicht-Repertoire jedes Admins: Prüfen, welche Updates verfügbar sind. Ein Paket gezielt aktualisieren. Ein Paket entfernen und wieder installieren.

💡 Hint 1 — Wie sehe ich, welche Updates verfügbar wären?

dnf check-update — listet auf, was sich aktualisieren ließe, ohne etwas zu installieren. Read-only, völlig harmlos.

💡 Hint 2 — Wie aktualisiere ich nur ein bestimmtes Paket?

sudo dnf update PAKETNAME aktualisiert nur dieses eine, ohne System-weites Update.

💡 Hint 3 — Wie entferne ich ein Paket sauber?

sudo dnf remove PAKETNAME. dnf prüft Abhängigkeiten und warnt, falls andere Pakete darauf angewiesen wären. (Nicht rpm -e — das ignoriert Abhängigkeiten!)

bash
# 1) Was wäre verfügbar?
dnf check-update
# Listet alle Pakete mit verfügbarem Update.
# Gibt Exit-Code 100 zurück, wenn Updates da sind, 0 wenn nicht.

# 2) Gezielt ein Paket aktualisieren (kein System-Update!)
sudo dnf update tree
# Nur tree, nichts anderes
# (Falls "Nothing to do" — schon aktuell, normal)

# 3) Entfernen und wieder installieren
sudo dnf remove tree
# y bestätigen

# Prüfen: wirklich weg?
rpm -qi tree
# → "package tree is not installed"

# Wieder installieren, diesmal mit -y (zum Üben)
sudo dnf install -y tree
# Läuft durch ohne Rückfrage

Erklärung: dnf check-update ist deine erste Aktion vor jedem Update-Tag — du siehst sofort, was kommen würde. Im echten Produktivbetrieb macht man danach sudo dnf update für alles auf einmal, idealerweise in einem Wartungsfenster.

⚠️
Im Lab bewusst weggelassen: Volles System-Update

Wir haben hier nicht sudo dnf update ohne Paketnamen ausgeführt — das würde alle Pakete des Systems aktualisieren. In Rocky 9 sind das oft hunderte MB Download und 5–15 Minuten Zeit. Auf einem Produktivserver macht man das nur in Wartungsfenstern. Im Lab sparen wir uns das, damit du die anderen Aufgaben in Ruhe fertig bekommst.

🌟 Bonus für schnelle Teilnehmer
📌

Bonus: erkunde die History und die Gruppen.

  1. History: dnf history zeigt alle dnf-Transaktionen. Schau dir die letzte Transaktion genauer an mit dnf history info last.
  2. Gruppen: Liste Paket-Gruppen mit dnf group list. Was zeigt das?
  3. Repo-Info: Welche Repos sind aktiviert? dnf repolist.
  4. Welches Paket bringt einen Befehl mit? dnf provides /usr/bin/nmap — sagt dir, aus welchem Paket eine Datei kommt. Sehr nützlich!
bash
# 16) History
dnf history
dnf history info last
# Zeigt: was installiert/entfernt wurde, wann, von wem

# 17) Gruppen
dnf group list
# z.B. "Server with GUI" (damit kannst du eine grafische Oberfläche
# nachinstallieren, falls du sie brauchst),
# "Development Tools", "Minimal Install"

# 18) Repo-Liste
dnf repolist
# Meist: baseos, appstream, extras

# 19) Welches Paket liefert einen Befehl?
dnf provides /usr/bin/nmap
# → nmap.x86_64 oder nmap selbst
🎉
Lab 3.4 geschafft?

Top! Du kannst jetzt eigenständig Software installieren, aktualisieren und entfernen. Das ist der zentrale Selbstständigkeits-Punkt — ab jetzt musst du nicht mehr fragen „wie installiere ich X?". Du machst dnf search X und dann sudo dnf install X. Fertig.

4.4

Typische Anfänger-Fehler

Vorsicht
Fehler 1 — dnf install ohne sudo

Installieren braucht Schreibrechte in /usr/ — die hat nur root. Ohne sudo bekommst du „Permission denied" oder „Operation not permitted". Suchen und Infos (search, info, list) geht ohne sudo — Schreiben (install, remove, update) braucht sudo.

Fehler 2 — Wild dnf install -y ALLES

Die -y-Option ist praktisch für Skripte, aber gefährlich im interaktiven Gebrauch. Du siehst die Liste der Abhängigkeiten nicht mehr und bestätigst alles blind. Erst lesen, dann bestätigen. Manche Pakete ziehen 100 MB Abhängigkeiten nach — gut zu wissen, BEVOR es passiert.

Fehler 3 — Mit rpm -e entfernen

rpm -e (erase) löscht ein Paket, ohne Abhängigkeiten zu prüfen. Wenn andere Pakete davon abhängen, kann das System kaputtgehen. Immer dnf remove nehmen — das prüft Abhängigkeiten und warnt.

Fehler 4 — Mehrere dnf-Prozesse gleichzeitig

dnf nutzt einen Lock — du kannst nicht zwei dnf install gleichzeitig laufen lassen. Fehlermeldung „Another app is currently holding the yum lock". Lösung: warten, bis der erste fertig ist, oder mit ps aux | grep dnf schauen, welcher hängt.

🎯

Kontrollfragen zum Kapitel

Selbst-Check
  1. Du willst wissen, ob ein bestimmtes Paket installiert ist. Welcher Befehl?
  2. Was ist der Unterschied zwischen dnf check-update und dnf update?
  3. Du hast ein lokales .rpm-File heruntergeladen. Wie installierst du es — und was ist sicherer: rpm -ivh oder dnf install ./datei.rpm?
  4. Warum braucht dnf install ein sudo, dnf search aber nicht?
  5. Du willst sehen, welche Repositories deinem System verfügbar sind. Welcher Befehl?
  6. Was ist der Unterschied zwischen dnf remove und rpm -e?
  1. rpm -qi PAKETNAME — zeigt Infos, falls installiert, sonst „package … is not installed".
  2. dnf check-update zeigt nur, welche Updates verfügbar wären (read-only, ändert nichts). dnf update installiert sie tatsächlich (braucht sudo).
  3. Mit sudo dnf install ./datei.rpm — das ist sicherer als rpm -ivh, weil dnf die Abhängigkeiten auflöst und fehlende Pakete aus den Repos nachzieht. rpm -ivh installiert nur die eine Datei und scheitert (oder lässt das System inkonsistent), wenn Abhängigkeiten fehlen.
  4. Suchen ändert nichts am System (nur Lese-Zugriff auf Metadaten). Installieren schreibt in /usr/ — dafür braucht es Root-Rechte (sudo).
  5. dnf repolist — zeigt die aktivierten Repositories (meist baseos, appstream, extras).
  6. dnf remove prüft Abhängigkeiten und warnt, wenn andere Pakete davon abhängen. rpm -e löscht ohne Prüfung — kann das System beschädigen.