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
rpm HowTo by Andrea Finessi is licensed under a Creative Commons Attribuzione – Non commerciale – Condividi allo stesso modo 2.5 Italia License.