20 Esempi pratici di comandi RPM in Linux

RPM (Red Hat Package Manager) è un’utilità di gestione dei pacchetti predefinita open-source e ampiamente utilizzata per i sistemi basati su Red Hat come CentOS Fedora, Rocky e Alma Linux.

Lo strumento di gestione dei pacchetti rpm consente agli amministratori di sistema e agli utenti di installare, aggiornare, disinstallare, interrogare, verificare e gestire pacchetti software sui sistemi operativi Unix/Linux, che in precedenza erano conosciuti come file .rpm, contenenti programmi software compilati e librerie necessarie dai pacchetti.

Questo articolo fornisce 20 utili esempi di comandi RPM che potrebbero esserti utili. Con l’aiuto di questi comandi RPM, puoi gestire l’installazione, l’aggiornamento e la rimozione dei pacchetti sui tuoi sistemi Linux.

Fatti su RPM

Ecco alcuni fatti su RPM (Red Hat Package Manager):

  • RPM è liberamente disponibile e rilasciato sotto la Licenza Pubblica Generale (GPL).
  • RPM mantiene un database di tutti i pacchetti installati, memorizzando queste informazioni nella directory /var/lib/rpm.
  • RPM funge da metodo principale per l’installazione dei pacchetti sui sistemi Linux. Se i pacchetti sono stati installati utilizzando il codice sorgente, RPM non li gestisce.
  • RPM opera con file .rpm, contenenti informazioni vitali sul pacchetto come la sua identità, origine, dipendenze, dettagli sulla versione e altro ancora.

Modalità di base per il comando RPM

Ecco le modalità principali per il comando RPM:

  • Install – Il comando rpm -i installa un nuovo pacchetto nel sistema.
  • Aggiornamento – Il comando rpm -U aggiorna un pacchetto esistente a una versione più recente.
  • Rimuovi – Il comando rpm -e disinstalla o rimuove un pacchetto dal sistema.
  • Interroga – Il comando rpm -q interroga il database RPM per informazioni sui pacchetti installati.
  • Verifica – Il comando rpm -V verifica l’integrità dei file del pacchetto installati.
  • Fresco – Il comando rpm -F aggiorna o installa un pacchetto solo se è già installato.
  • Ricostruisci il Database – Il comando rpm --rebuilddb ricostruisce il database RPM, risolvendo problemi di corruzione del database.
  • Importa chiave GPG – Il comando rpm --import importa una chiave GPG utilizzata per la verifica della firma del pacchetto.
  • Interroga Tutto – Il comando rpm -qa elenca tutti i pacchetti installati nel sistema.
  • Interroga File – Il comando rpm -ql elenca tutti i file installati da un pacchetto specifico.
  • Interroga Documentazione – Il comando rpm -qd elenca i file di documentazione forniti da un pacchetto.
  • Interroga Dipendenze – Il comando rpm -qR elenca le dipendenze in fase di esecuzione per un pacchetto.
  • Query Provides – Il comando rpm -q --provides elenca le capacità fornite da un pacchetto.
  • Query Requires – Il comando rpm -q --requires elenca le dipendenze richieste da un pacchetto.

Dove trovare i pacchetti RPM

Puoi trovare i pacchetti RPM in diversi posti, a seconda della tua distribuzione Linux. Ecco alcune posizioni comuni in cui puoi trovare e scaricare tutti i pacchetti RPM.

Ricorda che devi essere un utente root quando installi pacchetti in Linux, con i privilegi di root puoi gestire i comandi rpm con le loro opzioni appropriate.

1. Come Controllare la Firma del Pacchetto RPM

Controlla sempre la firma PGP dei pacchetti prima di installarli sui tuoi sistemi Linux e assicurati che la loro integrità e origine siano OK.

Usa il seguente comando con l’opzione --checksig (controlla la firma) per controllare la firma di un pacchetto chiamato hardinfo.

rpm --checksig hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm: digests OK

2. Come Installare un Pacchetto RPM

