<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Rpm%2Fdnf_mit_Rocky</id>
	<title>Rpm/dnf mit Rocky - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Rpm%2Fdnf_mit_Rocky"/>
	<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Rpm/dnf_mit_Rocky&amp;action=history"/>
	<updated>2026-07-10T09:01:44Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Xinux Wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.ixheim.de/index.php?title=Rpm/dnf_mit_Rocky&amp;diff=71776&amp;oldid=prev</id>
		<title>Thomas.will: /* Direkte Installation per rpm */</title>
		<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Rpm/dnf_mit_Rocky&amp;diff=71776&amp;oldid=prev"/>
		<updated>2026-07-06T15:21:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Direkte Installation per rpm&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 6. Juli 2026, 15:21 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l270&quot; &gt;Zeile 270:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 270:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Direkte Installation per rpm ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Direkte Installation per rpm ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Im Normalfall wird dnf für Installationen verwendet – rpm direkt dann wenn eine einzelne .rpm-Datei vorliegt&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Im Normalfall wird dnf für Installationen verwendet – rpm direkt dann wenn eine einzelne .rpm-Datei vorliegt&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;;Zuerst ein Paket als Beispiel herunterladen (siehe Abschnitt &amp;quot;Pakete herunterladen ohne zu installieren&amp;quot;)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* dnf download mc&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Paket installieren&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Paket installieren&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* rpm -ivh &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;paket&lt;/del&gt;.rpm&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* rpm -ivh &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;mc-*&lt;/ins&gt;.rpm&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Installation testen ohne wirklich zu installieren&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Installation testen ohne wirklich zu installieren&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* rpm -i --test &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;paket&lt;/del&gt;.rpm&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* rpm -i --test &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;mc-*&lt;/ins&gt;.rpm&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Bereits installiertes Paket erneut installieren – Konfigurationen bleiben erhalten&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Bereits installiertes Paket erneut installieren – Konfigurationen bleiben erhalten&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* rpm -i --replacepkgs &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;paket&lt;/del&gt;.rpm&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* rpm -i --replacepkgs &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;mc-*&lt;/ins&gt;.rpm&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Installation ohne Abhängigkeitsprüfung – nur im Notfall&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Installation ohne Abhängigkeitsprüfung – nur im Notfall&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* rpm -i --nodeps &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;paket&lt;/del&gt;.rpm&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* rpm -i --nodeps &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;mc-*&lt;/ins&gt;.rpm&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Kombination aus replacepkgs und replacefiles&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Kombination aus replacepkgs und replacefiles&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* rpm -i --force &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;paket&lt;/del&gt;.rpm&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* rpm -i --force &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;mc-*&lt;/ins&gt;.rpm&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Erklärung der Optionen:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Erklärung der Optionen:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff::1.12:old-71775:rev-71776 --&gt;
