Red Hat Linux 7.0: The Official Red Hat Linux Getting Started Guide | ||
---|---|---|
Indietro | Capitolo 12. Usare Gnome-RPM ed RPM | Avanti |
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.
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.
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 #################################### # |
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 #################################### # |
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.
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.
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:
# 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 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.
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.
-a interroga tutti i pacchetti installati.
-f <file> interroga il pacchetto contenente il <file>.
-p <packagefile> interroga il pacchetto <packagefile>.
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.
-i mostra informazioni sul pacchetto come nome, descrizione, release, dimensione, data di realizzazione, data di installazione, proprietario, ed altre informazioni di vario tipo.
-l mostra la lista di file contenuti nel pacchetto.
-s mostra lo stato di tutti i file nel pacchetto. package.
-d mostra una lista dei file di documentazione (pagine man, pagine info, file README, ecc.).
-c mostra una lista dei file di configurazione. Questi sono file che potete eventualmente cambiare dopo l'installazione per configurare il pacchetto nel vostro sistema. (sendmail.cf, passwd, inittab, etc).
Per quelle opzioni che sono mostrate nelle liste, potete aggiungere -v al comando per rendere la lista simile a quella del comando ls -l.
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:
Per verificare un pacchetto contenente particolari file:
rpm -Vf /bin/vi |
Per verificare "tutti" i pacchetti installati:
rpm -Va |
Per verificare i pacchetti installati di un pacchetto RPM:
rpm -Vp foo-1.0-1.i386.rpm |
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:
5 -- MD5 checksum
S -- Dimensione del file
L -- Link simbolico
T -- data ed ora di modifica modifica del file
D -- Device
U -- User
G -- Group
M -- Modalità (include permessi e tipo di file)
Se vedete qualche output, usate il vostro intuito per determinare se è necessario rimuovere o reinstallare il pacchetto, o risolvere il problema in qualche modo.