Ricerca nel sito web

20 esempi pratici di comandi RPM in Linux


RPM (Red Hat Package Manager) è un'utilità open source predefinita e la più popolare per la gestione dei pacchetti per sistemi basati su Red Hat come (RHEL , CentOS e Fedora). Lo strumento consente agli amministratori di sistema e agli utenti di installare, aggiornare, disinstallare, interrogare, verificare e gestire pacchetti software di sistema nei sistemi operativi Unix/Linux. Il file RPM precedentemente noto come file .rpm, che include i programmi software compilati e le librerie necessarie ai pacchetti. Questa utilità funziona solo con pacchetti basati sul formato .rpm.

Questo articolo fornisce alcuni esempi di comandi 20 RPM utili che potrebbero esserti utili. Con l'aiuto di questi comandi rpm puoi riuscire a installare, aggiornare, rimuovere pacchetti nei tuoi sistemi Linux.

Alcuni fatti su RPM (RedHat Package Manager)

  1. RPM è gratuito e rilasciato sotto GPL (General Public License).
  2. RPM conserva le informazioni di tutti i pacchetti installati nel database /var/lib/rpm.
  3. RPM è l'unico modo per installare pacchetti sui sistemi Linux, se hai installato pacchetti utilizzando il codice sorgente, allora RPM non lo gestirà.
  4. RPM si occupa di file .rpm, che contengono le informazioni effettive sui pacchetti come: cos'è, da dove proviene, informazioni sulle dipendenze, informazioni sulla versione ecc.

Esistono cinque modalità di base per il comando RPM

  1. Installa: viene utilizzato per installare qualsiasi pacchetto RPM.
  2. Rimuovi: viene utilizzato per cancellare, rimuovere o disinstallare qualsiasi pacchetto RPM.
  3. Aggiornamento: viene utilizzato per aggiornare il pacchetto RPM esistente.
  4. Verifica: viene utilizzato per verificare i pacchetti RPM.
  5. Query: viene utilizzato per interrogare qualsiasi pacchetto RPM.

Dove trovare i pacchetti RPM

Di seguito è riportato l'elenco dei siti RPM, dove è possibile trovare e scaricare tutti i pacchetti RPM.

  1. http://rpmfind.net
  2. http://www.redhat.com
  3. http://freshrpms.net/
  4. http://rpm.pbone.net/

Leggi anche:

  1. 20 esempi di comandi YUM in Linux
  2. 10 esempi di comandi Wget in Linux
  3. 30 comandi Linux più utili per gli amministratori di sistema

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

1. Come controllare un pacchetto di firme RPM

Controlla sempre la firma PGP dei pacchetti prima di installarli sui tuoi sistemi Linux e assicurati che la sua integrità e origine siano OK. Utilizza il seguente comando con l'opzione –checksig (controlla firma) per verificare la firma di un pacchetto chiamato pidgin.

[root@tecmint]# rpm --checksig pidgin-2.7.9-5.el6.2.i686.rpm

pidgin-2.7.9-5.el6.2.i686.rpm: rsa sha1 (md5) pgp md5 OK

2. Come installare un pacchetto RPM

Per installare un pacchetto software RPM, utilizzare il seguente comando con l'opzione -i. Ad esempio, per installare un pacchetto RPM chiamato pidgin-2.7.9-5.el6.2.i686.rpm.

[root@tecmint]# rpm -ivh pidgin-2.7.9-5.el6.2.i686.rpm

Preparing...                ########################################### [100%]
   1:pidgin                 ########################################### [100%]
Comando e opzioni RPM
  1. -i: installa un pacchetto
  2. -v: dettagliato per una visualizzazione migliore
  3. -h: stampa i simboli hash quando l'archivio dei pacchetti viene decompresso.

3. Come verificare le dipendenze del pacchetto RPM prima dell'installazione

Supponiamo che desideri eseguire un controllo delle dipendenze prima di installare o aggiornare un pacchetto. Ad esempio, utilizza il comando seguente per verificare le dipendenze del pacchetto BitTorrent-5.2.2-1-Python2.4.noarch.rpm. Verrà visualizzato l'elenco delle dipendenze del pacchetto.

