
RPM (Redhat Package Manager) ist ein Paketverwaltungsprogramm für die Befehlszeile, das zum Installieren, Deinstallieren, Aktualisieren, Abfragen und Überprüfen von Softwarepaketen verwendet wird.
In diesem Tutorial werde ich einige der häufigsten Linux-RPM-Befehle für einen Systemadministrator erklären. Einige der RPM-basierten Linux-Distributionen sind Redhat, Centos, Fedora und OpenSuse. Yum und DNF sind Frontends für das RPM-Management, die mehr Funktionen haben und die Einschränkungen überwinden könnten, die sie haben.
So erhalten Sie RPM-Pakete
Es gibt mehrere Methoden, um RPM-Pakete zu erhalten, wie unten gezeigt.
- Software-CD/DVD
- CentOS-Mirror
- RedHat (Konto erforderlich)
- Alle offenen Repository-Websites
Grundlegende Modi für RPM-Befehl
- Installieren:Es wird verwendet, um ein beliebiges RPM-Paket zu installieren.
- Entfernen :Wird verwendet, um RPM-Pakete zu löschen, zu entfernen oder zu deinstallieren.
- Upgrade :Es wird verwendet, um das vorhandene RPM-Paket zu aktualisieren.
- Abfrage :Wird verwendet, um ein beliebiges RPM-Paket abzufragen.
- Verify :Wird verwendet, um RPM-Pakete zu verifizieren.
Beispiele für RPM-Pakete
GeoIP-Anwendung GeoIP-1.5.0-11.el7.x86_64.rpm
ist eine RPM-Paketbibliothek für die Zuordnung von Land/Stadt/Organisation zu IP-Adressen oder Hostnamen. GeoIP
ist der Paketname, Version ist 1.5.0-11.el7
, Release ist 7
und Architektur .x86_64
.
Installieren
1. Informationen zum RPM-Paket erhalten, ohne es zu installieren
Nachdem wir ein Paket heruntergeladen haben und vor der Installation die Informationen eines Pakets wissen möchten. Wir können -qip
verwenden Option (Infopaket abfragen), um die Informationen eines Pakets aufzulisten.
$ sudo rpm -qip GeoIP-1.5.0-11.el7.x86_64.rpm
output
Name : GeoIP
Version : 1.5.0
Release : 11.el7
Architecture: x86_64
Install Date: (not installed)
Group : Development/Libraries
Size : 2905020
License : LGPLv2+ and GPLv2+ and CC-BY-SA
Signature : RSA/SHA256, Sun 20 Nov 2016 05:49:19 PM UTC, Key ID 24c6a8a7f4a80eb5
Source RPM : GeoIP-1.5.0-11.el7.src.rpm
Build Date : Sat 05 Nov 2016 08:29:17 PM UTC
Build Host : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem
Vendor : CentOS
URL : http://www.maxmind.com/app/c
Summary : Library for country/city/organization to IP address or hostname mapping
Description :
GeoIP is a C library that enables the user to find the country that any IP
address or hostname originates from. It uses a file based database that is
accurate as of June 2007 and can optionally be updated on a weekly
basis by installing the GeoIP-update package. This database simply contains IP
blocks as keys, and countries as values. This database should be more complete
and accurate than using reverse DNS lookups.
This package includes GeoLite data created by MaxMind, available from
http://www.maxmind.com/
2. So installieren Sie das RPM-Paket
Wir können -ivh
verwenden Parameter, um ein bestimmtes Paket wie unten gezeigt zu installieren.
$ sudo rpm -ivh GeoIP-1.5.0-11.el7.x86_64.rpm
Output
Preparing... ################################# [100%]
package GeoIP-1.5.0-11.el7.x86_64 is already installed
3. So überprüfen Sie ein installiertes RPM-Paket
Wir können -q
verwenden Option mit Paketnamen, es wird angezeigt, ob ein RPM-Paket installiert ist oder nicht.
$ sudo rpm -q GeoIP
output
GeoIP-1.5.0-11.el7.x86_64
4. So listen Sie alle Dateien für ein bestimmtes installiertes RPM-Paket auf
Wir können alle Dateien eines installierten RPM-Pakets auflisten, indem wir den -ql
verwenden Option mit rpm-Befehl.
$ sudo rpm -ql GeoIP
output
/etc/GeoIP.conf
/etc/GeoIP.conf.default
/usr/bin/geoiplookup
/usr/bin/geoiplookup6
/usr/bin/geoipupdate
/usr/lib64/libGeoIP.so.1
/usr/lib64/libGeoIP.so.1.5.0
/usr/lib64/libGeoIPUpdate.so.0
/usr/lib64/libGeoIPUpdate.so.0.0.0
/usr/share/GeoIP
/usr/share/GeoIP/GeoIP-initial.dat
/usr/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIPASNum.dat
/usr/share/GeoIP/GeoIPASNumv6.dat
/usr/share/GeoIP/GeoIPCity.dat
/usr/share/GeoIP/GeoIPCityv6.dat
/usr/share/GeoIP/GeoIPCountry.dat
/usr/share/GeoIP/GeoIPCountryv6.dat
/usr/share/GeoIP/GeoIPv6-initial.dat
...
5. So listen Sie kürzlich installierte RPM-Pakete auf
Wir können -qa
verwenden Option mit --last
, Es listet alle kürzlich installierten RPM-Pakete auf.
$ sudo rpm -qa --last
output
GeoIP-1.5.0-11.el7.x86_64 Sat 01 Sep 2018 11:34:09 AM UTC
wget-1.14-15.el7_4.1.x86_64 Sun 26 Aug 2018 03:21:02 PM UTC
iwl7265-firmware-22.0.7.0-62.2.el7_5.noarch Thu 16 Aug 2018 02:10:18 PM UTC
libgomp-4.8.5-28.el7_5.1.x86_64 Thu 16 Aug 2018 02:10:15 PM UTC
iwl2030-firmware-18.168.6.1-62.2.el7_5.noarch Thu 16 Aug 2018 02:10:15 PM UTC
iptables-1.4.21-24.1.el7_5.x86_64 Thu 16 Aug 2018 02:10:15 PM UTC
yum-plugin-fastestmirror-1.1.31-46.el7_5.noarch Thu 16 Aug 2018 02:10:14 PM UTC
iwl6000-firmware-9.221.4.1-62.2.el7_5.noarch Thu 16 Aug 2018 02:10:14 PM UTC
iwl4965-firmware-228.61.2.24-62.2.el7_5.noarch Thu 16 Aug 2018 02:10:14 PM UTC
iwl105-firmware-18.168.6.1-62.2.el7_5.noarch Thu 16 Aug 2018 02:10:14 PM UTC
iwl100-firmware-39.31.5.1-62.2.el7_5.noarch Thu 16 Aug 2018 02:10:13 PM UTC
iwl1000-firmware-39.31.5.1-62.2.el7_5.noarch Thu 16 Aug 2018 02:10:13 PM UTC
ca-certificates-2018.2.22-70.0.el7_5.noarch Thu 16 Aug 2018 02:10:13 PM UTC
iwl6000g2b-firmware-17.168.5.2-62.2.el7_5.noarch Thu 16 Aug 2018 02:10:12 PM UTC
...
6. So installieren Sie das RPM-Paket ohne Abhängigkeiten
Wir können -ivh
verwenden Parameter mit --nodeps
steht für keine Abhängigkeitsprüfung, um ein bestimmtes Paket ohne Abhängigkeiten zu installieren, wie unten gezeigt.
$ sudo rpm -ivh --nodeps GeoIP-1.5.0-11.el7.x86_64.rpm
Output
Preparing... ################################# [100%]
package GeoIP-1.5.0-11.el7.x86_64 is already installed
7. So ersetzen Sie das installierte RPM-Paket
Wir können -ivh --replacepkgs
verwenden Parameter, um ein bestimmtes installiertes Paket wie unten gezeigt zu ersetzen.
$ sudo rpm -ivh --replacepkgs GeoIP-1.5.0-11.el7.x86_64.rpm
Output
Preparing... ################################# [100%]
Updating / installing...
1:GeoIP-1.5.0-11.el7 ################################# [100%]
Entfernen
8. So deinstallieren Sie das RPM-Paket
Wir können -e
verwenden Parameter, um ein bestimmtes Paket zu deinstallieren, das ohne Abhängigkeiten installiert wurde (Abhängigkeiten nicht überprüfen), wie unten gezeigt.
$ sudo rpm -e --nodeps GeoIP
Geben Sie nun den folgenden Befehl ein, um sicherzustellen, dass GeoIP nicht installiert ist.
$ sudo rpm -q GeoIP
Output
package GeoIP is not installed
Upgrade
9. So aktualisieren Sie das installierte RPM-Paket
Wir können -Uvh
verwenden Parameter, um ein bestimmtes installiertes Paket wie unten gezeigt zu aktualisieren.
$ sudo rpm -Uvh GeoIP-1.5.0-11.el7.x86_64.rpm
Output
Preparing... ################################# [100%]
package GeoIP-1.5.0-11.el7.x86_64 is already installed
Abfrage
10. Wie man alle installierten Pakete abfragt
Wir können -a
verwenden Parameter zusammen mit q
um alle installierten Pakete auf dem Server wie unten gezeigt abzufragen.
$ sudo rpm -qa
Output
python-firewall-0.4.4.4-14.el7.noarch
ncurses-base-5.9-14.20130511.el7_4.noarch
plymouth-0.8.9-0.31.20140113.el7.centos.x86_64
kbd-misc-1.15.5-13.el7.noarch
vim-common-7.4.160-4.el7.x86_64
bash-4.2.46-30.el7.x86_64
dmidecode-3.0-5.el7.x86_64
filesystem-3.2-25.el7.x86_64
kbd-1.15.5-13.el7.x86_64
vim-enhanced-7.4.160-4.el7.x86_64
firewalld-0.4.4.4-14.el7.noarch
....
11. Wie man ein bestimmtes Paket abfragt
Wir können grep
verwenden Befehl, um nach einem bestimmten Paket zu suchen, installiert ist oder nicht, wie unten gezeigt.
$ sudo rpm -qa | grep GeoIP
Output
GeoIP-1.5.0-11.el7.x86_64
12. Wie man eine Datei abfragt, die zu welchem RPM-Paket gehört
In Beispiel Nummer 9 geben wir den Befehl ein, um alle Dateien eines installierten RPM-Pakets aufzulisten. Jetzt wollen wir /usr/lib64/libGeoIP.so.1.5.0
wissen Datei gehört zu welchem RPM-Paket.
$ sudo rpm -qf /usr/lib64/libGeoIP.so.1.5.0
output
GeoIP-1.5.0-11.el7.x86_64
Bestätigen
13. So erhalten Sie Informationen zu einem bestimmten Paket
Wir können -i
verwenden Parameter zusammen mit q
um Informationen für ein bestimmtes Paket wie unten gezeigt zu erhalten.
$ sudo rpm -qi GeoIP
Output
Name : GeoIP
Version : 1.5.0
Release : 11.el7
Architecture: x86_64
Install Date: Thu 16 Aug 2018 02:04:09 PM UTC
Group : Development/Libraries
Size : 2905020
License : LGPLv2+ and GPLv2+ and CC-BY-SA
Signature : RSA/SHA256, Sun 20 Nov 2016 05:49:19 PM UTC, Key ID 24c6a8a7f4a80eb5
Source RPM : GeoIP-1.5.0-11.el7.src.rpm
Build Date : Sat 05 Nov 2016 08:29:17 PM UTC
Build Host : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem
Vendor : CentOS
URL : http://www.maxmind.com/app/c
Summary : Library for country/city/organization to IP address or hostname mapping
Description :
GeoIP is a C library that enables the user to find the country that any IP
address or hostname originates from. It uses a file based database that is
accurate as of June 2007 and can optionally be updated on a weekly
basis by installing the GeoIP-update package. This database simply contains IP
blocks as keys, and countries as values. This database should be more complete
and accurate than using reverse DNS lookups.
This package includes GeoLite data created by MaxMind, available from http://www.maxmind.com/
14. So verifizieren Sie ein RPM-Paket
Wir können ein Paket verifizieren, indem wir die Informationen der installierten Dateien des Pakets mit der RPM-Datenbank vergleichen, indem wir -Vp
verwenden Option (Paket überprüfen).
$ sudo rpm -Vp GeoIP-1.5.0-11.el7.x86_64.rpm
15. So überprüfen Sie alle RPM-Pakete
Wir können alle installierten RPM-Pakete überprüfen, indem wir -Va
verwenden Option (alle bestätigen).
$ sudo rpm -Va
output
S.5....T. c /etc/sysconfig/authconfig
S.5....T. c /etc/yum.repos.d/CentOS-Base.repo
.M....... c /etc/machine-id
.M....... g /etc/udev/hwdb.bin
.M....... g /var/lib/systemd/random-seed
.M....... c /etc/shadow
S.5....T. c /etc/ssh/sshd_config
.M....... c /etc/audit/rules.d/audit.rules
S.5....T. c /etc/NetworkManager/NetworkManager.conf
....L.... c /etc/pam.d/fingerprint-auth
....L.... c /etc/pam.d/password-auth
....L.... c /etc/pam.d/postlogin
...
Lesen Sie auch:
- Wie man Pakete herunterlädt, ohne sie auf RPM-Distributionen zu installieren
- 21 DNF-Befehle zum Verwalten von RPM-basierten Linux-Distributionen
- Abfragen von Paketen mit dem Linux-RPM-Befehl
Ein RPM-Paket besteht aus Programmdateien, Konfigurationsdateien und einer Liste kompilierter Softwareprogramme und Bibliotheken, die von den Paketen (Abhängigkeiten) benötigt werden. Dieses RPM-Dienstprogramm funktioniert nur mit Paketen, die im '.rpm'-Format erstellt wurden.