Manpages

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>