[root@tecmint]# rpm -qpR BitTorrent-5.2.2-1-Python2.4.noarch.rpm

/usr/bin/python2.4
python >= 2.3
python(abi) = 2.4
python-crypto >= 2.0
python-psyco
python-twisted >= 2.0
python-zopeinterface
rpmlib(CompressedFileNames) = 2.6
Comando e opzioni RPM
  1. -q: interroga un pacchetto
  2. -p: elenca le funzionalità fornite da questo pacchetto.
  3. -R: elenca le funzionalità da cui dipende questo pacchetto.

4. Come installare un pacchetto RPM senza dipendenze

Se sai che tutti i pacchetti necessari sono già installati e RPM è semplicemente stupido, puoi ignorare tali dipendenze utilizzando l'opzione –nodeps (nessun controllo delle dipendenze) prima di installare il pacchetto pacchetto.

[root@tecmint]# rpm -ivh --nodeps BitTorrent-5.2.2-1-Python2.4.noarch.rpm

Preparing...                ########################################### [100%]
   1:BitTorrent             ########################################### [100%]

Il comando precedente installa forzatamente il pacchetto RPM ignorando gli errori di dipendenza, ma se tali file di dipendenza mancano, il programma non funzionerà affatto finché non li installi.

5. Come controllare un pacchetto RPM installato

Usando l'opzione -q con il nome del pacchetto, verrà mostrato se un RPM è installato o meno.

[root@tecmint]# rpm -q BitTorrent

BitTorrent-5.2.2-1.noarch

6. Come elencare tutti i file di un pacchetto RPM installato

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

[root@tecmint]# rpm -ql BitTorrent

/usr/bin/bittorrent
/usr/bin/bittorrent-console
/usr/bin/bittorrent-curses
/usr/bin/bittorrent-tracker
/usr/bin/changetracker-console
/usr/bin/launchmany-console
/usr/bin/launchmany-curses
/usr/bin/maketorrent
/usr/bin/maketorrent-console
/usr/bin/torrentinfo-console

7. Come elencare i pacchetti RPM installati di recente

Utilizza il seguente comando RPM con l'opzione -qa (query all), elencherà tutti i pacchetti RPM installati di recente.

[root@tecmint]# rpm -qa --last

BitTorrent-5.2.2-1.noarch                     Tue 04 Dec 2012 05:14:06 PM BDT
pidgin-2.7.9-5.el6.2.i686                     Tue 04 Dec 2012 05:13:51 PM BDT
cyrus-sasl-devel-2.1.23-13.el6_3.1.i686       Tue 04 Dec 2012 04:43:06 PM BDT
cyrus-sasl-2.1.23-13.el6_3.1.i686             Tue 04 Dec 2012 04:43:05 PM BDT
cyrus-sasl-md5-2.1.23-13.el6_3.1.i686         Tue 04 Dec 2012 04:43:04 PM BDT
cyrus-sasl-plain-2.1.23-13.el6_3.1.i686       Tue 04 Dec 2012 04:43:03 PM BDT

8. Come elencare tutti i pacchetti RPM installati

Digita il seguente comando per stampare tutti i nomi dei pacchetti installati sul tuo sistema Linux.

[root@tecmint]# rpm -qa

initscripts-9.03.31-2.el6.centos.i686
polkit-desktop-policy-0.96-2.el6_0.1.noarch
thunderbird-17.0-1.el6.remi.i686

9. Come aggiornare un pacchetto RPM

Se desideriamo aggiornare qualsiasi pacchetto RPM, verrà utilizzata l'opzione “–U” (upgrade). Uno dei principali vantaggi dell'utilizzo di questa opzione è che non solo aggiornerà l'ultima versione di qualsiasi pacchetto, ma manterrà anche il backup del pacchetto precedente in modo che, nel caso in cui il pacchetto aggiornato più recente non esegua il pacchetto precedentemente installato può essere utilizzato di nuovo.

