Introduzione
RPM Package Manager (RPM) è un potente sistema di gestione dei pacchetti utilizzato da Red Hat Linux e dai suoi derivati come CentOS e Fedora. RPM si riferisce anche al comando rpm
e al formato del file .rpm
. Un pacchetto RPM è costituito da un archivio di file e metadati che include informazioni come dipendenze e percorso di installazione.
In questo tutorial, parleremo di come utilizzare il comando rpm
per installare, aggiornare, rimuovere, verificare, interrogare e altrimenti gestire i pacchetti RPM.
Installazione, aggiornamento e rimozione di pacchetti RPM
Di solito, per installare un nuovo pacchetto su distribuzioni basate su Red Hat, userete uno dei comandi yum
o dnf
, che può risolvere e installare tutte le dipendenze del pacchetto.
Si consiglia sempre di utilizzare yum
o dnf
invece di rpm
per l'installazione, l'aggiornamento e la rimozione di pacchetti.
Prima di installare un pacchetto RPM, è necessario scaricare il pacchetto sul proprio sistema utilizzando un browser o strumenti da riga di comando come curl o wget.
Quando si installano i pacchetti RPM, assicurarsi che siano creati per l'architettura del sistema e la versione di CentOS. Prestare particolare attenzione quando si sostituiscono o si aggiornano importanti pacchetti di sistema, come glibc, systemd o altri servizi e librerie essenziali per il corretto funzionamento del sistema.
Solo i root o gli utenti con privilegi sudo possono installare o rimuovere i pacchetti RPM.
Per installare un pacchetto RPM con rpm
, utilizzare l'opzione -i
, seguita dal nome del pacchetto:
sudo rpm -ivh package.rpm
L'opzione -v
permette al comando rpm
di mostrare un output dettagliato e l'opzione -h
per mostrare la barra di avanzamento contrassegnata con l'hash.
È possibile saltare la parte di download e fornire l'URL al pacchetto RPM al comando rpm
:
sudo rpm -ivh https://example.com/package.rpm
Per aggiornare un pacchetto RPM, utilizzare l'opzione -U
. Se il pacchetto non è installato, verrà installato:
sudo rpm -Uvh package.rpm
Se il pacchetto che si sta installando o aggiornando dipende da altri pacchetti che non sono attualmente installati, verrà visualizzato un elenco di tutte le dipendenze mancanti. Dovrai scaricare e installare tutte le dipendenze manualmente.
Per installare un pacchetto RPM senza avere tutte le dipendenze richieste installate sul sistema, utilizzare l'opzione --nodeps
:
sudo rpm -Uvh --nodeps package.rpm
Per rimuovere (cancellare) un pacchetto RPM, utilizzare l'opzione -e
:
sudo rpm -e package.rpm
L'opzione --nodeps
è utile anche quando si desidera rimuovere un pacchetto senza rimuoverne le dipendenze:
sudo rpm -evh --nodeps package.rpm
L'opzione --test
permette a rpm
di eseguire il comando di installazione o rimozione senza fare nulla. Mostra solo se il comando funzionerebbe o meno:
sudo rpm -Uvh --test package.rpm
Richiesta di pacchetti RPM
L'opzione -q
indica al comando rpm
di eseguire una query.
Per interrogare (cercare) se è installato un determinato pacchetto, passare il nome del pacchetto al comando rpm -q
. Il seguente comando ti mostrerà se il pacchetto OpenJDK 11 è installato sul sistema:
sudo rpm -q java-11-openjdk-devel
Se il pacchetto è installato vedrai qualcosa del genere:
java-11-openjdk-devel-11.0.4.11-0.el8_0.x86_64
Utilizzare l'opzione -i
per ottenere ulteriori informazioni sul pacchetto richiesto:
sudo rpm -qi java-11-openjdk-devel
Per ottenere un elenco di tutti i file in un pacchetto RPM installato:
sudo rpm -ql package
Se vuoi scoprire a quale pacchetto installato appartiene un determinato file, digita:
sudo rpm -qf /path/to/file
Per ottenere un elenco di tutti i pacchetti installati sul tuo sistema usa l'opzione -a
:
sudo rpm -qa
Verifica dei pacchetti RPM
Quando si verifica un pacchetto, il comando rpm
controlla se ogni file installato da un pacchetto esiste sul sistema, il digest del file, la proprietà, le autorizzazioni, ecc.
Per verificare un pacchetto installato, utilizzare l'opzione -V
. Ad esempio, per verificare il pacchetto openldap dovresti eseguire:
sudo rpm -V openldap-2.4.46-9.el8.x86_64
Se la verifica passa, il comando non stamperà alcun output. Altrimenti, se alcuni dei controlli falliscono, mostrerà un carattere che indica il test fallito.
Ad esempio, il seguente output mostra che mTime del file è stato modificato ("T"):
.......T. c /etc/openldap/ldap.conf
Fare riferimento alla pagina man di RMP sul significato di ciascun carattere.
Per verificare tutti i pacchetti rpm installati, eseguire il comando seguente:
sudo rpm -Va
Conclusione
rpm
è uno strumento da riga di comando di basso livello per l'installazione, l'interrogazione, la verifica, l'aggiornamento e la rimozione di pacchetti RMP. Quando si installano i pacchetti RPM, è preferibile utilizzare yum
o dnf
poiché risolvono automaticamente tutte le dipendenze.
Per ulteriori informazioni su tutte le opzioni di comando disponibili, digitare nel terminale:
man rpm