RPM dal prompt di shell

Potete anche usare la tecnologia RPM digitando una varietà di comandi al prompt di shell. Sono a vostra disposizione tutte le funzioni disponibili tramite il Gnome-RPM, con alcune aggiunte, come la capacità di rinnovare i pacchetti, simile all'aggiornamento (fate riferimento alla la sezione Il Refresh per maggiori informazioni).

Per maggiori informazioni sull' RPM, fate riferimento ai capitoli relativi Official Red Hat Linux Reference Guide. Potete anche leggere la pagina man relativa digitando man rpm o il file di aiuto, digitando rpm --help.

Installazione

I pacchetti RPM hanno tipicamente un nome del file come foo-1.0-1.i386.rpm, che includono il nome del pacchetto (foo), la versione (1.0), la release (1), e le architetture (i386). Installare un pacchetto è semplice:

# rpm -ivh foo-1.0-1.i386.rpm
foo                       ####################################
#
	    

RPM visualizza il nome del pacchetto (che non è necessariamente lo stesso del nome del file), e poi visualizza una serie di cancelletti durante l'installazione dei pacchetti, come una sorta di barra progressiva.

Attualmente è possibile installare un pacchetto con l'opzione upgrade. Per maggiori informazioni, si veda la sezione Aggiornamento.

Potreste riscontrare alcuni errori, avvisi che informano che il pacchetto è già installato o che ci sono errori di dipendenze che impediscono l'installazione del pacchetto.

Per maggiori informazioni sul tipo di errori che potreste incontrare, continuate a leggere questo manuale.

Pacchetto già installato

Se il pacchetto è già stato installato, vedrete:

# rpm -ivh foo-1.0-1.i386.rpm
foo                     package foo-1.0-1 is already installed
error: foo-1.0-1.i386.rpm cannot be installed
#
	    

Se volete comunque installare il pacchetto, potete usare --replacepkgs dalla linea di comando, in modo che RPM ignori l'errore:

# rpm -ivh --replacepkgs foo-1.0-1.i386.rpm
foo                       ####################################
#
	    

File in conflitto

Se tentate di installare un pacchetto che contiene un file che è già stato installato da un altro pacchetto, vedrete:

# rpm -ivh foo-1.0-1.i386.rpm
foo           /usr/bin/foo conflicts with file from bar-1.0-1
error: foo-1.0-1.i386.rpm cannot be installed
#
	      

Affinchè RPM ignori l'errore, usate l'opzione --replacefiles dalla linea di comando:

# rpm -ivh --replacefiles foo-1.0-1.i386.rpm
foo                       ####################################
#
	      

Dipendenze irrisolte

I pacchetti RPM possono "dipendere" da altri pacchetti, che significa che richiedono che altri pacchetti siano stati installati in precedenza per poter essere eseguiti correttamente. Se provate ad installare un pacchetto per il quale c'è una dipendenza non risolta, vedrete:

# rpm -ivh bar-1.0-1.i386.rpm
failed dependencies:
        foo is needed by bar-1.0-1
#
	  

Per correggere questo errore, dovrete installare il pacchetto richiesto. Se volete forzare l'installazione (una cattiva idea dato che comunque il pacchetto non funzionerà correttamente), usate --nodeps dalla linea di comando.

Rimozione di un pacchetto

