13.1.3 Pacchetti rpm
Un pacchetto rpm è un file in formato compresso, generalmente con estensione .rpm, che
contiene più file. Esso contiene anche delle informazioni relative alla directory del filesystem
nella quale devono essere estratti i file in esso contenuti, ed altri dettagli relativi alla versione
del pacchetto, ... Tali file vengono gestiti dal comando rpm (Red Hat Package Manager - man
page rpm(8)), ed è uno dei sistemi più utilizzati dalle varie distribuzioni di GNU/Linux (Red
Hat, SuSE, Mandrake).
____________________________________________________________________
Comando: rpm
Path: /bin/rpm
SINTASSI
$ rpm [option] [specific_option] [pkg_filename | pkgname]
DESCRIZIONE
-
option indica le opzioni di funzionamento di rpm. Può assumere i seguenti
valori:
-
-? | --help
visualizza un aiuto sommario di rpm;
- --version
visualizza la versione di rpm;
- --quiet
indica di procedere in modalità silenziosa (visualizza soltanto
eventuali errori);
-
-v indica di procedere in modalità verbosa (visualizza più informazioni
del normale);
-
--vv indica di procedere in modalità di massima verbosità;
-
--rcfile filelist
indica di considerare l’elenco
dei file espressi da filelist come file di configurazione di rpm (filelist è
l’elenco di file separati tra loro dal carattere ‘:’). Per default filelist
è ‘/usr/lib/rpm/rpmrc:/usr/lib/rpm/redhat/rpmrc:~/.rpmrc’;
-
--pipe command
redirige l’output di rpm nell’input di command;
-
--dbpath dir
specifica la directory (dir) contenente il database di rpm (la directory
di default è /var/lib/rpm);
-
--root dir
specifica la directory (dir) da considerare come root directory per
il controllo delle dipendenze e per l’esecuzione di eventuali script
lanciati da rpm;
-
{-i | --install} [install_options] pkg_filename
indica di installare il pacchetto contenuto nel file pck_filename;
-
{-U | --upgrade} [install_options] pkg_filename
indica di installare o aggiornare il pacchetto contenuto nel file
pck_filename;
-
{-F | --freshen} [install_options] pkg_filename
indica di aggiornare il pacchetto contenuto nel file pck_filename
soltanto se una versione più datata è già installata sul sistema;
-
{-e | --erase} [erase_options] pkgname
indica di rimuovere (disinstallare) il pacchetto pkgname;
-
{-q | --query} [select_options] [query_options] [pkgname]
indica di ricercare uno o più pacchetti nel database;
[da completare ...]
-
specific_option indica le opzioni per ogni specifica operazione di rpm. Possono assumere i
seguenti valori:
-
install_options
sono opzioni specifiche per l’installazione/aggiornamento di pacchetti. Possono
assumere i seguenti valori:
-
--aid
aggiunge gli eventuali pacchetti suggeriti a quelli da installare;
-
--allfiles
installa o aggiorna tutti i file missingok nel pacchetto
(indipendentemente dal fatto che esistano o meno);
-
--badreloc
utilizzato assieme a --relocate indica di effettuare la rilocazione su
tutti i percorsi dei file, non soltanto per quelli inclusi nel pacchetto
binario;
-
--excludepath path
indica di non installare i file il cui percorso inizia con path;
-
--excludedocs
indica di non installare nessun file di documentazione;
-
--force
forza l’installazione del pacchetto: è equivalente all’uso combinato
di --replacepkgs, --replacefiles e --oldpackage;
-
-h | --hash
indica di visualizzare 50 caratteri ‘#’ durante l’estrazione dei file;
-
--ignoresize
indica di non verificare lo spazio disponibile sui filesystem prima di
installare il pacchetto;
-
--ignorearch
indica di procedere con l’installazione/aggiornamento dei file anche
se l’architettura per il quale è stato creato il pacchetto non coincide
con quella del sistema;
-
--ignoreos
indica di procedere con l’installazione/aggiornamento dei file anche
se il sistema operativo per il quale è stato creato il pacchetto non
coincide con quello del sistema;
-
--includedocs
indica di installare anche i file di documentazione (default);
-
--justdb
indica di aggiornare soltanto il database ma non il filesystem;
-
--nodigest
indica di non verificare il message digest
del pacchetto;
-
--nosignature
indica di non verificare la firma digitale
del pacchetto;
-
--nodeps
indica di non effettuare il controllo delle dipendenze prima di
procedere all’installazione/aggiornamento del pacchetto;
-
--nosuggest
indica di non suggerire i pacchetti che contengono la dipendenza
mancante;
-
--noorder
indica di non cambiare l’ordine dei pacchetti da installare (l’ordine
dell’elenco dei pacchetti da installare viene normalmente modificato
in maniera tale da soddisfare le dipendenze);
-
--nopre
indica di disabilitare l’esecuzione degli script subito prima
dell’estrazione dei file;
-
--nopost
indica di disabilitare l’esecuzione degli script subito dopo
l’estrazione dei file;
-
--nopreun
indica di disabilitare l’esecuzione degli script subito prima della
disinstallazione del pacchetto;
-
--nopostun
indica di disabilitare l’esecuzione degli script subito dopo la
disinstallazione del pacchetto;
-
--noscripts
indica di disabilitare l’esecuzione degli script subito prima e subito
dopo l’installazione o disinstallazione del pacchetto: equivale a
--nopre --nopost --nopreun --nopostun;
-
--notriggerin
indica di disabilitare l’esecuzione degli script relativi ai trigger di
inserimento di pacchetti nel database;
-
--notriggerun
indica di disabilitare l’esecuzione degli script relativi ai trigger di
rimozione di pacchetti dal database;
-
--notriggerpostun
indica di disabilitare l’esecuzione degli script relativi ai trigger di
post-rimozione di pacchetti dal database;
-
--notriggers
indica di disabilitare l’esecuzione degli script relativi ai trigger
di aggiornamento del database: equivale a --notriggerin
--notriggerun --notriggerpostun;
-
--oldpackage
indica di permettere l’aggiornamento di un pacchetto già installato
con uno meno recente;
-
--percent
indica di visualizzare la percentuale relativa all’operazione di
estrazione dei file dal pacchetto;
-
--prefix path
specifica il path in cui devono essere installati i file binari rilocabili
estratti dal pacchetto;
-
--relocate oldpath=newpath
specifica di sostituire il path di installazione dei i file binari rilocabili
presenti nel pacchetto, il cui path inizia con oldpath, con newpath;
-
--repackage
indica di ricostruire il pacchetto prima di disinstallare i file dal
sistema (per default il pacchetto viene ricreato in /var/tmp);
-
--replacefiles
indica di procedere con l’installazione del pacchetto anche se
l’estrazione dei file in esso contenuti rimpiazzerà alcuni file già
presenti nel sistema, installati da altri pacchetti;
-
--replacepkgs
indica di procedere con l’installazione del pacchetto anche se esso è
già installato nel sistema;
-
--test
indica di effettuare tutte le
operazioni di installazione/aggiornamento del pacchetto, ma di non
installare/aggiornare affatto il pacchetto: esegue un test, riportando
eventuali poteziali problemi;
-
erase_options
sono opzioni specifiche per la disinstallazione di pacchetti. Possono assumere i
seguenti valori:
-
--allmatches
indica di rimuovere tutti i pacchetti che iniziano con il nome
pkgname (normalmente rpm restituisce un errore se più di un
pacchetto installato inizia con pkgname);
-
--nodeps
indica di non controllare le dipendenze con altri pacchetti prima di
rimuovere pkgname;
-
--nodeps
indica di non controllare le dipendenze con altri pacchetti prima di
rimuovere pkgname;
-
--nopreun
indica di disabilitare l’esecuzione degli script subito prima della
disinstallazione del pacchetto;
-
--nopostun
indica di disabilitare l’esecuzione degli script subito dopo la
disinstallazione del pacchetto;
-
--noscripts
indica di disabilitare l’esecuzione degli script subito prima e
subito dopo la disinstallazione del pacchetto: equivale a --nopreun
--nopostun;
-
--notriggerun
indica di disabilitare l’esecuzione degli script relativi ai trigger di
rimozione di pacchetti dal database;
-
--notriggerpostun
indica di disabilitare l’esecuzione degli script relativi ai trigger di
post-rimozione di pacchetti dal database;
-
--notriggers
indica di disabilitare l’esecuzione degli script relativi ai trigger di
rimozione dei pacchetti dal database: equivale a --notriggerun
--notriggerpostun;
-
--repackage
indica di ricostruire il pacchetto prima di disinstallare i file dal
sistema (per default il pacchetto viene ricreato in /var/tmp);
-
--test
indica di effettuare tutte le operazioni di disinstallazione del
pacchetto, ma di non disinstallarlo affatto: esegue un test,
riportando eventuali poteziali problemi;
-
query_options
sono opzioni specifiche per la ricerca di pacchetti nel databse. Possono
assumere i seguenti valori:
-
{--qf | --queryformat} qryformat
specifica il formato da utilizzare nella visualizzazione del risultato
della ricerca. Il formato è specificato da qryformat ed ha una sintassi
analoga a quella della funzione printf del linguaggio C, anche se
lo specificatore di tipo può essere omesso e sostituito con il nome
del campo da visualizzare racchiuso tra parentesi graffe ‘{’ e ‘}’.
L’elenco dei campi dei visualizzabili da rpm può essere ottenuto con
l’opzione --querytags ed è riportato nelle tab. 13.2, 13.3 e 13.4.
| Tabella 13.2: | Campi visualizzabili dei pacchetti rpm (I parte). |
|
| Tabella 13.3: | Campi visualizzabili dei pacchetti rpm (II
parte). |
|
| Tabella 13.4: | Campi visualizzabili dei pacchetti rpm (III
parte). |
|
Per default viene utilizzata il seguente formato di visualizzazione --qf
"%{NAME}-%{VERSION}-%{RELEASE}".
Il formato di visualizzazione può essere specificato postponendo al campo
da visualizzare uno dei seguenti specificatori di tipo:
-
:armor
visualizza una chiave pubblica in ASCII;
-
:base64
codifica i valori binari utilizzando valori numerici di 64 bit;
-
:date
visualizza una data in maniera analoga a quanto avviene con
la funzione strftime del linguaggio C con il parametro "%c";
-
:day
visualizza una data in maniera analoga a quanto avviene con
la funzione strftime del linguaggio C con il parametro "%a %b
%d %Y";
-
:depflags
visualizza i flag delle dipendenze;
-
:fflags
visualizza i flag del file;
-
:hex
visualizza il valore in notazione esadecimale;
-
:octal
visualizza il valore in notazione ottale;
-
:perms
visualizza i permessi del file;
-
:shescape
visualizza il valore ponendo dei caratteri di escape prima dei
caratteri ‘'’;
-
:triggertype
visualizza il suffisso del trigger;
-
-a | --all
indica di ricercare tutti i pacchetti installati;
-
{-f | --file} filename
indica di ricercare il pacchetto contenuto nel file filename;
-
--fileid md5
indica di ricercare il pacchetto il cui message digest del file che lo
conteneva è specificato da md5;
-
{-g | --group} groupname
indica di ricercare tutti i pacchetti il cui gruppo proprietario è specificato
da groupname;
-
--hdrid sha1
indica di ricercare il pacchetto il cui message digest dell’header del file che
lo conteneva è specificato da sha1;
____________________________________________________________________
[da completare ...]
La gestione dei pacchetti rpm si basa su di un database (un sistema di memorizzazione
dati) nel quale vengono registrate tutte le informazioni relative ai pacchetti che man mano
vengono installati sul sistema. In questo modo si può interrogare il sistema per sapere se
un pacchetto è già stato installato ed eventualmente conoscere qual è la versione
installata, in modo da poter gestire l’aggiornamento ad una versione successiva.
I pacchetti possono avere delle dipendenze, ovvero un pacchetto può dipendere
da altri pacchetti, cioè può aver bisogno che altri pacchetti siano già installati sul
sistema per poter funzionare. Questo perché le applicazioni contenute all’interno di un
pacchetto possono aver bisogno di applicazioni, librerie o file che si trovano in altri
pacchetti.
Generalmente il nome di un pacchetto rpm coincide con la prima parte del nome del file
che lo contiene. Ad esempio il file xearth-1.1-6.i386.rpm contiene la versione 1.1-6 del
pacchetto xearth, compilato per piattaforma Intel X386 (o compatibile). Comunque, per
conoscere il nome e la versione del pacchetto fornito dal file nome_file.rpm si può utilizzare il
comando
$ rpm -qp nome_file.rpm
Per visualizzare l’elenco dei file contenuti all’interno di un pacchetto fornito dal file
nome_file.rpm si può utilizzare il comando
$ rpm -qpl nome_file.rpm
che nel caso del file xearth-1.1-6.i386.rpm fornisce appunto xearth-1.1-6.
Per installare il pacchetto fornito dal file nome_file.rpm si può utilizzare il comando
$ rpm -i nome_file.rpm
o se si desidera avere maggiori informazioni durante l’installazione
$ rpm -ivh nome_file.rpm
Il comando
$ rpm -Uvh nome_file.rpm
installa il pacchetto fornito dal file nome_file.rpm o aggiorna il relativo pacchetto
eventualmente già presente sul sistema con la versione fornita dal file nome_file.rpm.
Per sapere dove sono stati memorizzati i vari file forniti con il pacchetto nome_pacchetto
dopo che esso è stato installato sul sistema, si può utilizzare il comando
$ rpm -ql nome_pacchetto
Per rimuovere il pacchetto nome_pacchetto dal sistema si può utilizzare il comando
$ rpm -e nome_pacchetto
[da completare ...]