[root@tecmint]# rpm -Uvh nx-3.5.0-2.el6.centos.i686.rpm
Preparing...                ########################################### [100%]
   1:nx                     ########################################### [100%]

10. Come rimuovere un pacchetto RPM

Per disinstallare un pacchetto RPM, ad esempio utilizziamo il nome del pacchetto nx, non il nome del pacchetto originale nx-3.5.0-2.el6.centos.i686.rpm . L'opzione -e (cancella) viene utilizzata per rimuovere il pacchetto.

[root@tecmint]# rpm -evv nx

11. Come rimuovere un pacchetto RPM senza dipendenze

L'opzione –nodeps (Non controllare le dipendenze) rimuove forzatamente il pacchetto rpm dal sistema. Ma tieni presente che la rimozione di un particolare pacchetto potrebbe interrompere altre applicazioni funzionanti.

[root@tecmint]# rpm -ev --nodeps vsftpd

12. Come interrogare un file a cui appartiene il pacchetto RPM

Diciamo che hai un elenco di file e vorresti scoprire quale pacchetto appartiene a questi file. Ad esempio, il seguente comando con l'opzione -qf (query file) ti mostrerà un file /usr/bin/htpasswd di proprietà del pacchetto httpd-tools-2.2.15-15.el6.centos.1.i686.

[root@tecmint]# rpm -qf /usr/bin/htpasswd

httpd-tools-2.2.15-15.el6.centos.1.i686

13. Come richiedere informazioni sul pacchetto RPM installato

Supponiamo che tu abbia installato un pacchetto rpm e desideri conoscere le informazioni sul pacchetto. La seguente opzione -qi (query info) stamperà le informazioni disponibili del pacchetto installato.

[root@tecmint]# rpm -qi vsftpd

Name        : vsftpd				   Relocations: (not relocatable)
Version     : 2.2.2				   Vendor: CentOS
Release     : 11.el6				   Build Date: Fri 22 Jun 2012 01:54:24 PM BDT
Install Date: Mon 17 Sep 2012 07:55:28 PM BDT      Build Host: c6b8.bsys.dev.centos.org
Group       : System Environment/Daemons           Source RPM: vsftpd-2.2.2-11.el6.src.rpm
Size        : 351932                               License: GPLv2 with exceptions
Signature   : RSA/SHA1, Mon 25 Jun 2012 04:07:34 AM BDT, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://vsftpd.beasts.org/
Summary     : Very Secure Ftp Daemon
Description :
vsftpd is a Very Secure FTP daemon. It was written completely from
scratch.

14. Ottenere le informazioni sul pacchetto RPM prima dell'installazione

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

[root@tecmint]# rpm -qip sqlbuddy-1.3.3-1.noarch.rpm

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, utilizzare il seguente comando con l'opzione -qdf (query document file) per visualizzare le pagine di manuale relative al pacchetto vmstat.

[root@tecmint]# rpm -qdf /usr/bin/vmstat

/usr/share/doc/procps-3.2.8/BUGS
/usr/share/doc/procps-3.2.8/COPYING
/usr/share/doc/procps-3.2.8/COPYING.LIB
/usr/share/doc/procps-3.2.8/FAQ
/usr/share/doc/procps-3.2.8/NEWS
/usr/share/doc/procps-3.2.8/TODO

16. Come verificare un pacchetto RPM

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

[root@tecmint downloads]# 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

Digitare il comando seguente per verificare tutti i pacchetti RPM installati.

[root@tecmint]# 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 fare ciò, esegui il seguente comando. Importerà la chiave GPG CentOS 6.

[root@tecmint]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

19. Come elencare tutte le chiavi GPG RPM importate

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

[root@tecmint]# 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 il database RPM danneggiato

A volte il database RPM viene danneggiato e interrompe tutte le funzionalità di RPM e di altre applicazioni sul sistema. Quindi, al momento dobbiamo ricostruire il database RPM e ripristinarlo con l'aiuto del seguente comando.

[root@tecmint]# cd /var/lib
[root@tecmint]# rm __db*
[root@tecmint]# rpm --rebuilddb
[root@tecmint]# rpmdb_verify Packages