anche rimuovere un pacchetto è semplice:`

# rpm -e foo
#
	    

Notate che usiamo il nome del pacchetto (foo ) e non il nome del file del pacchetto originale (" foo-1.0-1.i386.rpm").

Potete incontrare un errore di dipendenza quando disinstallate un pacchetto se qualche altro pacchetto dipende dal pacchetto che state tentando di rimuovere. Per esempio:

# rpm -e foo
removing these packages would break dependencies:
        foo is needed by bar-1.0-1
#
	    

Per fare in modo che RPM ignori tale errore e disinstalli in ogni modo il pacchetto (il che è una cattiva idea in quanto il pacchetto che dipende da quello che state tentando di rimuovere non funzionerà in modo corretto), usate --nodeps sulla linea di comando.

Aggiornamento

L'aggiornamento di un pacchetto è simile all'installazione.

# rpm -Uvh foo-2.0-1.i386.rpm
foo                       ####################################
#
	    

Quando effettuate l'aggiornamento, RPM automaticamente disinstallerà qualsiasi versione vecchia del pacchetto foo.

Potete usare anche upgrade per installare i pacchetti, visto che funziona bene anche se non ci sono versioni precedenti dei pacchetti installati.

Visto che RPM permette un aggiornamento intelligente dei pacchetti con i file di configurazione, potreste visualizzare un messaggio del tipo:

Errori durante l'installazione di pacchetti più vecchi

# rpm -Uvh foo-1.0-1.i386.rpm
foo    package foo-2.0-1 (which is newer) is already installed
error: foo-1.0-1.i386.rpm cannot be installed
#
	    

Per fare in modo che RPM effettui comunque l'aggiornamento, usate --oldpackage sulla linea di comando:

# rpm -Uvh --oldpackage foo-1.0-1.i386.rpm
foo                       ####################################
#
	    

Il Refresh

Il refresh di un pacchetto è simile all'installazione

# rpm -Fvh foo-1.2-1.i386.rpm
foo                       ####################################
#
	    

L'opzione Freshen di RPM confronta le versioni dei pacchetti specificati sulla linea di comando con quelli già installati nel sistema. Quando una versione nuova di un pacchetto già aggiornato viene elaborata dall'opzione freshen di RPM, verrà automaticamente aggiornato. L'opzione freshen di RPM non installa un pacchetto se non è presente una versione precedente sul sistema. Per questo differisce dall'opzione upgrade di RPM, poiché un aggiornamento installerà pacchetti, indipendentemente dal fatto che fosse presente o meno una precedente versione.

Querying

Potete interrogare il database dei pacchetti già installati con rpm -q. Usando rpm -q foo visualizza il nome del pacchetto, la versione, ed il numero di release:

# rpm -q foo
foo-2.0-1
#
	    

Invece di specificare il nome del pacchetto, potete usare le opzioni seguenti con -q per specificare quale pacchetto/i volete interrogare. Queste sono chiamate opzioni di specifica del pacchetto.

Ci sono molti modi per specificare quali informazioni devono essere visualizzate sul pacchetto interrogato. Le opzioni seguenti vengono usate per selezionare le informazioni che state cercando. Queste si chiamano opzioni di selezione delle informazioni.

Per quelle opzioni che sono mostrate nelle liste, potete aggiungere -v al comando per rendere la lista simile a quella del comando ls -l.

Verifica

Il processo di verifica di un pacchetto confronta le informazioni dei file installati da un pacchetto con le informazioni dal pacchetto originale. Tra le altre cose, la verifica confronta le dimensioni, MD5, permessi, tipo, proprietario ed il gruppo di ogni file.

rpm -V verifica un pacchetto. Potete usare una lista qualsiasi di opzioni di selezione dei pacchetti per interrogare i pacchetti specifici che volete verificare. Un uso semplice è rpm -V foo che verifica che tutti i file nel pacchetto foo siano identici a quelli installati originariamente. Per esempio:

Se tutto è verificato correttamente non ci saranno output. Se ci sono alcune discrepanze verranno visualizzate. Il formato dell'output è una stringa di 8 caratteri, una possibile "c" denota un file di configurazione, e poi il nome del file. Ogni singolo carattere è il risultato di una comparazione di un attributo del file con il valore dell'attributo in memoria nel database RPM Un singolo "." (periodo) significa che il test è risultato corretto. I seguenti caratteri indicano errori in alcuni test:

Se vedete qualche output, usate il vostro intuito per determinare se è necessario rimuovere o reinstallare il pacchetto, o risolvere il problema in qualche modo.