NOME
rpm − Gestore di pacchetti Red Hat
SINTASSI
rpm [opzioni]
DESCRIZIONE
rpm è un potente gestore di pacchetti che può essere usato per creare, installare, interrogare, verificare, aggiornare e disinstallare singoli pacchetti software. Un pacchetto è composto da un archivio di file e da informazioni relative al pacchetto stesso, che includono nome, versione e descrizione.
È necessario selezionare una delle seguenti modalità di base: Inizializza database, Ricrea database, Crea pacchetto, Ricompila pacchetto, Crea pacchetto da tarball, Ricerca, Mostra tag di ricerca, Installa, Aggiorna, Disinstalla, Verifica, Controlla autenticazione, Rinnova autenticazione, Aggiungi autenticazione, Imposta gruppi e proprietari e Mostra configurazione.
Manutenzione
del database:
rpm −i [−−initdb]
rpm −i [−−rebuilddb]
Creazione:
rpm [−b|t] [spec_pacchetto]+
rpm [−−rebuild] [rpm_sorgenti]+
rpm [−−tarbuild] [tar_sorgenti]+
Interrogazione
o ricerca:
rpm [−−query] [opzioni_di_ricerca]
rpm [−−querytags]
Manutenzione
dei pacchetti installati:
rpm [−−install] [opzioni_di_installazione]
[file_pacchetto]+
rpm [−−freshen|−F]
[opzioni_di_installazione] [file_pacchetto]+
rpm [−−uninstall|−e]
[opzioni_di_disinstallazione][pacchetto]+
rpm [−−verify|−V] [opzioni_di_verifica]
[pacchetto]+
Firme:
rpm [−−verify|−V] [opzioni_di_verifica]
[pacchetto]+
rpm [−−resign] [file_pacchetto]+
rpm [−−addsign] [file_pacchetto]+
Varie:
rpm [−−showrc]
rpm [−−setperms] [pacchetto]+
rpm [−−setgids] [pacchetto]+
OPZIONI GENERALI
Queste opzioni restano valide in tutte le diverse modalità.
−vv |
Stampa un sacco di noiose informazioni di debug. |
−−quiet
Stampa il meno possibile − di regola saranno mostrati solo i messaggi d’errore.
−−help |
Stampa un messaggio d’utilizzo più lungo del normale. |
−−version
Stampa una singola riga che reca il numero della versione di rpm in uso.
−−rcfile <lista di file>
Ognuno dei file nella <lista di file>, separati dai due punti (:), viene letto sequenzialmente da rpm, in cerca di informazioni per la configurazione. La <lista di file> predefinita è /usr/lib/rpm/rpmrc:/etc/rpmrc:~/.rpmrc. Soltanto il primo file della lista deve necessariamente esistere, e la tilde (~) sarà espansa al valore di $HOME.
−−root <dir>
Per tutte le operazioni, impiega il sistema che ha <dir> quale directory radice. Nota: ciò implica che il database sarà letto o modificato in <dir> e gli script pre o post saranno eseguiti dopo un chroot() indirizzato a <dir>.
−−dbpath <percorso>
Usa il database RPM in <percorso>.
−−justdb
Aggiorna solo il database, non il filesystem.
−−ftpproxy <host>, −−httpproxy <host>
Usa <host> come proxy FTP o HTTP. Vedi OPZIONI FTP/HTTP.
−−ftpport <porta>, −−httpport <porta>
Usa <porta> come porta FTP o HTTP sul proxy. Vedi OPZIONI FTP/HTTP.
−−pipe <cmd>
Redirige l’output di rpm al comando <cmd>.
OPZIONI DI INSTALLAZIONE E AGGIORNAMENTO
La forma generica del comando rpm per l’installazione, è
rpm −i [opzioni_di_installazione] <file_pacchetto>+
Questo comando installa un nuovo pacchetto. La forma generica del comando rpm per l’aggiornamento è
rpm −U [opzioni_di_installazione] <file_pacchetto>+
Questo comando aggiorna (o installa) il pacchetto corrente alla versione del nuovo RPM. In pratica è come l’installazione, tranne per il fatto che ogni altra versione del pacchetto viene rimossa dal sistema.
rpm [−F|--freshen] [opzioni_di_installazione] <file_pacchetto>+
Questo comando aggiornerà i pacchetti, ma solo a patto che ne esistano versioni precedenti.
Il
<file_pacchetto> può essere specificato
come un URL ftp o http, nel qual caso il pacchetto
verrà scaricato per poi essere installato. Vedi
OPZIONI FTP/HTTP per informazioni sul supporto
integrato ftp e http per RPM.
−−force
Equivale a −−replacepkgs, −−replacefiles e −−oldpackage.
−h, −−hash
Stampa 50 cancelletti (#) mentre l’archivio che contiene il pacchetto viene decompresso. Usare con −v per ottenere una schermata gradevole.
−−oldpackage
Consente un aggiornamento per rimpiazzare un pacchetto recente con uno più vecchio.
−−percent
Stampa percentuali (%) mentre i file dell’archivio contenente il pacchetto vengono decompressi. Ciò al fine di semplificare l’esecuzione di RPM da parte di altre utilità.
−−replacefiles
Installa i pacchetti anche quando rimpiazzano file appartenenti ad altri pacchetti già installati.
−−replacepkgs
Installa i pacchetti anche nel caso in cui alcuni di essi fossero già installati nel sistema.
−−allfiles
Installa o aggiorna tutti i file missingok del pacchetto, che esistano o meno.
−−nodeps
Non esegue il controllo delle dipendenze prima di installare o aggiornare un pacchetto.
−−noscripts
Non esegue gli script di preinstallazione o postinstallazione.
−−notriggers
Non esegue script attivati dall’installazione del pacchetto.
−−ignoresize
Non controlla lo spazio su disco per i file system montati prima di installare il pacchetto.
−−excludepath <percorso>
Non installa file il cui nome comincia con <percorso>.
−−excludedocs
Non installa file contrassegnati come documentazione (tale ambito include le man pages e i documenti texinfo).
−−includedocs
Installa i file di documentazione. Questa è l’opzione predefinita.
−−test |
Non installa il pacchetto, ma si limita a provarlo e a riferire di potenziali conflitti. |
−−ignorearch
Consente l’installazione o l’aggiornamento anche quando le architetture dell’RPM binario e dell’host non coincidono.
−−ignoreos
Consente l’installazione o l’aggiornamento anche quando i sistemi operativi dell’RPM binario e dell’host non coincidono.
−−prefix <percorso>
Imposta il prefisso di installazione per i pacchetti trasferibili a <percorso>.
−−relocate <vecchio_percorso>=<nuovo_percorso>
Per i pacchetti trasferibili, smista in <nuovo_percorso> i file che avrebbero dovuto essere messi in <vecchio_percorso>.
−−badreloc
Da usare assieme a −−relocate, questo comando forza la rilocazione anche se il pacchetto non è trasferibile.
−−noorder
Non riordina i pacchetti in vista di un’installazione. Di norma, l’elenco dei pacchetti verrebbe riordinato al fine di soddisfare le dipendenze.
OPZIONI DI INTERROGAZIONE
La forma generica del comando rpm per l’interrogazione dei pacchetti è
rpm −q [opzioni_di_interrogazione]
Si può specificare il formato in cui le informazioni sul pacchetto dovranno essere stampate. Per ottenere questo risultato, usate l’opzione [−−queryformat|−qf] seguita dalla stringa recante l’indicazione del formato.
I formati di interrogazione sono versioni modificate dello standard printf(3). Il formato consta di stringhe statiche (che possono contenere caratteri di escape standard C per newline, tab, e altri caratteri speciali) e formattatori di tipo comuni a printf(3). Dal momento che rpm già sa quale tipo stampare, la specifica del tipo può essere omessa e sostituita con il nome del tag di intestazione da stampare, incluso tra i caratteri {}. La sezione RPMTAG_ del nome del tag può essere omessa.
Si possono richiedere vari formati di output facendoli seguire al tag :typetag. Al momento sono supportati i seguenti tipi: octal, date, shescape, perms, fflags e depflags.
Per esempio, volendo stampare solo i nomi dei pacchetti cercati con la query si potrebbe usare %{NAME} come stringa di formattazione. Volendo stampare i nomi dei pacchetti e le informazioni sulla distribuzione in due colonne, si potrebbe usare %−30{NAME}%{DISTRIBUTION}.
Ove richiamato con l’argomento −−querytags, rpm stamperà un elenco di tutti i tag ad esso noti.
Ci sono due sottoinsiemi di opzioni per la ricerca: selezione di pacchetti e selezione di informazioni.
Opzioni di
selezione dei pacchetti:
<nome_pacchetto>
Cerca un pacchetto installato di nome <nome_pacchetto>.
−a, −−all
Cerca tutti i pacchetti installati.
−−whatrequires <funzionalità>
Cerca tutti i pacchetti che richiedono la <funzionalità> per operare correttamente.
−−whatprovides <virtuale>
Cerca tutti i pacchetti che forniscono la funzionalità <virtuale>.
−f <file>, −−file <file>
Cerca il pacchetto cui appartiene <file>.
−g <gruppo>, −−group <gruppo>
Cerca pacchetti il cui gruppo è <gruppo>.
−p <file_pacchetto>
Cerca il pacchetto (disinstallato) di nome <file_pacchetto>. Il <file_pacchetto> può essere specificato come un URL ftp o http, nel qual caso l’intestazione del pacchetto sarà scaricata e interrogata. Per avere informazioni sul supporto client integrato ftp e http per RPM, vedi OPZIONI FTP/HTTP.
−−specfile <specfile>
Analizza e interroga <specfile> come se fosse un pacchetto. Benché non tutte le informazioni (es. elenchi di file) siano disponibili, questo tipo di ricerca permette che rpm venga usato per estrarre informazioni dai file .spec senza bisogno di scrivere un analizzatore di specfile.
−−querybynumber <num>
Cerca direttamente la <num>esima voce del database; utile per il debugging.
−−triggeredby <pkg>
Cerca i pacchetti che vengono attivati dai pacchetti <pkg>.
Opzioni di selezione delle informazioni:
−i |
Mostra informazioni sul pacchetto che includono nome, versione e descrizione. Utilizza −−queryformat se è stato specificato un formato per la query. |
−R, −−requires
Elenca i pacchetti da cui dipende il pacchetto in oggetto.
−−provides
Elenca le funzionalità fornite dal pacchetto.
−−changelog
Mostra le informazioni sull’evoluzione del pacchetto.
−l, −−list
Elenca i file presenti nel pacchetto.
−s, −−state
Mostra lo stato dei file del pacchetto (richiede −l). Lo stato di un file può essere normal, not installed o replaced.
−d, −−docfiles
Elenca esclusivamente i file di documentazione (richiede −l).
−c, −−configfiles
Elenca esclusivamente i file di configurazione (richiede −l).
−−scripts
Elenca gli script di shell specifici per il pacchetto che vengono usati nel processo di installazione e disinstallazione, se ce ne sono.
−−triggers, −−triggerscripts
Mostra gli script di attivazione contenuti nel pacchetto, se ce ne sono.
−−dump |
Scarica le seguenti informazioni riguardo ai file: path size mtime md5sum mode owner group isconfig isdoc rdev symlink. Questo comando va usato con almeno un’opzione tra −l, −c e −d. | ||
−−last |
Ordina l’elencazione dei pacchetti in base al momento dell’installazione; gli ultimi pacchetti installati appaiono in cima alla lista. |
−−filesbypkg
Elenca tutti i file presenti in ogni pacchetto.
−−triggerscripts
Mostra tutti gli script di attivazione per i pacchetti selezionati.
OPZIONI DI VERIFICA
La forma generica di un comando di verifica rpm è
rpm −V|−y|−−verify [opzioni_di_verifica]
La verifica di un pacchetto mette a confronto le informazioni sui file installati nel pacchetto con le informazioni sui file prese dal pacchetto originale e conservate nel database rpm. Tra l’altro, la verifica compara dimensioni, somma MD5, permessi, tipo, utente proprietario e gruppo di ogni file. Ogni discrepanza viene segnalata. Le opzioni di specificazione dei pacchetti sono le stesse in uso per l’interrogazione dei pacchetti.
I file non installati dal pacchetto, ad esempio file di documentazione esclusi dall’installazione usando l’opzione "−−excludedocs", saranno ignorati.
Opzioni
utilizzabili nella modalità di verifica:
−−nofiles
Ignora i file mancanti durante la verifica.
−−nomd5
Ignora gli errori nel checksum MD5 durante la verifica.
−−nopgp
Ignora gli errori di controllo PGP durante la verifica.
Il formato dell’output è una stringa di 8 caratteri, un’eventuale "c" che indicherebbe un file di configurazione, e infine il nome del file. Ognuno degli 8 caratteri è il risultato della comparazione tra un attributo del file e il valore di quel medesimo attributo registrato nel database RPM. Un singolo carattere "." (punto) indica che il test è stato superato. I seguenti caratteri denunciano viceversa il fallimento di certi test:
5 |
checksum MD5 |
|||
S |
Dimensioni del file |
|||
L |
Link simbolico |
|||
T |
Mtime |
|||
D |
Dispositivo |
|||
U |
Utente |
|||
G |
Gruppo |
|||
M |
Modalità (inclusi permessi e tipo di file) |
CONTROLLO DI AUTENTICAZIONE
La forma generica di un comando di controllo di autenticazione rpm è
rpm −−checksig <pacchetto_file>+
Questo comando verifica l’autenticazione PGP del pacchetto <pacchetto_file> per assicurarne l’integrità e l’origine. Le informazioni di configurazione PGP vengono lette nei file di configurazione. Per maggiori dettagli, vedi la sezione PGP SIGNATURES.
OPZIONI DI DISINSTALLAZIONE
La forma generica di un comando di disinstallazione rpm è
rpm
−e <nome_pacchetto>+
−−allmatches
Rimuove tutte le versioni del pacchetto il cui nome corrisponde a <nome_pacchetto>. Di norma, se <nome_pacchetto> corrisponde a più pacchetti, viene emesso un messaggio d’errore.
−−noscripts
Non esegue gli script di pre− o post−disinstallazione.
−−notriggers
Non esegue gli script attivati dalla rimozione di questo pacchetto.
−−nodeps
Non esegue il controllo delle dipendenze prima di disinstallare i pacchetti.
−−test |
Non disinstalla alcunché, ma si limita ad esaminare l’ordine ricevuto e le sue conseguenze. Si rivela utile se usato insieme all’opzione −vv. |
OPZIONI DI CREAZIONE
La forma generica di un comando di creazione rpm è
rpm −[b|t]O [opzioni_di_creazione] <pacchetto_spec>+
L’argomento usato sarà -b se per creare il pacchetto si sta utilizzando un file .spec, e -t se RPM dovesse cercare il file .spec in un file tar compresso, magari con gzip. Dopo il primo argomento, il successivo argomento (O) specifica le fasi della creazione e dell’impacchettamento da svolgere ed è uno dei seguenti:
−bp |
Esegue la fase «%prep» come da file .spec. Di norma il comando richiede che i sorgenti siano estratti dal pacchetto e che eventuali patch siano applicate. | ||
−bl |
Esegue un «controllo di lista» (o «list check»). La sezione «%files» del file .spec viene espansa tramite una macro e sono effettuati controlli per verificare che tutti i file esistano. | ||
−bc |
Esegue la fase «%build» come da file .spec (dopo aver completato la fase prep). In genere equivale a «make». | ||
−bi |
Esegue la fase «%install» come da file .spec (dopo aver completato le fasi prep e build). In genere equivale a «make install». | ||
−bb |
Crea un pacchetto binario (una volta completate le fasi prep, build e install). | ||
−bs |
Crea solo il pacchetto sorgente (una volta completate le fasi prep, build e install). | ||
−ba |
Crea pacchetti binari e sorgenti (una volta completate le fasi prep, build e install). |
Si possono
usare anche le seguenti opzioni:
−−short−circuit
Salta direttamente alla fase specificata (ossia, salta tutte le fasi che portano a quella specificata). Tale opzione è valida soltanto con −bc e −bi.
−−timecheck
Imposta il periodo di «timecheck» (0 per disabilitarlo). Questo valore può anche essere configurato definendo la macro «_timecheck». Il valore di timecheck esprime, in secondi, la durata massima del periodo di impacchettamento di un file.Saranno stampati avvertimenti riguardo tutti i file che abbiano superato il periodo di timecheck.
−−clean
Rimuove l’albero di creazione una volta creati i pacchetti.
−−rmsource
Rimuove i sorgenti e i file .spec dopo la creazione (può anche essere usato isolatamente, per es. "rpm −−rmsource foo.spec").
−−test |
Non esegue alcuna fase della creazione. Utile per testare i file .spec. | ||
−−sign |
Incorpora un’autenticazione PGP nel pacchetto. Tale autenticazione può essere usata per verificare l’integrità e l’origine del pacchetto. Per i dettagli di configurazione, vedi la sezione PGP SIGNATURES. |
−−buildroot <dir>
Quando crea il pacchetto, sovrascrive il tag BuildRoot con la directory <dir>.
−−target <piattaforma>
Quando crea il pacchetto, interpreta <piattaforma> as arch-vendor-os e imposta di conseguenza le macro _target, _target_arch e _target_os.
−−buildarch <arch>
Quando crea il pacchetto, imposta l’architettura a <arch>. Questa opzione è stata resa obsoleta da −−target in RPM 3.0.
−−buildos <os>
Quando crea il pacchetto, imposta l’architettura a <os>. Questa opzione è stata resa obsoleta da −−target in RPM 3.0.
OPZIONI DI RICOSTRUZIONE E RICOMPILAZIONE
Ci sono altri due modi per richiamare la creazione di pacchetti in rpm:
rpm −−recompile <file_pacchetto_sorgente>+
rpm −−rebuild <file_pacchetto_sorgente>+
Quando viene richiamato con queste opzioni, rpm installa il pacchetto sorgente prescelto ed esegue prep, compile e install. In più, −−rebuild crea un nuovo pacchetto binario. Quando la creazione è completata, la directory di creazione viene rimossa (come con −−clean) e i sorgenti e i file .spec relativi al pacchetto sono eliminati.
AUTENTICARE UN RPM GIÁ ESISTENTE
rpm −−resign <file_pacchetto_binario>+
Questa opzione genera ed inserisce nuove firme di autenticazione per i pacchetti elencati. Ogni autenticazione precedente viene rimossa.
rpm −−addsign <file_pacchetto_binario>+
Questa opzione genera nuove firme di autenticazione per i pacchetti elencati e le aggiunge a quelle già esistenti.
AUTENTICAZIONI PGP
Per poter usare
la funzione di autenticazione, RPM deve essere configurato
per eseguire PGP, e deve poter trovare un set di chiavi
pubbliche che comprenda le chiavi pubbliche di RPM. Per
default, RPM usa le impostazioni predefinite di PGP per
trovare i set di chiavi (rispettando PGPPATH). Se i vostri
set di chiavi non si trovano dove PGP si aspetta che siano,
allora dovrete configurare la macro
_pgp_path
come percorso del set di chiavi PGP da utilizzare.
Se volete poter
autenticare i pacchetti da voi stessi creati, dovrete anche
in questo caso creare le vostre paia di chiavi pubbliche e
private (vedi il manuale di PGP). Inoltre bisognerà
configurare le seguenti macro:
_signature
Il tipo di autenticazione. Attualmente solo pgp è supportato.
_pgp_name
Il nome dell’«utente» di cui vuoi usare la chiave per autenticare i tuoi pacchetti.
Quando create pacchetti aggiungete −−sign alla riga di comando. Vi sarà richiesta la vostra password, ed il vostro pacchetto verrà creato ed autenticato.
Per esempio, volendo usare PGP per autenticare pacchetti come utente "John Doe <jdoe [AT] foo.com>", a partire dal set di chiavi posto all’indirizzo /etc/rpm/.pgp e usando l’eseguibile /usr/bin/pgp, dovreste includere
%_signature pgp
%_pgp_path /etc/rpm/.pgp
%_pgp_name John Doe <jdoe [AT] foo.com>
%_pgpbin /usr/bin/pgp
in un file di configurazione macro. Usate /etc/rpm/macros per configurazioni basate sul sistema e ~/.rpmmacros per configurazioni basate sull’utente.
OPZIONI DI RICOSTRUZIONE DATABASE
La forma generica di un comando di ricostruzione database rpm è
rpm −−rebuilddb
Per ricostruire un nuovo database, eseguite:
rpm −−initdb
Le sole opzioni per queste modalità sono -−dbpath e -−root.
SHOWRC
Eseguendo
rpm −−showrc
vengono mostrati i valori che RPM userà per tutte le opzioni che possono essere configurate nei file rpmrc.
OPZIONI FTP/HTTP
RPM include dei semplici client FTP ed HTTP al fine di rendere più facile l’installazione e la ricerca di pacchetti disponibili in internet. I pacchetti da installare, da aggiornare e su cui compiere operazioni di ricerca possono essere indicati come URL ftp o http:
ftp://<utente>:<password>@hostname:<porta>/percorso/del/pacchetto.rpm
Se la sezione :password viene omessa, la password sarà richiesta in modo esplicito (una volta per ogni abbinamento utente/hostname). Qualora sia l’utente che la password fossero omessi, verrebbe usato l’ftp anonimo. In tutti i casi vengono utilizzati trasferimenti in ftp passivo (PASV).
RPM consente di
usare le seguenti opzioni con gli URL ftp:
−-ftpproxy <hostname>
Lo host <hostname> fungerà da proxy server per tutti i trasferimenti ftp, il che permetterà agli utenti di effettuare ftp attraverso macchine dotate di firewall che utilizzano sistemi di proxy. Questa opzione può anche essere specificata configurando la macro _ftpproxy.
−-ftpport <porta>
Il numero della <porta> TCP da usare per la connessione ftp sul proxy server ftp al posto della porta predefinita. Questa opzione può anche essere specificata configurando la macro _ftpport.
RPM permette di
usare le seguenti opzioni con gli URL http:
−-httpproxy <hostname>
L’host <hostname> fungerà da proxy server per tutti i trasferimenti http. Questa opzione può anche essere specificata configurando la macro _httpproxy.
−-httpport <port>
Il numero della <porta> TCP da usare per la connessione http sul proxy server http al posto della porta predefinita. Quest’opzione può anche essere specificata configurando la macro _httpport.
FILE
/usr/lib/rpm/rpmrc
/etc/rpmrc
~/.rpmrc
/usr/lib/rpm/macros
/etc/rpm/macros
~/.rpmmacros
/var/lib/rpm/conflictsindex.rpm
/var/lib/rpm/fileindex.rpm
/var/lib/rpm/groupindex.rpm
/var/lib/rpm/nameindex.rpm
/var/lib/rpm/packages.rpm
/var/lib/rpm/providesindex.rpm
/var/lib/rpm/requiredby.rpm
/var/lib/rpm/triggerindex.rpm
/tmp/rpm*
VEDI ANCHE
glint(8), rpm2cpio(8), http://www.rpm.org/
AUTORI
Marc Ewing
<marc [AT] redhat.com>
Jeff Johnson <jbj [AT] redhat.com>
Erik Troan <ewt [AT] redhat.com>
Traduzione di Stefano D’Adamo
<stdadam [AT] tin.it>