|
Il Red Hat Package Manager (abbrievato in RPM), che tradotto
significa Gestore dei Pacchetti della Red Hat, é riuscito ad
imporsi come uno dei più popolari formati per il software
linux.
Al primo utilizzo l'utente potrebbe sentrisi sommerso dal
vasto numero di opzioni disponibili; questo articolo aiuterà
i principianti a prendere familiarità con l'utilizzo di
questo strumento.
La via tradizionale all'installazione di un pacchetto era
quella di prendere l'archivio e poi estrarne i file nelle
directory richieste. Tutto ciò funzionava bene, i dolori per
l'amministratore arrivavano quando doveva aggiornare i
pacchetti. Doveva localizzare i file dalla installazione
precedente e assicurarsi che fossero rimossi dal sistema.
L'RPM aiuta proprio in questa fase. Esso rende più facile e
flessibile l'installazione ed il mantenimento dei pacchetti.
Gli Upgrade sono facili.
RPM mantiene
- un database dei pacchetti installati sul vostro sistema,
- la posizione dei file e
- i numeri delle versioni.
Ogni qualvolta voi installate un pacchetto in formato rpm, RPM
cercherà nel sistema per vedere se ci sono dei conflitti tra
i pacchetti installati e quelli già esistenti.
Vi dirà anche se c'é bisogno di installare qualche altro
pacchetto affinché il software funzioni correttamente.
Nel complesso possiamo tranquillamente affermare che RPM rende
la vita molto più semplice :-)
RPM è diventato molto popolare e tante distribuizioni sono
basate su di esso. Tra le maggiori citiamo Red Hat, SuSE,
Mandrake e Caldera; tutte utilizzano il formato rpm per
gestire il software installato.
-- Installazione di un RPM --
L'installazione, l'aggiornamento e la rimozione di un RPM dovrà
essere effettuata come root.
Invece fare le query di un file RPM non richiede l'essere
superutente.
Un'installazione base di un file RPM può essere compiuta
eseguendo il seguente comando:
> rpm -ivh
ad esempio
> rpm -ivh pippo-1.09.rpm
A questo punto rpm terminerà e cercherà se i file richiesti
sono installati o no. Se qualche altro pacchetto ha bisogno di
essere installato, allora vi informerà della richiesta e
uscirà. Inoltre se qualche file del pacchetto è già stato
installato precedentemente (da qualche altro pacchetto), vi
sarà notificato.
Possono anche essere specificati file multipli utilizzando i
caratteri jolly (wildcard), ad esempio è permesso scrivere:
>rpm -ivh pippo*.rpm
Guardiamo più in dettaglio le opzioni che ho specificato:
-i = specifica che l'azione da
intraprendere è l'installazione;
-v = (Verbose) visualizzerà
informazioni addizionale durante l'installazione;
-h = Stampa 50 "cancelletti"
(#) che mostrano il progresso dell'installazione.
Potete anche installare il pacchetto semplicemente con
l'opzione -i, ma in genere è una buona idea specificare le
altre due opzioni, al fine di ottenere un feedback.
Altre opzioni che possono essere date sono:
--replacepkgs = (replace Packages)
Se avete bisogno di reinstallare un pacchetto che è stato
danneggiato, avete bisogno di specificare questa opzione. Se
provate ad effettuare l'installazione senza questa opzione,
rpm vi informerà che il pacchetto è già installato.
--replacefiles = Se possedete un
pacchetto con una versione più nuova di un solo file e lo
volete installare, allora dovete usare questa opzione per
sostituire il file in questione.
--force = Forza il proseguimento
dell'installazione senza badare ad eventuali errori. In ogni
caso errori che derivano da dipendenze errate possono
interrompere il processo.
--nodeps = Le dipendenze dei
pacchetti (Package dependencies) sono dei pacchetti richiesti
da certi software. Ad esempio fetchmail può richiedere la
presenza nel sistema di sendmail o qualche altro mail server.
Quindi sendmail è una dipendenza del pacchetto per fetchmail.
Voi potreste avere qualche altro mail server installato, come
qmail, e volete proseguire nell' installazione di fetchmail.
Aggiungendo --nodeps alla linea di comando dite a rpm di
evitare la ricerca di dipendenze e di andare avanti nel
processo di installazione di fetchmail.
Un altro posto in cui questa opzione è molto utile è quando
avete pacchetti che si richiedono l'un l'altro. Ad esempio il
pacchetto A dirà che il pacchetto B dovrebbe essere
installato, ma il pacchetto B richiede che sia A ad essere
installato prima. La soluzione è quindi installare uno dei
due pacchetti con l'opzione --nodeps
prima di installare l'altro.
RPM può anche effettuare le installazioni sulla rete.
Se conoscete l'URL completo del vostro file rpm allora
digitate quanto segue per installare il pacchetto "pippo".
> rpm -ivh ftp://ftp.linux.tucows.com/pub/RedHat/pippo.rpm
Se il sito richiede un username ed una pssword valida, dovete
inserirli nell'URL:
>rpm -ivh ftp://pluto@ftp.linux.tucows.com/put/RedHat/pippo.rpm
Apparirà il prompt per la password e dopo l'inserimento il
file sarà scaricato e installato.
Aggiornamento
Aggiornare l'installazione corrente di un vostro pacchetto.
Se vi imbattete in un pacchetto che ha un numero di versione
più alto di quello attualmente installato allora
l'aggiornamento potrebbe essere la scelta giusta.
La sintassi è pressapoco lo stessa dell'installazione.
Il comportamento di default di questo comando è che l'rpm
prima cerca una versione più vecchia del pacchetto. Se ne
trova una allora aggiorna il pacchetto, altrimenti procede con
l'installazione normale. Questo comando è raccomandato quando
si vuole evitare l'installazione di versioni multiple dello
stesso pacchetto.
> rpm -Uvh pippo.rpm
Disinstallazione
Un pacchetto installato via rpm
può essere disinstallato con rpm -e
Il nome del pacchetto dovrebbe essere il nome del pacchetto di
installazione.
per esempio:
rpm -e pippo rimuoverà il
pacchetto chiamato 'pippo'.
Alcune volte potreste ottenere errore di dipendenze quando
cercate di rimuovere dei pacchetti che sono richiesti da
altri. Allora è sufficiente utilizzare l'opzione --nodeps
(già vista nell'installazione) che dice di ignorare tali
errori di dipendenze e disinstalla il pacchetto senza badare a
niente.
Query
La possibilità di effettuare delle query è una funzione
molto utile che è necessario conoscere. In genere una query
è effettuata digitando l'opzione -q
seguita dal comando di query.
Se volete conoscere la versione di un pacchetto installato
allora semplicemente digitate -q
sul pacchetto:
> rpm -q samba
Il risultato sarà
> samba-2.0.6-62
Vediamo qualche altra opzione:
-f = Quando vedete un file sul
vostro disco e volete conoscere da quale pacchetto esso
proviene:
>rpm -qf /usr/sbin/smbd
> samba-2.0.6-62
-i = Informazioni relative ad un pacchetto installato
sul vostro sistema.
> rpm -qi samba
-l = Lista lunga dei file di un pacchetto installati
sul vostro sistema. Questa opzione fa vedere anche il percorso
completo in cui sono installati i file.
>rpm -ql samba
> /usr/bin/addtosmbpass
/usr/bin/convert_smbpasswd
/usr/bin/mksmbpasswd.sh
/usr/bin/smbadduser
/usr/bin/smbpasswd
/usr/bin/smbstatus
.....
- a = Mostra una lista di tutti i
pacchetti installati sul vostro sistema. E' utile quando
volete conoscere se un determinato pacchetto è installato sul
sistema.
E' sufficiente fare un "pipe" dell'output ed
effettuare un "grep" per ricercare se un pacchetto
è installato o meno:
>rpm -qa | grep samba
> samba-2.0.6-62
-p = Questa opzione potete usarla quando volete
interrogare un file invece di tutto il database rpm.
Tutte le altre opzioni date sopra funzionano allo stesso modo.
Solo -a non funzionerà.
Ad esempio
> rpm -qi samba
Interroga il databse rpm per avere informazioni riguardo il
pacchetto Samba che è già installato sul sistema.
> rpm -qip
samba-2.0.7-20000425.i386.rpm
Interrogerà il file che si chiama
samba-2.0.7-20000425.i386.rpm
Per l'utente normale, i comandi dati in questo articolo
compiono la maggior parte del lavoro generalmente necessario.
RPM è comunque molto ricco di opzioni. Per studiarle tutte e
vedere cosa è possibile farci date un'occhiata a man
rpm.
Altre fonti sono:
RPM.org http://www.rpm.org
Maximum RPM http://www.rpmdp.org/rpmbook
RPM Howto http://linuxdocs.freeos.com/HOWTO/RPM-HOWTO/index.html
Libera traduzione di un articolo di Mayank Sarup
http://www.freeos.com/articles/2505/2/1-3/
|