RPM steht für „Redhat Package Manager“ und ist ein Befehlszeilen-Paketverwaltungstool für RHEL/CentOS-basierte Betriebssysteme. Sie können das Paket mit dem RPM-Befehl installieren, deinstallieren, aktualisieren, abfragen und überprüfen. Dieses Tool funktioniert nur mit Paketen, die im RPM-Format erstellt wurden. Der RPM-Befehl kann nur das angegebene Paket installieren, er kann nicht die für dieses Paket erforderlichen Abhängigkeiten installieren.
In diesem Tutorial zeigen wir Ihnen anhand einiger Beispiele, wie Sie den RPM-Paketmanager verwenden. Wenn Sie nach einer Anleitung zum neuen RedHat-Paketmanager DNF suchen, sehen Sie hier nach: CentOS 8-Paketverwaltung mit DNF in der Befehlszeile
Voraussetzungen
- Ein Server, auf dem CentOS, RHEL oder Fedora ausgeführt wird.
- Auf Ihrem Server ist ein Root-Passwort konfiguriert.
Grundlegende Syntax
Die grundlegende Syntax des RPM-Befehls ist unten dargestellt:
rpm [OPTION] [PACKAGENAME]
Mit dem folgenden Befehl können Sie alle verfügbaren Optionen mit dem RPM-Befehl auflisten:
rpm --help
Sie sollten den folgenden Bildschirm sehen:
Paket mit RPM installieren, aktualisieren und entfernen
Bevor Sie ein RPM-Paket installieren, können Sie die Abhängigkeiten für dieses Paket mit dem folgenden Befehl auflisten:
rpm -qpR epel-release-latest-8.noarch.rpm
Ausgabe:
warning: epel-release-latest-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY config(epel-release) = 8-7.el8 redhat-release >= 8 rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(PayloadIsXz) <= 5.2-1
Sie können die Informationen dieses Pakets auch mit dem folgenden Befehl abrufen:
rpm -qip epel-release-latest-8.noarch.rpm
Ausgabe:
warning: epel-release-latest-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY Name : epel-release Version : 8 Release : 7.el8 Architecture: noarch Install Date: (not installed) Group : System Environment/Base Size : 30269 License : GPLv2 Signature : RSA/SHA256, Thursday 10 October 2019 12:19:30 PM EDT, Key ID 21ea45ab2f86d6a1 Source RPM : epel-release-8-7.el8.src.rpm Build Date : Thursday 10 October 2019 12:16:18 PM EDT Build Host : buildvm-04.phx2.fedoraproject.org Relocations : (not relocatable) Packager : Fedora Project Vendor : Fedora Project URL : http://download.fedoraproject.org/pub/epel Bug URL : https://bugz.fedoraproject.org/epel-release Summary : Extra Packages for Enterprise Linux repository configuration Description : This package contains the Extra Packages for Enterprise Linux (EPEL) repository GPG key as well as configuration for yum.
Sie können dieses Paket mit dem folgenden Befehl installieren:
rpm -ivh epel-release-latest-8.noarch.rpm
Ausgabe:
warning: epel-release-latest-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY Verifying... ################################# [100%] Preparing... ################################# [100%] Updating / installing... 1:epel-release-8-7.el8 ################################# [100%]
Sie können jedes RPM-Paket ohne Abhängigkeiten mit dem folgenden Befehl installieren:
rpm -ivh --nodeps epel-release-latest-8.noarch.rpm
Führen Sie den folgenden Befehl aus, um das installierte RPM-Paket zu aktualisieren:
rpm -Uvh epel-release-latest-8.noarch.rpm
Ausgabe:
warning: epel-release-latest-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY Verifying... ################################# [100%] Preparing... ################################# [100%] package epel-release-8-7.el8.noarch is already installed
Um das installierte RPM-Paket zu entfernen, führen Sie den folgenden Befehl aus:
rpm -ev epel-release
Ausgabe:
Preparing packages... epel-release-8-7.el8.noarch
Paketinformationen mit RPM anzeigen
Führen Sie den folgenden Befehl aus, um die Detailinformationen eines beliebigen Pakets anzuzeigen:
rpm -ql epel-release
Ausgabe:
/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 /etc/yum.repos.d/epel-playground.repo /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel.repo /usr/lib/systemd/system-preset/90-epel.preset /usr/share/doc/epel-release /usr/share/doc/epel-release/GPL /usr/share/doc/epel-release/README-epel-8-packaging.md
Sie können die Konfigurationsdateien jedes Pakets mit dem folgenden Befehl finden:
rpm -qc httpd
Ausgabe:
/etc/httpd/conf.d/autoindex.conf /etc/httpd/conf.d/userdir.conf /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.modules.d/00-base.conf /etc/httpd/conf.modules.d/00-dav.conf /etc/httpd/conf.modules.d/00-lua.conf /etc/httpd/conf.modules.d/00-mpm.conf /etc/httpd/conf.modules.d/00-optional.conf /etc/httpd/conf.modules.d/00-proxy.conf /etc/httpd/conf.modules.d/00-systemd.conf /etc/httpd/conf.modules.d/01-cgi.conf /etc/httpd/conf/httpd.conf /etc/httpd/conf/magic /etc/logrotate.d/httpd /etc/sysconfig/htcacheclean
Mit dem folgenden Befehl können Sie weitere Informationen zu jedem Paket anzeigen:
rpm -qi httpd
Ausgabe:
Name : httpd Version : 2.4.37 Release : 16.module_el8.1.0+256+ae790463 Architecture: x86_64 Install Date: Thursday 23 January 2020 11:48:36 PM EST Group : System Environment/Daemons Size : 5611291 License : ASL 2.0 Signature : RSA/SHA256, Monday 23 December 2019 05:22:02 PM EST, Key ID 05b555b38483c65d Source RPM : httpd-2.4.37-16.module_el8.1.0+256+ae790463.src.rpm Build Date : Monday 23 December 2019 03:46:30 PM EST Build Host : x86-02.mbox.centos.org Relocations : (not relocatable) Packager : CentOS Buildsys <[email protected]> Vendor : CentOS URL : https://httpd.apache.org/ Summary : Apache HTTP Server Description : The Apache HTTP Server is a powerful, efficient, and extensible web server.
Um das Paket aus dem Verzeichnis oder der Datei zu finden, verwenden Sie den folgenden Befehl:
rpm -qf /etc/NetworkManager/
Ausgabe:
NetworkManager-1.14.0-14.el8.x86_64 dhcp-client-4.3.6-30.el8.x86_64
Paket mit RPM verifizieren
Um ein Paket vor der Installation zu überprüfen, verwenden Sie den folgenden Befehl:
rpm -Vp epel-release-latest-8.noarch.rpm
Ausgabe:
warning: epel-release-latest-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY
Führen Sie den folgenden Befehl aus, um alle installierten RPM-Pakete zu überprüfen:
rpm -Va
Ausgabe:
.......T. c /etc/kdump.conf .M....... g /var/lib/plymouth/boot-duration .M....... g /var/cache/dnf/packages.db .....UG.. g /var/lib/sss/mc/group .....UG.. g /var/lib/sss/mc/initgroups .....UG.. g /var/lib/sss/mc/passwd .M....... c /etc/rc.d/rc.local .M....... c /etc/machine-id
Informationen zum installierten Paket mit RPM prüfen
Überprüfen Sie mit dem folgenden Befehl, ob ein Paket installiert ist oder nicht:
Führen Sie den folgenden Befehl aus, um das installierte Paket zu überprüfen:
rpm -q epel-release
Wenn das angegebene Paket installiert ist, sollten Sie die folgende Ausgabe sehen:
epel-release-8-7.el8.noarch
Führen Sie den folgenden Befehl aus, um das nicht installierte Paket zu überprüfen:
rpm -q mysql-server
Sie sollten die folgende Ausgabe erhalten:
package mysql-server is not installed
Führen Sie den folgenden Befehl aus, um alle auf Ihrem System installierten Pakete aufzulisten:
rpm -qa
Ausgabe:
dos2unix-7.4.0-3.el8.x86_64 platform-python-pip-9.0.3-13.el8.noarch geolite2-country-20180605-1.el8.noarch symlinks-1.4-19.el8.x86_64 python3-six-1.11.0-8.el8.noarch fontpackages-filesystem-1.44-22.el8.noarch rootfiles-8.1-22.el8.noarch polkit-0.115-6.el8.x86_64 xkeyboard-config-2.24-3.el8.noarch iwl6050-firmware-41.28.5.1-92.el8.1.noarch libmodulemd1-1.8.0-5.el8.x86_64 pkgconf-m4-1.4.2-1.el8.noarch iwl5000-firmware-8.83.5.1_1-92.el8.1.noarch samba-common-4.9.1-8.el8.noarch kbd-misc-2.0.4-8.el8.noarch
Führen Sie den folgenden Befehl aus, um alle installierten Pakete nach Name und Größe aufzulisten:
rpm -qa --queryformat '%{name} %{size}\n'
Ausgabe:
dos2unix 682042 platform-python-pip 7746190 geolite2-country 3424334 symlinks 19682 python3-six 100282 fontpackages-filesystem 0 rootfiles 599
Manuelle Seite eines beliebigen Pakets mit RPM finden
Sie können Folgendes ausführen, um die Liste der Dokumentation für ein Paket anzuzeigen, das eine Datei oder einen Ordner besitzt.
rpm -qdf /etc/NetworkManager/
Ausgabe:
/usr/share/doc/NetworkManager/AUTHORS /usr/share/doc/NetworkManager/CONTRIBUTING /usr/share/doc/NetworkManager/NEWS /usr/share/doc/NetworkManager/README /usr/share/doc/NetworkManager/TODO /usr/share/doc/NetworkManager/examples/server.conf /usr/share/man/man1/nm-online.1.gz /usr/share/man/man1/nmcli.1.gz /usr/share/man/man5/NetworkManager.conf.5.gz /usr/share/man/man5/nm-settings-ifcfg-rh.5.gz /usr/share/man/man5/nm-settings-keyfile.5.gz /usr/share/man/man5/nm-settings.5.gz /usr/share/man/man5/nm-system-settings.conf.5.gz /usr/share/man/man7/nmcli-examples.7.gz /usr/share/man/man8/NetworkManager.8.gz /usr/share/doc/dhcp-client/README.dhclient.d /usr/share/doc/dhcp-client/dhclient-enter-hooks /usr/share/doc/dhcp-client/dhclient.conf.example /usr/share/doc/dhcp-client/dhclient6.conf.example /usr/share/man/man5/dhclient.conf.5.gz /usr/share/man/man5/dhclient.leases.5.gz /usr/share/man/man8/dhclient-script.8.gz /usr/share/man/man8/dhclient.8.gz
Schlussfolgerung
Im obigen Tutorial haben wir gelernt, wie Pakete mit RPM auf dem Betriebssystem CentOS 8 verwaltet werden. Ich hoffe, dies hilft Ihnen bei der Durchführung alltäglicher Aufgaben.