RPM sta per "Redhat Package Manager" è uno strumento di gestione dei pacchetti da riga di comando per il sistema operativo basato su RHEL/CentOS. È possibile installare, disinstallare, aggiornare, interrogare e verificare il pacchetto utilizzando il comando RPM. Questo strumento funziona solo con i pacchetti costruiti in formato .rpm. Il comando RPM può installare solo il pacchetto specificato, non può installare le dipendenze richieste per quel pacchetto.
In questo tutorial, ti mostreremo come utilizzare il gestore di pacchetti RPM con alcuni esempi. Se stai cercando una guida sul nuovo gestore di pacchetti RedHat DNF, dai un'occhiata qui: CentOS 8 Package Management con DNF sulla riga di comando
Prerequisiti
- Un server che esegue CentOS, RHEL o Fedora.
- Sul tuo server è configurata una password di root.
Sintassi di base
La sintassi di base del comando RPM è mostrata di seguito:
rpm [OPTION] [PACKAGENAME]
Puoi elencare tutte le opzioni disponibili con il comando RPM usando il seguente comando:
rpm --help
Dovresti vedere la seguente schermata:
Installazione, aggiornamento e rimozione del pacchetto con RPM
Prima di installare qualsiasi pacchetto RPM, puoi elencare le dipendenze per quel pacchetto con il seguente comando:
rpm -qpR epel-release-latest-8.noarch.rpm
Uscita:
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
Puoi anche ottenere le informazioni di quel pacchetto con il seguente comando:
rpm -qip epel-release-latest-8.noarch.rpm
Uscita:
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.
Puoi installare questo pacchetto usando il seguente comando:
rpm -ivh epel-release-latest-8.noarch.rpm
Uscita:
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%]
Puoi installare qualsiasi pacchetto RPM senza dipendenze utilizzando il comando seguente:
rpm -ivh --nodeps epel-release-latest-8.noarch.rpm
Per aggiornare il pacchetto RPM installato, eseguire il comando seguente:
rpm -Uvh epel-release-latest-8.noarch.rpm
Uscita:
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
Per rimuovere il pacchetto RPM installato, eseguire il comando seguente:
rpm -ev epel-release
Uscita:
Preparing packages... epel-release-8-7.el8.noarch
Visualizza informazioni pacchetto con RPM
Per visualizzare le informazioni dettagliate di qualsiasi pacchetto, eseguire il comando seguente:
rpm -ql epel-release
Uscita:
/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
Puoi trovare i file di configurazione di qualsiasi pacchetto con il seguente comando:
rpm -qc httpd
Uscita:
/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
Puoi visualizzare maggiori informazioni su qualsiasi pacchetto con il seguente comando:
rpm -qi httpd
Uscita:
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.
Per trovare il pacchetto dalla directory o dal file con il seguente comando:
rpm -qf /etc/NetworkManager/
Uscita:
NetworkManager-1.14.0-14.el8.x86_64 dhcp-client-4.3.6-30.el8.x86_64
Verifica pacchetto con RPM
Per verificare qualsiasi pacchetto prima di installarlo, utilizzare il seguente comando:
rpm -Vp epel-release-latest-8.noarch.rpm
Uscita:
warning: epel-release-latest-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY
Per verificare tutti i pacchetti rpm installati, eseguire il comando seguente:
rpm -Va
Uscita:
.......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
Controlla le informazioni sul pacchetto installato con RPM
Per verificare qualsiasi pacchetto sia installato o meno con il seguente comando:
Per verificare il pacchetto installato, esegui il seguente comando:
rpm -q epel-release
Se il pacchetto specificato è installato, dovresti vedere il seguente output:
epel-release-8-7.el8.noarch
Per verificare il pacchetto che non è installato, eseguire il comando seguente:
rpm -q mysql-server
Dovresti ottenere il seguente output:
package mysql-server is not installed
Per elencare tutti i pacchetti installati nel tuo sistema, esegui il comando seguente:
rpm -qa
Uscita:
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
Per elencare tutti i pacchetti installati per nome e dimensione, esegui il comando seguente:
rpm -qa --queryformat '%{name} %{size}\n'
Uscita:
dos2unix 682042 platform-python-pip 7746190 geolite2-country 3424334 symlinks 19682 python3-six 100282 fontpackages-filesystem 0 rootfiles 599
Trova la pagina manuale di qualsiasi pacchetto con RPM
Puoi eseguire quanto segue per conoscere l'elenco della documentazione per un pacchetto che possiede un file o una cartella.
rpm -qdf /etc/NetworkManager/
Uscita:
/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
Conclusione
Nel tutorial sopra, abbiamo imparato come gestire i pacchetti con RPM sul sistema operativo CentOS 8. Spero che questo ti aiuterà a svolgere le attività quotidiane.