&lt;/table&gt;</summary>
		<author><name>Thomas.will</name></author>
	</entry>
	<entry>
		<id>https://wiki.ixheim.de/index.php?title=Rpm/dnf_mit_Rocky&amp;diff=71775&amp;oldid=prev</id>
		<title>Thomas.will: Die Seite wurde neu angelegt: „= Softwareverwaltung unter Rocky Linux =  Unter Rocky Linux basiert die Softwareverwaltung auf zwei Werkzeugen die zusammenspielen: rpm und dnf.  ;rpm (Red Hat…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Rpm/dnf_mit_Rocky&amp;diff=71775&amp;oldid=prev"/>
		<updated>2026-07-06T15:18:32Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „= Softwareverwaltung unter Rocky Linux =  Unter Rocky Linux basiert die Softwareverwaltung auf zwei Werkzeugen die zusammenspielen: rpm und dnf.  ;rpm (Red Hat…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Softwareverwaltung unter Rocky Linux =&lt;br /&gt;
&lt;br /&gt;
Unter Rocky Linux basiert die Softwareverwaltung auf zwei Werkzeugen die zusammenspielen: rpm und dnf.&lt;br /&gt;
&lt;br /&gt;
;rpm (Red Hat Package Manager): Das Backend – verwaltet einzelne Pakete, löst aber keine Abhängigkeiten automatisch auf. Jedes installierte Paket ist in der rpm-Datenbank registriert. RPM kennt genau welche Dateien zu welchem Paket gehören, welche Abhängigkeiten bestehen und ob Dateien seit der Installation verändert wurden.&lt;br /&gt;
;dnf (Dandified YUM): Das Frontend – baut auf rpm auf, löst Abhängigkeiten automatisch auf, lädt Pakete aus Repositories und ist der Standard-Paketmanager unter Rocky Linux. dnf hat yum abgelöst.&lt;br /&gt;
&lt;br /&gt;
;Im Alltag wird dnf verwendet – rpm kommt zum Einsatz wenn man tiefer in ein Paket schauen, eine einzelne .rpm-Datei installieren oder die Integrität des Systems prüfen will.&lt;br /&gt;
&lt;br /&gt;
= Repositories =&lt;br /&gt;
&lt;br /&gt;
;Ein Repository ist eine Paketquelle – eine Sammlung von RPM-Paketen auf einem Server. dnf weiß welche Repos aktiv sind und lädt Pakete von dort herunter.&lt;br /&gt;
&lt;br /&gt;
== Konfigurationsdateien ==&lt;br /&gt;
;Jedes Repository hat eine eigene .repo-Datei unter /etc/yum.repos.d/&lt;br /&gt;
* ls /etc/yum.repos.d/&lt;br /&gt;
 rocky.repo  rocky-addons.repo  rocky-extras.repo  rocky-devel.repo&lt;br /&gt;
&lt;br /&gt;
;Aufbau einer .repo-Datei:&lt;br /&gt;
* cat /etc/yum.repos.d/rocky.repo&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[baseos]&lt;br /&gt;
name=Rocky Linux $releasever - BaseOS&lt;br /&gt;
mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&amp;amp;repo=BaseOS-$releasever&lt;br /&gt;
gpgcheck=1&lt;br /&gt;
enabled=1&lt;br /&gt;
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Erklärungen ===&lt;br /&gt;
;[baseos]: Der eindeutige Name des Repositories – wird bei dnf-Befehlen als ID verwendet&lt;br /&gt;
;gpgcheck=1: Pakete werden mit dem GPG-Schlüssel des Repositories verifiziert – verhindert manipulierte Pakete&lt;br /&gt;
;enabled=1: Repository ist aktiv – 0 deaktiviert es&lt;br /&gt;
;gpgkey: Pfad zum GPG-Schlüssel der zur Verifikation genutzt wird&lt;br /&gt;
&lt;br /&gt;
== Repositories anzeigen ==&lt;br /&gt;
;Alle aktiven Repositories&lt;br /&gt;
* dnf repolist&lt;br /&gt;
;Alle Repositories inkl. deaktivierter&lt;br /&gt;
* dnf repolist all&lt;br /&gt;
&lt;br /&gt;
== Repository hinzufügen ==&lt;br /&gt;
;Ein neues Repository lässt sich auf drei Arten hinzufügen – je nachdem was der Anbieter bereitstellt&lt;br /&gt;
&lt;br /&gt;
;Variante 1 – fertige .repo-Datei per URL&lt;br /&gt;
* dnf config-manager --add-repo https://example.com/pfad/zum/repo.repo&lt;br /&gt;
;Legt automatisch eine neue Datei unter /etc/yum.repos.d/ an&lt;br /&gt;
&lt;br /&gt;
;Variante 2 – Repository manuell per Baseurl anlegen (kein .repo-File vorhanden)&lt;br /&gt;
* vim /etc/yum.repos.d/eigenes.repo&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[eigenes-repo]&lt;br /&gt;
name=Eigenes Repository&lt;br /&gt;
baseurl=https://example.com/pfad/zum/repo/&lt;br /&gt;
gpgcheck=1&lt;br /&gt;
enabled=1&lt;br /&gt;
gpgkey=https://example.com/pfad/zum/RPM-GPG-KEY&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Variante 3 – Release-Paket installiert Repo-Konfiguration gleich mit (z.B. bei EPEL, siehe unten)&lt;br /&gt;
* dnf install -y epel-release&lt;br /&gt;
&lt;br /&gt;
;Nach dem Hinzufügen immer die Metadaten aktualisieren und prüfen ob das Repo erreichbar ist&lt;br /&gt;
* dnf makecache&lt;br /&gt;
* dnf repolist&lt;br /&gt;
&lt;br /&gt;
;Merksatz: mirrorlist verweist auf eine Liste von Spiegelservern (Rocky-Standard), baseurl zeigt direkt auf einen einzelnen Server – für eigene/interne Repos i.d.R. baseurl verwenden&lt;br /&gt;
&lt;br /&gt;
== Repository aktivieren/deaktivieren ==&lt;br /&gt;
* dnf config-manager --set-enabled crb&lt;br /&gt;
* dnf config-manager --set-disabled crb&lt;br /&gt;
&lt;br /&gt;
== GPG-Schlüssel ==&lt;br /&gt;
;GPG-Schlüssel stellen sicher dass Pakete wirklich vom Repository-Betreiber stammen und nicht manipuliert wurden. Rocky Linux liefert seine Schlüssel unter /etc/pki/rpm-gpg/ mit.&lt;br /&gt;
;Schlüssel importieren&lt;br /&gt;
* rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9&lt;br /&gt;
;Alle importierten Schlüssel anzeigen&lt;br /&gt;
* rpm -qa gpg-pubkey&lt;br /&gt;
&lt;br /&gt;
= EPEL =&lt;br /&gt;
&lt;br /&gt;
;EPEL (Extra Packages for Enterprise Linux) ist ein offizielles Fedora-Projekt das zusätzliche Pakete für RHEL-basierte Systeme bereitstellt – viele nützliche Tools die in den Standard-Repos fehlen.&lt;br /&gt;
&lt;br /&gt;
== EPEL installieren ==&lt;br /&gt;
* dnf install -y epel-release&lt;br /&gt;
* dnf repolist | grep epel&lt;br /&gt;
&lt;br /&gt;
== CRB aktivieren ==&lt;br /&gt;
;Manche EPEL-Pakete benötigen das CRB-Repository (CodeReady Builder) – früher PowerTools genannt&lt;br /&gt;
* dnf config-manager --set-enabled crb&lt;br /&gt;
&lt;br /&gt;
== Beispiel: htop aus EPEL ==&lt;br /&gt;
* dnf install -y htop&lt;br /&gt;
&lt;br /&gt;
= Pakete verwalten (dnf) =&lt;br /&gt;
&lt;br /&gt;
== Installieren ==&lt;br /&gt;
;Paket installieren – Abhängigkeiten werden automatisch aufgelöst&lt;br /&gt;
* dnf install httpd&lt;br /&gt;
;Mehrere Pakete auf einmal&lt;br /&gt;
* dnf install -y httpd php php-fpm&lt;br /&gt;
;Paket erneut installieren&lt;br /&gt;
* dnf reinstall httpd&lt;br /&gt;
&lt;br /&gt;
== Entfernen ==&lt;br /&gt;
;Paket entfernen&lt;br /&gt;
* dnf remove httpd&lt;br /&gt;
;Nicht mehr benötigte Abhängigkeiten entfernen&lt;br /&gt;
* dnf autoremove&lt;br /&gt;
&lt;br /&gt;
== Aktualisieren ==&lt;br /&gt;
;Einzelnes Paket aktualisieren&lt;br /&gt;
* dnf update httpd&lt;br /&gt;
;Gesamtes System aktualisieren&lt;br /&gt;
* dnf update&lt;br /&gt;
;Nur prüfen ob Updates verfügbar sind – nichts installieren&lt;br /&gt;
* dnf check-update&lt;br /&gt;
;Nur Security-Updates&lt;br /&gt;
* dnf update --security&lt;br /&gt;
* dnf updateinfo list security&lt;br /&gt;
&lt;br /&gt;
== Nach Updates: Neustart nötig? ==&lt;br /&gt;
;Zeigt ob Dienste oder das System nach Updates neu gestartet werden müssen&lt;br /&gt;
* dnf needs-restarting&lt;br /&gt;
* dnf needs-restarting -r&lt;br /&gt;
&lt;br /&gt;
= Pakete suchen und inspizieren (dnf) =&lt;br /&gt;
&lt;br /&gt;
== Suchen ==&lt;br /&gt;
;Sucht in Paketnamen und Beschreibungen&lt;br /&gt;
* dnf search httpd&lt;br /&gt;
;Welches Paket liefert eine bestimmte Datei oder einen Befehl&lt;br /&gt;
* dnf provides /usr/sbin/httpd&lt;br /&gt;
* dnf provides ifconfig&lt;br /&gt;
&lt;br /&gt;
== Informationen anzeigen ==&lt;br /&gt;
;Detaillierte Informationen zu einem Paket&lt;br /&gt;
* dnf info httpd&lt;br /&gt;
&lt;br /&gt;
== Listen ==&lt;br /&gt;
;Alle installierten Pakete&lt;br /&gt;
* dnf list installed&lt;br /&gt;
;Alle verfügbaren Pakete&lt;br /&gt;
* dnf list available&lt;br /&gt;
;Alle Pakete für die Updates verfügbar sind&lt;br /&gt;
* dnf list updates&lt;br /&gt;
&lt;br /&gt;
== Pakete herunterladen ohne zu installieren ==&lt;br /&gt;
;Benötigt das Plugin dnf-plugins-core&lt;br /&gt;
* dnf install -y dnf-plugins-core&lt;br /&gt;
;Paket als RPM-Datei ins aktuelle Verzeichnis laden&lt;br /&gt;
* dnf download mc&lt;br /&gt;
;Inklusive aller Abhängigkeiten&lt;br /&gt;
* dnf download --resolve mc&lt;br /&gt;
;In ein bestimmtes Zielverzeichnis&lt;br /&gt;
* dnf download --resolve --destdir=/tmp/pakete mc&lt;br /&gt;
&lt;br /&gt;
;Nützlich für Offline-Installationen (z.B. DMZ-Server ohne Internetzugang) – Pakete auf einer Online-Maschine laden, dann per scp übertragen&lt;br /&gt;
&lt;br /&gt;
;Heruntergeladenes Paket installieren&lt;br /&gt;
* dnf install ./mc-*.rpm&lt;br /&gt;
&lt;br /&gt;
= Paketgruppen =&lt;br /&gt;
&lt;br /&gt;
;Paketgruppen bündeln thematisch zusammengehörige Pakete – z.B. &amp;quot;Server with GUI&amp;quot; oder &amp;quot;Development Tools&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;Alle Gruppen anzeigen&lt;br /&gt;
* dnf grouplist&lt;br /&gt;
;Gruppe installieren&lt;br /&gt;
* dnf groupinstall &amp;quot;Development Tools&amp;quot;&lt;br /&gt;
* dnf groupinstall &amp;quot;Server with GUI&amp;quot;&lt;br /&gt;
;Gruppe aktualisieren&lt;br /&gt;
* dnf groupupdate &amp;quot;Development Tools&amp;quot;&lt;br /&gt;
;Gruppe entfernen&lt;br /&gt;
* dnf groupremove &amp;quot;Development Tools&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
&lt;br /&gt;
;dnf protokolliert alle Aktionen – Installationen, Updates, Entfernungen lassen sich rückgängig machen&lt;br /&gt;
&lt;br /&gt;
;Historie anzeigen&lt;br /&gt;
* dnf history&lt;br /&gt;
;Details zu einem Eintrag&lt;br /&gt;
* dnf history info 5&lt;br /&gt;
;Transaktion rückgängig machen&lt;br /&gt;
* dnf history undo 5&lt;br /&gt;
&lt;br /&gt;
= Cache =&lt;br /&gt;
&lt;br /&gt;
;dnf legt Paketmetadaten lokal im Cache ab – beschleunigt Abfragen, kann aber veralten&lt;br /&gt;
&lt;br /&gt;
;Cache aktualisieren&lt;br /&gt;
* dnf makecache&lt;br /&gt;
;Cache leeren&lt;br /&gt;
* dnf clean all&lt;br /&gt;
;Nur Metadaten löschen&lt;br /&gt;
* dnf clean metadata&lt;br /&gt;
&lt;br /&gt;
= Modulstreams =&lt;br /&gt;
&lt;br /&gt;
;Rocky Linux 9 nutzt Modulstreams um verschiedene Versionen desselben Pakets parallel anzubieten – z.B. PHP 8.1 und PHP 8.2&lt;br /&gt;
&lt;br /&gt;
;Verfügbare Module anzeigen&lt;br /&gt;
* dnf module list&lt;br /&gt;
;Modul aktivieren&lt;br /&gt;
* dnf module enable php:8.2&lt;br /&gt;
;Modul installieren&lt;br /&gt;
* dnf module install php:8.2&lt;br /&gt;
;Aktiven Stream anzeigen&lt;br /&gt;
* dnf module list php&lt;br /&gt;
&lt;br /&gt;
= RPM – direkter Zugriff auf die Paketdatenbank =&lt;br /&gt;
&lt;br /&gt;
;Mit dem Query-Modus (-q) lässt sich die RPM-Datenbank nach installierten Paketen durchsuchen&lt;br /&gt;
&lt;br /&gt;
== Paketname anzeigen ==&lt;br /&gt;
;Vollständigen Namen des installierten Pakets anzeigen&lt;br /&gt;
* rpm -q mc&lt;br /&gt;
 mc-4.8.28-1.el9.x86_64&lt;br /&gt;
&lt;br /&gt;
== Paketinformationen ==&lt;br /&gt;
;Detaillierte Informationen – Version, Beschreibung, Lizenz, Installationsdatum&lt;br /&gt;
* rpm -qi mc&lt;br /&gt;
&lt;br /&gt;
== Dateien eines Pakets ==&lt;br /&gt;
;Alle Dateien die zum Paket gehören&lt;br /&gt;
* rpm -ql mc&lt;br /&gt;
;Nur Konfigurationsdateien&lt;br /&gt;
* rpm -qc mc&lt;br /&gt;
;Nur Dokumentationsdateien&lt;br /&gt;
* rpm -qd mc&lt;br /&gt;
&lt;br /&gt;
== Zu welchem Paket gehört eine Datei? ==&lt;br /&gt;
;Sehr nützlich wenn man wissen will woher eine Datei stammt&lt;br /&gt;
* rpm -qf /usr/sbin/httpd&lt;br /&gt;
 httpd-2.4.57-5.el9.x86_64&lt;br /&gt;
* rpm -qf /sbin/ifconfig&lt;br /&gt;
 net-tools-2.0-0.62.el9.x86_64&lt;br /&gt;
&lt;br /&gt;
;Merksatz: dnf provides fragt Repo-Metadaten (braucht Zugriff aufs Repo), rpm -qf fragt nur die lokale Datenbank (funktioniert auch offline)&lt;br /&gt;
&lt;br /&gt;
== Abhängigkeiten ==&lt;br /&gt;
;Was braucht das Paket&lt;br /&gt;
* rpm -q --requires mc&lt;br /&gt;
;Was stellt das Paket zur Verfügung&lt;br /&gt;
* rpm -q --provides mc&lt;br /&gt;
;Welches Paket stellt einen bestimmten Service bereit&lt;br /&gt;
* rpm -q --whatprovides libext2fs.so.2&lt;br /&gt;
;Welche Pakete nutzen einen Service&lt;br /&gt;
* rpm -q --whatrequires libext2fs.so.2&lt;br /&gt;
&lt;br /&gt;
== Installationsskripte anzeigen ==&lt;br /&gt;
;Zeigt pre/postinstall und pre/postuninstall Skripte – nützlich zur Fehlersuche&lt;br /&gt;
* rpm -q --scripts httpd&lt;br /&gt;
&lt;br /&gt;
== Abfragen auf .rpm-Dateien ==&lt;br /&gt;
;Mit -p (package) lässt sich eine noch nicht installierte .rpm-Datei abfragen – ohne sie zu installieren&lt;br /&gt;
&lt;br /&gt;
;Paketname&lt;br /&gt;
* rpm -qp mc.rpm&lt;br /&gt;
;Paketinformationen&lt;br /&gt;
* rpm -qpi mc.rpm&lt;br /&gt;
;Alle Dateien im Paket&lt;br /&gt;
* rpm -qlp mc.rpm&lt;br /&gt;
;Konfigurationsdateien im Paket&lt;br /&gt;
* rpm -qpc mc.rpm&lt;br /&gt;
;Dokumentationsdateien im Paket&lt;br /&gt;
* rpm -qpd mc.rpm&lt;br /&gt;
&lt;br /&gt;
== Direkte Installation per rpm ==&lt;br /&gt;
;Im Normalfall wird dnf für Installationen verwendet – rpm direkt dann wenn eine einzelne .rpm-Datei vorliegt&lt;br /&gt;
&lt;br /&gt;
;Paket installieren&lt;br /&gt;
* rpm -ivh paket.rpm&lt;br /&gt;
;Installation testen ohne wirklich zu installieren&lt;br /&gt;
* rpm -i --test paket.rpm&lt;br /&gt;
;Bereits installiertes Paket erneut installieren – Konfigurationen bleiben erhalten&lt;br /&gt;
* rpm -i --replacepkgs paket.rpm&lt;br /&gt;
;Installation ohne Abhängigkeitsprüfung – nur im Notfall&lt;br /&gt;
* rpm -i --nodeps paket.rpm&lt;br /&gt;
;Kombination aus replacepkgs und replacefiles&lt;br /&gt;
* rpm -i --force paket.rpm&lt;br /&gt;
&lt;br /&gt;
;Erklärung der Optionen:&lt;br /&gt;
:* '''-i''': installieren&lt;br /&gt;
:* '''-v''': verbose – zeigt was passiert&lt;br /&gt;
:* '''-h''': Hash – zeigt Fortschrittsbalken mit # Zeichen&lt;br /&gt;
&lt;br /&gt;
== Upgrade ==&lt;br /&gt;
;Paket aktualisieren – falls noch nicht installiert wird es installiert&lt;br /&gt;
* rpm -Uvh paket.rpm&lt;br /&gt;
&lt;br /&gt;
== Entfernen ==&lt;br /&gt;
;Paket deinstallieren&lt;br /&gt;
* rpm -e mc&lt;br /&gt;
;Entfernen ohne Abhängigkeitsprüfung – Vorsicht&lt;br /&gt;
* rpm -e --nodeps mc&lt;br /&gt;
&lt;br /&gt;
== Verifizieren ==&lt;br /&gt;
;RPM kann prüfen ob Dateien seit der Installation verändert wurden – nützlich zur Integritätsprüfung&lt;br /&gt;
&lt;br /&gt;
;Alle installierten Pakete verifizieren&lt;br /&gt;
* rpm -Va&lt;br /&gt;
;Einzelnes Paket verifizieren&lt;br /&gt;
* rpm -V httpd&lt;br /&gt;
&lt;br /&gt;
;Die Ausgabe zeigt was sich geändert hat – ein Punkt bedeutet ok, ein Buchstabe bedeutet Abweichung:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Zeichen !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| . || Keine Abweichung&lt;br /&gt;
|-&lt;br /&gt;
| 5 || MD5-Prüfsumme geändert&lt;br /&gt;
|-&lt;br /&gt;
| S || Dateigröße geändert&lt;br /&gt;
|-&lt;br /&gt;
| L || Symbolischer Link geändert&lt;br /&gt;
|-&lt;br /&gt;
| T || Zeitmarkierung geändert&lt;br /&gt;
|-&lt;br /&gt;
| D || Gerätedatei geändert&lt;br /&gt;
|-&lt;br /&gt;
| U || Besitzer (User) geändert&lt;br /&gt;
|-&lt;br /&gt;
| G || Gruppe geändert&lt;br /&gt;
|-&lt;br /&gt;
| M || Rechte (Mode) geändert&lt;br /&gt;
|-&lt;br /&gt;
| ? || Unbekannte Abweichung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;Beispielausgabe:&lt;br /&gt;
* rpm -V sendmail&lt;br /&gt;
 .......T c /etc/rc.d/init.d/sendmail&lt;br /&gt;
 S.5....T c /etc/sendmail.cf&lt;br /&gt;
&lt;br /&gt;
;c steht für Konfigurationsdatei – Änderungen dort sind normal und werden oft ignoriert&lt;br /&gt;
&lt;br /&gt;
== GPG-Signaturen prüfen ==&lt;br /&gt;
;Jedes RPM-Paket ist mit dem GPG-Schlüssel des Herstellers signiert – RPM kann das prüfen&lt;br /&gt;
* rpm --checksig paket.rpm&lt;br /&gt;
 paket.rpm: digests signatures OK&lt;br /&gt;
&lt;br /&gt;
;Alle importierten GPG-Schlüssel anzeigen&lt;br /&gt;
* rpm -qa gpg-pubkey&lt;br /&gt;
&lt;br /&gt;
;Schlüssel importieren&lt;br /&gt;
* rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9&lt;/div&gt;</summary>
		<author><name>Thomas.will</name></author>
	</entry>
</feed>