Einführung
In diesem Lab sammeln Sie praktische Erfahrungen bei der Verwaltung von Softwarepaketen auf Red Hat Enterprise Linux (RHEL)-Systemen mit DNF. Zunächst machen Sie sich mit dem Befehl subscription-manager für die Registrierung beim Red Hat-Support vertraut, auch wenn dies in einer simulierten Umgebung erfolgt. Anschließend erfahren Sie, wie Sie RPM-Paketinformationen abrufen und interpretieren, und meistern die Installation sowie das Entfernen von Softwarepaketen mittels DNF.
Darüber hinaus führt Sie dieses Lab durch die Verwaltung von DNF-Software-Repositorys, einschließlich des Hinzufügens, Aktivierens und Deaktivierens. Abschließend lernen Sie, wie Sie den DNF-Transaktionsverlauf einsehen und verstehen, was Ihnen einen umfassenden Überblick über die Paketverwaltungsvorgänge verschafft.
Hinweis: Dieses Lab erfordert eine Netzwerkverbindung, um Pakete herunterzuladen und auf Repositorys zuzugreifen. Es ist nur für LabEx Pro-Benutzer verfügbar.
Registrieren Ihres Systems für den Red Hat-Support
In diesem Schritt lernen Sie, wie Sie Ihr System mithilfe des Befehls subscription-manager für den Red Hat-Support registrieren. Obwohl in dieser simulierten Umgebung kein vollständiges Red Hat-Abonnement verfügbar ist, ist das Verständnis des Befehls subscription-manager für die Softwareverwaltung auf Red Hat Enterprise Linux-Systemen von entscheidender Bedeutung. Mit diesem Befehl können Sie Ihr System bei Red Hat registrieren, Abonnements verknüpfen und auf das Content Delivery Network von Red Hat für Softwarepakete und Updates zugreifen.
Versuchen wir zunächst, das System mit einem Platzhalter-Benutzernamen zu registrieren. Dies demonstriert die Verwendung des Befehls, auch wenn für eine tatsächliche Registrierung gültige Red Hat-Anmeldedaten erforderlich sind.
sudo subscription-manager register --username labex --password labex 2>&1 | tee ~/project/subscription-register.txt
Dieses Lab verwendet Platzhalter-Anmeldedaten, damit der Befehl nicht-interaktiv ausgeführt werden kann. Die Authentifizierung wird fehlschlagen, was in dieser Umgebung zu erwarten ist. Die Ausgabe wird zur Überprüfung in ~/project/subscription-register.txt gespeichert.
Registering to: subscription.rhsm.redhat.com:443/subscription
Password:
Invalid username or password. To create a login, please visit https://www.redhat.com/wapps/ugc/register.html (HTTP error code 401: Unauthorized)
Lassen Sie uns abschließend sehen, welche Repositorys auf einem registrierten System über Red Hat-Abonnements verfügbar wären.
sudo subscription-manager repos --list 2>&1 | tee ~/project/subscription-repos.txt
Da das System nicht registriert ist, sehen Sie eine Meldung, die darauf hinweist, dass keine abonnementbasierten Repositorys verfügbar sind.
This system has no repositories available through subscriptions.
Überprüfen wir nun den aktuellen Abonnementstatus für dieses System. Dies ist eine praktische Methode, um zu bestätigen, dass das System noch nicht registriert ist, bevor Sie mit Red Hat-Abonnementinhalten arbeiten.
sudo subscription-manager status 2>&1 | tee ~/project/subscription-status.txt
Da das System noch nicht registriert ist, wird der Befehl diesen Status direkt melden.
+-------------------------------------------+
System Status Details
+-------------------------------------------+
Overall Status: Not registered
Diese Übung demonstriert die grundlegende Verwendung von subscription-manager für Registrierungs- und Statusprüfungen. Obwohl die volle Funktionalität in dieser simulierten Umgebung eingeschränkt ist, sind diese Befehle grundlegend für das Verständnis des Softwarezugriffs auf RHEL-Systemen.
Erkunden von RPM-Paketinformationen
In diesem Schritt lernen Sie, wie Sie den Befehl rpm verwenden, um Softwarepakete zu untersuchen. RPM (Red Hat Package Manager) ist das zentrale Paketverwaltungssystem, das von Red Hat Enterprise Linux verwendet wird. Während dnf (das Sie später kennenlernen werden) ein übergeordnetes Tool zur Verwaltung von Paketen aus Repositorys ist, ermöglicht Ihnen rpm das Abfragen, Überprüfen, Installieren und Deinstallieren einzelner .rpm-Dateien.
Listen wir zunächst alle installierten RPM-Pakete auf Ihrem System auf. Da dies eine sehr lange Liste erzeugen kann, leiten wir die Ausgabe an head weiter, um nur den Anfang zu sehen.
rpm -qa | head > ~/project/rpm-installed.txt
cat ~/project/rpm-installed.txt
Sie sehen eine Liste mit Paketnamen, Versionen und Architekturen. Zum Beispiel:
libgcc-11.4.1-3.el9.x86_64
crypto-policies-20240202-1.git283706d.el9.noarch
tzdata-2024a-1.el9.noarch
subscription-manager-rhsm-certificates-20220623-1.el9.noarch
redhat-release-9.4-0.4.el9.x86_64
setup-2.13.7-10.el9.noarch
filesystem-3.16-2.el9.noarch
basesystem-11-13.el9.noarch
pcre2-syntax-10.40-5.el9.noarch
ncurses-base-6.2-10.20210508.el9.noarch
Finden wir nun heraus, welches Paket eine bestimmte Datei bereitstellt. Wir verwenden /etc/yum.repos.d als Beispiel, ein Verzeichnis, das Konfigurationsdateien für DNF-Repositorys enthält.
rpm -qf /etc/yum.repos.d
Die Ausgabe zeigt Ihnen das Paket, zu dem dieses Verzeichnis gehört.
redhat-release-9.4-0.4.el9.x86_64
Lassen Sie uns nun detaillierte Informationen über das Paket abrufen, das den Befehl dnf bereitstellt.
DNF_PACKAGE=$(rpm -qf /usr/bin/dnf)
rpm -qi "$DNF_PACKAGE" > ~/project/dnf-package-info.txt
cat ~/project/dnf-package-info.txt
Diese Befehle identifizieren zunächst, welches RPM /usr/bin/dnf besitzt, und zeigen dann detaillierte Paketmetadaten an, einschließlich Version, Release, Architektur, Lizenz und Zusammenfassung.
Name : dnf
Version : 4.14.0
Release : 9.el9
Architecture: noarch
Install Date: Thu Jul 18 15:50:10 2024
Group : Unspecified
Size : 2425281
License : GPLv2+
Signature : RSA/SHA256, Fri Nov 10 10:14:09 2023, Key ID 199e2f91fd431d51
Source RPM : dnf-4.14.0-9.el9.src.rpm
Build Date : Thu Oct 26 05:20:14 2023
Build Host : x86-64-01.build.eng.rdu2.redhat.com
Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Vendor : Red Hat, Inc.
URL : https://github.com/rpm-software-management/dnf
Summary : Package manager
Description :
Utility that allows users to manage packages on their systems.
It supports RPMs, modules and comps groups & environments.
Sie können auch alle Dateien auflisten, die von einem Paket installiert wurden. Dies kann nützlich sein, um zu verstehen, was ein Paket auf Ihrem System ablegt.
rpm -ql dnf | head -n 10
Dies zeigt die ersten 10 Dateien an, die vom Paket dnf installiert wurden.
/usr/bin/dnf
/usr/lib/systemd/system/dnf-makecache.service
/usr/lib/systemd/system/dnf-makecache.timer
/usr/share/bash-completion
/usr/share/bash-completion/completions
/usr/share/bash-completion/completions/dnf
/usr/share/locale/ar/LC_MESSAGES/dnf.mo
/usr/share/locale/bg/LC_MESSAGES/dnf.mo
/usr/share/locale/bn/LC_MESSAGES/dnf.mo
/usr/share/locale/bn_IN/LC_MESSAGES/dnf.mo
Um nur die von einem Paket installierten Konfigurationsdateien anzuzeigen, verwenden Sie die Option -qc. Überprüfen wir das Paket openssh-clients.
rpm -qc openssh-clients
Dies listet die Konfigurationsdateien auf, die sich auf SSH-Clients beziehen.
/etc/ssh/ssh_config
/etc/ssh/ssh_config.d/50-redhat.conf
Verwenden Sie schließlich --changelog, um die Änderungsprotokollinformationen für ein Paket anzuzeigen. Dies kann Einblicke in die Historie von Updates und Fehlerbehebungen für ein Paket geben. Schauen wir uns das Paket audit an.
rpm -q --changelog audit | head -n 5
Wenn das Paket nicht installiert ist, sehen Sie eine Fehlermeldung:
package audit is not installed
Sie können es stattdessen mit einem installierten Paket versuchen. Zum Beispiel mit dem Paket setup:
rpm -q --changelog setup | head -n 5
Diese rpm-Befehle sind leistungsstarke Werkzeuge, um die auf Ihrem System installierten Pakete und die darin enthaltenen Dateien zu verstehen.
Installieren und Entfernen von Softwarepaketen mit DNF
In diesem Schritt lernen Sie, wie Sie dnf (Dandified YUM) zur Verwaltung von Softwarepaketen verwenden. dnf ist der Standard-Paketmanager in Red Hat Enterprise Linux 9 und wird zum Installieren, Aktualisieren und Entfernen von Softwarepaketen sowie zur Verwaltung von Software-Repositorys verwendet. Er verarbeitet Abhängigkeiten automatisch, was die Softwareverwaltung wesentlich einfacher macht als mit rpm allein.
Listen wir zunächst alle verfügbaren und installierten Pakete auf, die "http" in ihrem Namen haben. Dies gibt Ihnen eine Vorstellung davon, welche Pakete mit HTTP-Diensten zusammenhängen.
sudo dnf list 'http*'
Sie sehen eine Liste von Paketen, die angibt, ob sie installiert oder zur Installation verfügbar sind.
Last metadata expiration check: 0:00:00 ago on Mon Apr 22 08:00:00 2024.
Available Packages
http-parser.i686 2.9.4-6.el9 rhel-9-for-x86_64-appstream-rpms
http-parser.x86_64 2.9.4-6.el9 rhel-9-for-x86_64-appstream-rpms
httpcomponents-client.noarch 4.5.13-2.el9 rhel-9-for-x86_64-appstream-rpms
httpcomponents-core.noarch 4.4.13-6.el9 rhel-9-for-x86_64-appstream-rpms
httpd.x86_64 2.4.51-5.el9 rhel-9-for-x86_64-appstream-rpms
httpd-devel.x86_64 2.4.51-5.el9 rhel-9-for-x86_64-appstream-rpms
httpd-filesystem.noarch 2.4.51-5.el9 rhel-9-for-x86_64-appstream-rpms
httpd-manual.noarch 2.4.51-5.el9 rhel-9-for-x86_64-appstream-rpms
httpd-tools.x86_64 2.4.51-5.el9 rhel-9-for-x86_64-appstream-rpms
Suchen wir nun nach Paketen, die "web server" in ihrem Namen, ihrer Zusammenfassung oder Beschreibung enthalten. Die Option search all ist nützlich für eine breitere Suche.
sudo dnf search all 'web server'
Dieser Befehl gibt eine Liste von Paketen zurück, die mit den Suchbegriffen übereinstimmen.
Last metadata expiration check: 0:00:00 ago on Mon Apr 22 08:00:00 2024.
================== Summary & Description Matched: web server ===================
nginx.x86_64 : A high performance web server and reverse proxy server
pcp-pmda-weblog.x86_64 : Performance Co-Pilot (PCP) metrics from web server logs
========================= Summary Matched: web server ==========================
libcurl.x86_64 : A library for getting files from web servers
libcurl.i686 : A library for getting files from web servers
======================= Description Matched: web server ========================
freeradius.x86_64 : High-performance and highly configurable free RADIUS server
git-instaweb.noarch : Repository browser in gitweb
http-parser.i686 : HTTP request/response parser for C
http-parser.x86_64 : HTTP request/response parser for C
httpd.x86_64 : Apache HTTP Server
mod_auth_openidc.x86_64 : OpenID Connect auth module for Apache HTTP Server
mod_jk.x86_64 : Tomcat mod_jk connector for Apache
mod_security.x86_64 : Security module for the Apache HTTP Server
varnish.i686 : High-performance HTTP accelerator
varnish.x86_64 : High-performance HTTP accelerator
Lassen Sie uns detaillierte Informationen über das Paket httpd abrufen, das den Apache HTTP Server darstellt.
sudo dnf info httpd
Dies zeigt umfassende Details zum Paket an, einschließlich Größe, Lizenz und Beschreibung.
Last metadata expiration check: 0:00:00 ago on Mon Apr 22 08:00:00 2024.
Available Packages
Name : httpd
Version : 2.4.51
Release : 5.el9
Architecture : x86_64
Size : 1.5 M
Source : httpd-2.4.51-5.el9.src.rpm
Repository : rhel-9-for-x86_64-appstream-rpms
Summary : Apache HTTP Server
URL : https://httpd.apache.org/
License : ASL 2.0
Description : The Apache HTTP Server is a powerful, efficient, and extensible
: web server.
Installieren wir nun das Paket httpd. Sie benötigen sudo-Rechte für diesen Vorgang.
sudo dnf install httpd -y | tee ~/project/httpd-install.txt
Das Flag -y beantwortet automatisch alle Eingabeaufforderungen mit "yes", was für Skripte nützlich ist, aber in Produktionsumgebungen mit Vorsicht verwendet werden sollte.
Last metadata expiration check: 0:00:00 ago on Mon Apr 22 08:00:00 2024.
Dependencies resolved.
================================================================================
Package Architecture Version Repository Size
================================================================================
Installing:
httpd x86_64 2.4.51-5.el9 rhel-9-for-x86_64-appstream-rpms
1.5 M
Installing dependencies:
apr x86_64 1.7.0-11.el9 rhel-9-for-x86_64-appstream-rpms
126 k
apr-util x86_64 1.6.1-20.el9 rhel-9-for-x86_64-appstream-rpms
106 k
apr-util-bdb x86_64 1.6.1-20.el9 rhel-9-for-x86_64-appstream-rpms
13 k
apr-util-openssl x86_64 1.6.1-20.el9 rhel-9-for-x86_64-appstream-rpms
15 k
httpd-filesystem noarch 2.4.51-5.el9 rhel-9-for-x86_64-appstream-rpms
14 k
httpd-tools x86_64 2.4.51-5.el9 rhel-9-for-x86_64-appstream-rpms
100 k
mailcap noarch 2.1.49-5.el9 rhel-9-for-x86_64-baseos-rpms
36 k
mod_http2 x86_64 1.15.7-5.el9 rhel-9-for-x86_64-appstream-rpms
150 k
redhat-logos-httpd noarch 90.4-1.el9 rhel-9-for-x86_64-appstream-rpms
20 k
Transaction Summary
================================================================================
Install 10 Packages
Total download size: 2.1 M
Installed size: 6.9 M
Downloading Packages:
... (downloading package details omitted) ...
Running transaction
... (installation progress omitted) ...
Installed:
apr-1.7.0-11.el9.x86_64
apr-util-1.6.1-20.el9.x86_64
apr-util-bdb-1.6.1-20.el9.x86_64
apr-util-openssl-1.6.1-20.el9.x86_64
httpd-2.4.51-5.el9.x86_64
httpd-filesystem-2.4.51-5.el9.noarch
httpd-tools-2.4.51-5.el9.x86_64
mailcap-2.1.49-5.el9.noarch
mod_http2-1.15.7-5.el9.x86_64
redhat-logos-httpd-90.4-1.el9.noarch
Complete!
Sie können überprüfen, ob httpd installiert ist, indem Sie rpm abfragen:
rpm -q httpd
httpd-2.4.51-5.el9.x86_64
Entfernen wir nun das Paket httpd.
sudo dnf remove httpd -y | tee ~/project/httpd-remove.txt
Dies entfernt das Paket httpd und alle Abhängigkeiten, die von anderen installierten Paketen nicht mehr benötigt werden.
Dependencies resolved.
================================================================================
Package Architecture Version Repository Size
================================================================================
Removing:
httpd x86_64 2.4.51-5.el9 @appstream 4.7 M
Removing dependent packages:
apr-util-bdb x86_64 1.6.1-20.el9 @appstream 13 k
apr-util-openssl x86_64 1.6.1-20.el9 @appstream 15 k
httpd-filesystem noarch 2.4.51-5.el9 @appstream 14 k
mod_http2 x86_64 1.15.7-5.el9 @appstream 150 k
redhat-logos-httpd noarch 90.4-1.el9 @appstream 20 k
Transaction Summary
================================================================================
Remove 6 Packages
Freed space: 4.9 M
... (transaction progress omitted) ...
Removed:
apr-util-bdb-1.6.1-20.el9.x86_64
apr-util-openssl-1.6.1-20.el9.x86_64
httpd-2.4.51-5.el9.x86_64
httpd-filesystem-2.4.51-5.el9.noarch
mod_http2-1.15.7-5.el9.x86_64
redhat-logos-httpd-90.4-1.el9.noarch
Complete!
Sie können die Entfernung bestätigen:
rpm -q httpd
package httpd is not installed
Dies demonstriert die grundlegenden dnf-Befehle zum Installieren und Entfernen von Softwarepaketen.
Verwalten von DNF-Software-Repositorys
In diesem Schritt lernen Sie, wie Sie DNF-Software-Repositorys verwalten. Repositorys sind Speicherorte, an denen Softwarepakete abgelegt sind und von denen dnf sie abruft. Das Verständnis, wie man Repositorys auflistet, aktiviert, deaktiviert und hinzufügt, ist entscheidend, um zu kontrollieren, welche Software auf Ihrem System verfügbar ist.
Listen wir zunächst alle konfigurierten DNF-Repositorys und ihren Status (aktiviert oder deaktiviert) auf.
sudo dnf repolist all > ~/project/dnf-repolist.txt
cat ~/project/dnf-repolist.txt
Sie sehen eine Liste von Repository-IDs, Namen und deren aktuellem Status. Die genauen Repository-Namen hängen vom für das Lab verwendeten Image ab.
repo id repo name status
rhui-rhel-10-for-x86_64-appstream-rhui-rpms Red Hat Enterprise enabled
rhui-rhel-10-for-x86_64-baseos-rhui-rpms Red Hat Enterprise enabled
rhui-rhel-10-for-x86_64-appstream-rhui-debug-rpms Red Hat Enterprise disabled
Der Befehl dnf config-manager ist ein leistungsstarkes Werkzeug zur Verwaltung von Repository-Konfigurationen. Sie können ihn verwenden, um Repositorys zu aktivieren oder zu deaktivieren. Versuchen wir beispielsweise, ein hypothetisches Debug-Repository zu aktivieren. Obwohl dieses spezifische Repository in dieser Lab-Umgebung möglicherweise nicht existiert oder nicht zugänglich ist, demonstriert der Befehl die Syntax.
sudo dnf config-manager --enable rhel-9-server-debug-rpms 2>&1 | tee ~/project/dnf-enable-debug.txt
Sie sehen Meldungen zur Abonnementverwaltung und einen Fehler, der darauf hinweist, dass das Repository nicht gefunden wurde, was in dieser Umgebung zu erwarten ist.
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered with an entitlement server. You can use subscription-manager to register.
Error: No matching repo to modify: rhel-9-server-debug-rpms.
Versuchen wir nun, ein Repository zu deaktivieren. Wir verwenden rhel-9-for-x86_64-appstream-rpms als Beispiel. Hinweis: Dieser spezifische Repository-Name existiert im aktuellen Lab-Image nicht, aber der Befehl demonstriert die Syntax.
sudo dnf config-manager --disable rhel-9-for-x86_64-appstream-rpms 2>&1 | tee ~/project/dnf-disable-appstream.txt
Sie sehen Meldungen zur Abonnementverwaltung und einen Fehler, der darauf hinweist, dass das Repository in dieser Umgebung nicht existiert.
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered with an entitlement server. You can use subscription-manager to register.
Error: No matching repo to modify: rhel-9-for-x86_64-appstream-rpms.
Überprüfen wir, ob dieser Repository-Name im aktuellen System nicht existiert:
sudo dnf repolist all | grep rhel-9-for-x86_64-appstream-rpms
Wie erwartet gibt es keine Ausgabe, da dieses Repository im aktuellen Lab-Image nicht existiert.
(no output)
Versuchen wir denselben Aktivierungsbefehl, um zu bestätigen, dass das Repository nicht existiert:
sudo dnf config-manager --enable rhel-9-for-x86_64-appstream-rpms 2>&1 | tee ~/project/dnf-enable-appstream.txt
Auch hier sehen Sie dieselbe Fehlermeldung:
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered with an entitlement server. You can use subscription-manager to register.
Error: No matching repo to modify: rhel-9-for-x86_64-appstream-rpms.
Der Befehl dnf config-manager --add-repo kann auch verwendet werden, um neue Repositorys durch Angabe einer URL hinzuzufügen. Zu Demonstrationszwecken versuchen wir, eine gängige EPEL-Repository-URL (Extra Packages for Enterprise Linux) hinzuzufügen. Obwohl dies das Repository möglicherweise nicht vollständig konfiguriert (da dies oft einen GPG-Schlüssel und eine spezifische .repo-Datei erfordert), zeigt es die Leistungsfähigkeit des Befehls.
sudo dnf config-manager --add-repo="https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/" 2>&1 | tee ~/project/dnf-add-repo.txt
Sie sehen eine Ausgabe, die darauf hinweist, dass eine neue .repo-Datei erstellt wurde.
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered with an entitlement server. You can use subscription-manager to register.
Adding repo from: https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/
Sie können die neu erstellte .repo-Datei in /etc/yum.repos.d/ untersuchen. Der Name der Datei wird von der URL abgeleitet.
ls /etc/yum.repos.d/
Sie sollten eine Datei wie dl.fedoraproject.org_pub_epel_9_Everything_x86_64_.repo neben den vorhandenen Repository-Dateien sehen.
dl.fedoraproject.org_pub_epel_9_Everything_x86_64_.repo redhat.repo ubi.repo
Entfernen wir abschließend die Repository-Konfigurationsdatei, die wir gerade hinzugefügt haben, um aufzuräumen.
sudo rm /etc/yum.repos.d/dl.fedoraproject.org_pub_epel_9_Everything_x86_64_.repo
Dieser Schritt hat Ihnen gezeigt, wie Sie DNF-Repositorys auflisten, aktivieren, deaktivieren und hinzufügen können – wesentliche Fähigkeiten für die Verwaltung von Softwarequellen unter RHEL.
Anzeigen des DNF-Transaktionsverlaufs
In diesem Schritt lernen Sie, wie Sie den Transaktionsverlauf von DNF-Vorgängen einsehen. dnf führt ein detailliertes Protokoll aller Paketinstallationen, -entfernungen und -aktualisierungen. Dieser Verlauf ist von unschätzbarem Wert für die Fehlerbehebung, Prüfung und bei Bedarf sogar für das Rückgängigmachen von Änderungen.
Lassen Sie uns zunächst die Zusammenfassung aller DNF-Transaktionen anzeigen, die auf Ihrem System stattgefunden haben.
sudo dnf history | tee ~/project/dnf-history.txt
Sie sehen eine Tabelle, die jede Transaktion mit einer ID, der verwendeten Befehlszeile, Datum und Uhrzeit, den durchgeführten Aktionen und der Anzahl der geänderten Pakete auflistet.
ID | Command line | Date and time | Action(s) | Altered
--------------------------------------------------------------------------------
3 | install httpd | 2024-04-22 08:00 | Install | 10
2 | remove httpd | 2024-04-22 08:01 | Remove | 6
1 | | 2024-04-22 07:50 | Install | 767 EE
Die Spalte ID ist besonders wichtig, da sie es Ihnen ermöglicht, sich auf bestimmte Transaktionen zu beziehen. In diesem Lab können Sie die ID der httpd-Entfernungstransaktion aus der Verlaufsausgabe erfassen und in den nächsten Befehlen wiederverwenden.
HTTPD_REMOVE_ID=$(sudo dnf history | awk '/remove httpd/ && $1 ~ /^[0-9]+$/ {print $1; exit}')
echo "$HTTPD_REMOVE_ID"
sudo dnf history info "$HTTPD_REMOVE_ID" | tee ~/project/dnf-history-info.txt
Dieser Befehl bietet eine umfassende Aufschlüsselung der ausgewählten Transaktion, einschließlich der entfernten Pakete, ihrer Versionen und des Grundes für die Aktion.
Transaction ID : 2
Begin time : Mon Apr 22 08:01:00 2024
Begin rpmdb : 777:a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f3
End time : Mon Apr 22 08:01:05 2024 (5 seconds)
End rpmdb : 771:a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f3
User : labex <labex>
Return Code : Success
Command Line : dnf remove httpd -y
Packages Altered:
Removed apr-util-bdb-1.6.1-20.el9.x86_64
Removed apr-util-openssl-1.6.1-20.el9.x86_64
Removed httpd-2.4.51-5.el9.x86_64
Removed httpd-filesystem-2.4.51-5.el9.noarch
Removed mod_http2-1.15.7-5.el9.x86_64
Removed redhat-logos-httpd-90.4-1.el9.noarch
Eine der leistungsstärksten Funktionen des DNF-Verlaufs ist die Möglichkeit, Transaktionen rückgängig zu machen (undo) oder zu wiederholen (redo). Machen wir die httpd-Entfernungstransaktion rückgängig, indem wir den Wert HTTPD_REMOVE_ID wiederverwenden, den Sie gerade erfasst haben.
sudo dnf history undo "$HTTPD_REMOVE_ID" -y | tee ~/project/dnf-history-undo.txt
Dieser Befehl installiert das Paket httpd und seine Abhängigkeiten neu, die in dieser spezifischen Transaktion entfernt wurden.
Last metadata expiration check: 0:00:00 ago on Mon Apr 22 08:00:00 2024.
Undoing transaction 2, from Mon Apr 22 08:01:00 2024
Removed apr-util-bdb-1.6.1-20.el9.x86_64
Removed apr-util-openssl-1.6.1-20.el9.x86_64
Removed httpd-2.4.51-5.el9.x86_64
Removed httpd-filesystem-2.4.51-5.el9.noarch
Removed mod_http2-1.15.7-5.el9.x86_64
Removed redhat-logos-httpd-90.4-1.el9.noarch
Dependencies resolved.
================================================================================
Package Architecture Version Repository Size
================================================================================
Installing:
httpd x86_64 2.4.51-5.el9 ubi-9-appstream-rpms 1.5 M
Installing dependencies:
apr x86_64 1.7.0-11.el9 ubi-9-appstream-rpms 126 k
apr-util x86_64 1.6.1-20.el9 ubi-9-appstream-rpms 106 k
apr-util-bdb x86_64 1.6.1-20.el9 ubi-9-appstream-rpms 13 k
apr-util-openssl x86_64 1.6.1-20.el9 ubi-9-appstream-rpms 15 k
httpd-filesystem noarch 2.4.51-5.el9 ubi-9-appstream-rpms 14 k
httpd-tools x86_64 2.4.51-5.el9 ubi-9-appstream-rpms 100 k
mailcap noarch 2.1.49-5.el9 ubi-9-baseos-rpms 36 k
mod_http2 x86_64 1.15.7-5.el9 ubi-9-appstream-rpms 150 k
redhat-logos-httpd noarch 90.4-1.el9 ubi-9-appstream-rpms 20 k
Transaction Summary
================================================================================
Install 10 Packages
Total download size: 2.1 M
Installed size: 6.9 M
... (installation progress omitted) ...
Complete!
Sie können überprüfen, ob httpd jetzt wieder installiert ist:
rpm -q httpd
httpd-2.4.51-5.el9.x86_64
Entfernen wir abschließend httpd erneut, um das System für zukünftige Labs in einem sauberen Zustand zu hinterlassen.
sudo dnf remove httpd -y | tee ~/project/dnf-history-final-remove.txt
... (output omitted) ...
Complete!
Dieser Schritt hat demonstriert, wie man dnf history verwendet, um DNF-Transaktionen anzuzeigen, zu untersuchen und sogar rückgängig zu machen, was leistungsstarke Funktionen für die Systemverwaltung bietet.
Zusammenfassung
In diesem Lab haben wir wesentliche Fähigkeiten für die Verwaltung von Softwarepaketen unter Red Hat Enterprise Linux mit DNF erlernt. Wir begannen mit dem Verständnis des Befehls subscription-manager, der für die Registrierung von Systemen bei Red Hat und den Zugriff auf deren Content Delivery Network entscheidend ist, auch wenn eine vollständige Registrierung in der simulierten Umgebung nicht möglich war.
Anschließend untersuchten wir, wie man RPM-Paketinformationen abfragt, Software mit DNF installiert und entfernt, DNF-Software-Repositorys verwaltet und den DNF-Transaktionsverlauf einsieht. Diese Schritte boten einen umfassenden Überblick über die Funktionen von DNF für eine effiziente Softwareverwaltung.



