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