18 - May - 2013

rpm HowTo

Nelle distribuzioni come  Centos/Red Hat/Fedora i pacchetti sono denominati RPM.

Un po’ di storia….

RPM sta per Red Hat Package Manager ed è un Utility per installare, disinstallare, aggiornare, interrogare, verificare e costruire pacchetti software.
Un package costruito con RPM è un archivio di file e informazioni che potranno essere richiamate una volta che il package è stato installato.
RPM permette di installare programmi, già compilati, con una facilità e rapidità estrema sul proprio sistema Linux (è l’equivalente di un setup.exe su Windows).

E’ usato da RedHat e da altre distribuzioni. E’ importante utilizzare gli RPM adatti per il proprio sistema: un RPM realizzato per RedHat 6.2, per esempio, difficilmente funzionerà su RedHat 7.2.
Gestisce automaticamente le “dependencies”: se si prova ad installare un RPM che richiede librerie o programmi non presenti o non abbastanza aggiornati sul sistema, l’installazione fallisce e viene indicato quali file mancano.

Analogamente, se si prova a rimuovere un package che contiene file utilizzati da altri programmi, viene dato un messaggio di errore.

Gli RPM automaticamente distribuiscono i file di un pacchetto nelle directory giuste (logs in /var/log, file di configurazione in /etc/, binari in /usr/bin o /usr/sbin, script di startup in /etc/rc.d/init.d/ ecc.) e verificano la presenza di conflitti o installazioni più recenti.
Un RPM non cancella mai nulla che non abbia installato. Se deve sostituire o cancellare un file di configurazione, per esempio, mantiene il file esistente aggiungendo il suffisso .rpmsave.

I potenziali svantaggi o controindicazioni di RPM sono:

- I file sono già compilati, se si intende customizzare alcuni flag di compilazione si deve farlo a mano da un tar.gz;
- Non sempre nuovi RPM vengono resi disponibili in tempi brevi quando esce una nuova versione di un programma.

Inserisco qui alcuni dei comandi base di RPM per CentOS/Red Hat/Fedora .

# rpm -ivh [package.rpm] -> installare un pacchetto rpm

# rpm -ivh –nodeeps [package.rpm] -> installare un pacchetto rpm ignorando le dipendenze richieste

# rpm -U [package.rpm] -> aggiornare un pacchetto rpm senza modificarne i file di configurazione

# rpm -F [package.rpm] -> aggiornare un pacchetto rpm solo se quest’ultimo risulta già installato

# rpm -e [package] -> rimuovere un pacchetto rpm

# rpm -qa -> visualizzare tutti i pacchetti rpm installati sul sistema

# rpm -qa | grep httpd -> visualizzare tutti i pacchetti rpm col nome “httpd”

# rpm -qi [package] -> ottenere informazioni su un determinato pacchetto installato

# rpm -qg “System Environment/Daemons” -> visualizzare i pacchetti rpm di un gruppo software

# rpm -ql [package] -> visualizzare la lista dei file forniti da un pacchetto rpm installato

# rpm -qc [package] -> visualizzare la lista dei file di configurazione forniti da un pacchetto rpm installato

# rpm -q [package] –whatrequires ->  visualizzare la lista delle dipendenze richieste da un pacchetto rpm

# rpm -q [package] –whatprovides -> visualizzare le capability fornite da un pacchetto rpm

# rpm -q [package] –scripts -> visualizzare gli script avviati in fase di installazione/rimozione

# rpm -q [package] –changelog -> visualizzare lo storico delle revisioni di un pacchetto rpm

# rpm -qf /etc/httpd/conf/httpd.conf  -> verificare a quale pacchetto rpm appartiene un dato file

# rpm -qp [package.rpm] -l    -> visualizzare la lista dei file forniti da un pacchetto non ancora installato

# rpm –import /media/cdrom/RPM-GPG-KEY  -> importare la public-key della digital signature

# rpm –checksig [package.rpm] -> verificare l’integrità di un pacchetto rpm

# rpm -qa gpg-pubkey -> verificare l’integrità di tutti pacchetti rpm installati

# rpm -V [package] -> verificare file size, permessi, tipo, owner, group, MD5 checksum e ultima modifica

# rpm -Va -> verificare tutti i pacchetti rpm installati sul sistema – usare con cautela

# rpm -Vp [package.rpm]  -> verificare un pacchetto rpm non ancora installato

# rpm -ivh /usr/src/redhat/RPMS/`arch`/[package.rpm]  -> installare un pacchetto costruito da un rpm sorgente

# rpm2cpio [package.rpm] | cpio –extract –make-directories *bin*  -> estrarre gli eseguibili da un pacchetto rpm

# rpmbuild –rebuild [package.src.rpm] -> costruire un pacchetto da un rpm sorgente

 

Grazie mille per la lettura

Stay Tuned…..

Andrea

Licenza Creative Commons
rpm HowTo by Andrea Finessi is licensed under a Creative Commons Attribuzione – Non commerciale – Condividi allo stesso modo 2.5 Italia License.

Leave a Reply