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)
- RPM è gratuito e rilasciato sotto GPL (General Public License).
- RPM conserva le informazioni di tutti i pacchetti installati nel database /var/lib/rpm.
- RPM è l'unico modo per installare pacchetti sui sistemi Linux, se hai installato pacchetti utilizzando il codice sorgente, allora RPM non lo gestirà.
- 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
- Installa: viene utilizzato per installare qualsiasi pacchetto RPM.
- Rimuovi: viene utilizzato per cancellare, rimuovere o disinstallare qualsiasi pacchetto RPM.
- Aggiornamento: viene utilizzato per aggiornare il pacchetto RPM esistente.
- Verifica: viene utilizzato per verificare i pacchetti RPM.
- 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.
- http://rpmfind.net
- http://www.redhat.com
- http://freshrpms.net/
- http://rpm.pbone.net/
Leggi anche:
- 20 esempi di comandi YUM in Linux
- 10 esempi di comandi Wget in Linux
- 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
- -i: installa un pacchetto
- -v: dettagliato per una visualizzazione migliore
- -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
- -q: interroga un pacchetto
- -p: elenca le funzionalità fornite da questo pacchetto.
- -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