Per installare un pacchetto software RPM, usa il seguente comando con l’opzione -ivh, che installerà il pacchetto rpm chiamato hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm su un sistema Linux.

rpm -ivh hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:hardinfo-2.0.11-1                ################################# [100%]

Spieghiamo i componenti del comando sopra:

  • -i : installa un pacchetto
  • -v : verbose per una visualizzazione più gradevole
  • -h: stampa segni di hash (#) per mostrare il progresso dell’installazione.

3. Come Controllare le Dipendenze del Pacchetto RPM Prima dell’Installazione

Supponiamo che tu voglia fare un controllo delle dipendenze prima di installare o aggiornare un pacchetto. Ad esempio, utilizza il seguente comando per controllare le dipendenze del pacchetto hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm.

Il comando interroga e visualizza le dipendenze di runtime richieste dal pacchetto “hardinfo“, il che aiuta a identificare e assicurarsi che tutte le dipendenze necessarie siano soddisfatte prima di installare il pacchetto.

rpm -qpR hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm
 
libX11.so.6()(64bit)
libatk-1.0.so.0()(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.33)(64bit)
libc.so.6(GLIBC_2.34)(64bit)
libc.so.6(GLIBC_2.38)(64bit)
libc.so.6(GLIBC_2.7)(64bit)
libcairo-gobject.so.2()(64bit)
libcairo.so.2()(64bit)
...

Spariamo a pezzi i componenti del comando sopra:

  • -q : Interroga un pacchetto.
  • -p : Elenca le capacità che questo pacchetto fornisce.
  • -R : Elenca le capacità su cui questo pacchetto dipende.

4. Come Installare il Pacchetto RPM Senza Dipendenze

Per installare un pacchetto rpm senza dipendenze, puoi utilizzare l’opzione –nodeps, che installerà forzatamente un pacchetto RPM senza controllare o risolvere le dipendenze.

rpm -ivh --nodeps hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

Il comando sopra installa forzatamente il pacchetto rpm ignorando gli errori delle dipendenze, ma se quegli file di dipendenza mancano, il programma non funzionerà affatto fino a quando non li installerai.

5. Come Controllare il Pacchetto RPM Installato

Per controllare un pacchetto rpm installato, puoi utilizzare l’opzione -q, che interroga e visualizza informazioni sulla versione installata del pacchetto.

rpm -q hardinfo

hardinfo-2.0.11-1.x86_64

6. Come Trovare Dove i File RPM Sono Installati

Per visualizzare tutti i file di un pacchetto rpm installato, utilizzare il -ql (query list) con il comando rpm.

rpm -ql hardinfo

/usr/bin/hardinfo2
/usr/lib/.build-id
/usr/lib/.build-id/3a
/usr/lib/.build-id/53
/usr/lib/.build-id/7c
/usr/lib/.build-id/ba
/usr/lib/.build-id/e0
/usr/lib64/hardinfo2
/usr/lib64/hardinfo2/modules
/usr/lib64/hardinfo2/modules/benchmark.so
/usr/lib64/hardinfo2/modules/computer.so
/usr/lib64/hardinfo2/modules/devices.so
/usr/lib64/hardinfo2/modules/network.so
...

7. Come elencare i pacchetti RPM appena installati

Utilizzare il seguente comando rpm con -qa (query all) opzione, elencherà tutti i pacchetti rpm appena installati.

rpm -qa --last


hardinfo-2.0.11-1.x86_64                      Mon 04 Mar 2024 01:32:14 PM IST
pipewire-pulseaudio-1.0.3-1.fc39.x86_64       Mon 04 Mar 2024 01:32:02 PM IST
pipewire-jack-audio-connection-kit-1.0.3-1.fc39.x86_64 Mon 04 Mar 2024 01:32:02 PM IST
pipewire-alsa-1.0.3-1.fc39.x86_64             Mon 04 Mar 2024 01:32:02 PM IST
libsoup-devel-2.74.3-3.fc39.x86_64            Mon 04 Mar 2024 01:32:02 PM IST
json-glib-devel-1.8.0-1.fc39.x86_64           Mon 04 Mar 2024 01:32:02 PM IST
gtk3-devel-3.24.41-1.fc39.x86_64              Mon 04 Mar 2024 01:32:02 PM IST
xdg-desktop-portal-gtk-1.15.1-1.fc39.x86_64   Mon 04 Mar 2024 01:32:01 PM IST
xdg-desktop-portal-1.18.2-1.fc39.x86_64       Mon 04 Mar 2024 01:32:01 PM IST
libcanberra-gtk3-0.30-32.fc39.x86_64          Mon 04 Mar 2024 01:32:01 PM IST
gtk3-3.24.41-1.fc39.x86_64                    Mon 04 Mar 2024 01:32:01 PM IST
...

8. Come elencare tutti i pacchetti RPM installati

Digitare il seguente comando per stampare tutti i nomi dei pacchetti installati nel sistema Linux.

rpm -qa

fonts-filesystem-2.0.5-12.fc39.noarch
libreport-filesystem-2.17.11-3.fc39.noarch
hunspell-filesystem-1.7.2-5.fc39.x86_64
abattis-cantarell-vf-fonts-0.301-10.fc39.noarch
fedora-gpg-keys-39-1.noarch
fedora-repos-39-1.noarch
setup-2.14.4-1.fc39.noarch
filesystem-3.18-6.fc39.x86_64
basesystem-11-18.fc39.noarch
default-fonts-core-sans-4.0-9.fc39.noarch
langpacks-fonts-en-4.0-9.fc39.noarch
...

9. Come aggiornare un pacchetto RPM

Se vogliamo aggiornare qualsiasi pacchetto RPM, l’opzione “–U” (upgrade) verrà utilizzata. Uno dei vantaggi principali di utilizzare questa opzione è che non solo aggiorna la versione più recente di qualsiasi pacchetto, ma mantiene anche il backup del pacchetto precedente in modo che, nel caso in cui il pacchetto aggiornato non funzioni, il pacchetto installato in precedenza possa essere utilizzato di nuovo.

rpm -Uvh hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

10. Come rimuovere un pacchetto RPM

Per disinstallare un pacchetto RPM, ad esempio, utilizziamo il nome del pacchetto hardinfo, non il nome originale del pacchetto hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm. L’opzione -e (erase) viene utilizzata per rimuovere il pacchetto.

rpm -evv hardinfo

11. Come rimuovere un pacchetto RPM senza considerare le dipendenze

L’opzione --nodeps (non controllare le dipendenze) rimuove forzatamente il pacchetto rpm dal sistema. Ma tieni presente che la rimozione di un pacchetto specifico potrebbe interrompere altri applicativi funzionanti.

rpm -ev --nodeps hardinfo

12. Come trovare il pacchetto RPM di un file specifico

Hai una lista di file e vorresti scoprire a quale pacchetto appartengono questi file. Ad esempio, il seguente comando con l’opzione -qf (query file) ti mostrerà un file /usr/bin/htpasswd che appartiene al pacchetto httpd-tools-2.4.58-1.fc39.x86_64.

rpm -qf /usr/bin/htpasswd

httpd-tools-2.4.58-1.fc39.x86_64

13. Come interrogare le informazioni del pacchetto RPM installato

Immaginiamo tu abbia installato un pacchetto rpm e voglia conoscere le informazioni su di esso. La seguente opzione -qi (query info) stamperà le informazioni disponibili del pacchetto installato.

rpm -qi hardinfo

Name        : hardinfo
Version     : 2.0.11
Release     : 1
Architecture: x86_64
Install Date: Mon 04 Mar 2024 01:32:14 PM IST
Group       : unknown
Size        : 5174404
License     : GPL2+
Signature   : (none)
Source RPM  : hardinfo-2.0.11-1.src.rpm
Build Date  : Sat 02 Mar 2024 06:37:42 AM IST
Build Host  : fedora.bigbear.dk
Relocations : /usr 
Vendor      : Humanity
URL         : https://www.hardinfo2.org
Summary     : hardinfo2 built using CMake
Description :
Hardinfo2 is a small application that displays information about your hardware and operating system.  It has online benchmarking to check your machine performance against other machines.

14. Ottenere le informazioni del pacchetto RPM prima dell’installazione

Hai scaricato un pacchetto da Internet e desideri conoscere le informazioni di un pacchetto prima di installarlo. Ad esempio, l’opzione seguente -qip (query info package) stamperà le informazioni di un pacchetto sqlbuddy.

rpm -qip sqlbuddy

Name        : sqlbuddy                     Relocations: (not relocatable)
Version     : 1.3.3                        Vendor: (none)
Release     : 1                            Build Date: Wed 02 Nov 2011 11:01:21 PM BDT
Install Date: (not installed)              Build Host: rpm.bar.baz
Group       : Applications/Internet        Source RPM: sqlbuddy-1.3.3-1.src.rpm
Size        : 1155804                      License: MIT
Signature   : (none)
Packager    : Erik M Jacobs
URL         : http://www.sqlbuddy.com/
Summary     : SQL Buddy â Web based MySQL administration
Description : SQLBuddy is a PHP script that allows for web-based MySQL administration.

15. Come interrogare la documentazione del pacchetto RPM installato

Per ottenere l’elenco della documentazione disponibile di un pacchetto installato, utilizza il seguente comando con l’opzione -qdf (query document file) che visualizzerà le pagine manuali relative al pacchetto vmstat.

rpm -qdf /usr/bin/vmstat

/usr/share/doc/procps-ng/AUTHORS
/usr/share/doc/procps-ng/FAQ
/usr/share/doc/procps-ng/NEWS
/usr/share/doc/procps-ng/README.md
/usr/share/doc/procps-ng/bugs.md
/usr/share/man/man1/free.1.gz
/usr/share/man/man1/pgrep.1.gz
...

16. Come verificare un pacchetto RPM

Verificare un pacchetto confronta le informazioni dei file installati del pacchetto con il database rpm. Il -Vp (verifica pacchetto) viene utilizzato per verificare un pacchetto.

rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm

S.5....T.  c /etc/httpd/conf.d/sqlbuddy.conf

17. Come Verificare tutti i Pacchetti RPM

Digita il seguente comando per verificare tutti i pacchetti rpm installati.

rpm -Va

S.5....T.  c /etc/rc.d/rc.local
.......T.  c /etc/dnsmasq.conf
.......T.    /etc/ld.so.conf.d/kernel-2.6.32-279.5.2.el6.i686.conf
S.5....T.  c /etc/yum.conf
S.5....T.  c /etc/yum.repos.d/epel.repo

18. Come Importare una Chiave GPG RPM

Per verificare i pacchetti RHEL/CentOS/Fedora, è necessario importare la chiave GPG. Per farlo, esegui il seguente comando. Importerà la chiave GPG di CentOS 8.

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-8

19. Come Elenare tutte le Chiavi GPG RPM Importate

Per stampare tutte le chiavi GPG importate nel tuo sistema, utilizza il seguente comando.

rpm -qa gpg-pubkey*

gpg-pubkey-0608b895-4bd22942
gpg-pubkey-7fac5991-4615767f
gpg-pubkey-0f2672c8-4cd950ee
gpg-pubkey-c105b9de-4e0fd3a3
gpg-pubkey-00f97f56-467e318a
gpg-pubkey-6b8d79e6-3f49313d
gpg-pubkey-849c449f-4cb9df30

20. Come Ricostruire un Database RPM Corrotto

A volte il database rpm si corrompe e interrompe tutte le funzionalità di rpm e altre applicazioni sul sistema. Quindi, in questo momento è necessario ricostruire il database rpm e ripristinarlo con l’aiuto del seguente comando.

cd /var/lib
rm __db*
rpm --rebuilddb
rpmdb_verify Packages

In conclusione, i comandi rpm presentati forniscono una guida completa per gestire efficientemente i pacchetti software su distribuzioni Linux basate su RHEL.

Source:
https://www.tecmint.com/20-practical-examples-of-rpm-commands-in-linux/