GLM - 17/1/2018 - 1:31


Classifica dei relatori GLM 2014 (per numero di lezioni svolte)

  1. [9] Samuele Cacchiarelli
  2. [6] Andrea Bianchini
  3. [6] Gianluca Gabrielli
  4. [1] Matteo Ciccioli
  5. [1] Fabio Pagnotta
  6. [1] Alessandro Zampa
  7. [1] Emanuele
  8. [1] Roberto Marozzi
  9. [1] Giampiero Rubini

Vuoi diventare relatore GLM? presenta anche tu una lezione su un argomento che più ti piace relativo a Linux o al mondo dell'OpenSource


Archivio news

server glm
Il nostro Server

bella gnocca freebsd
FreeBSD It's Here!

Martedì 6 Aprile 2004
Gestione dei pacchetti Linux: RPM


Uno dei fattori che caratterizza e distingue le varie distribuzioni Linux è dato dalla scelta del formato dei propri pacchetti di installazione, e di conseguenza del sistema di gestione utilizzato per gli stessi.
In questa serata, dopo aver mostrato quali caratteristiche si richiedano ad un moderno sistema di gestione dei pacchetti, abbiamo trattato in maniera approfondita l'utilizzo del comando rpm .
Di seguito ne riportiamo una sintesi.

Introduzione

Ogni distribuzione ha un proprio sistema di gestione dei pacchetti. Fondamentale per la corretta amministrazione di un sistema Linux è la buona conoscenza del funzionamento di tale sistema di gestione.

Normalmente un moderno sistema di gestione dei pacchetti fa le seguenti cose:

Sistema RPM - Red Hat Package Manager

L'utilizzo degli RPM è diretto. Un singolo comando, rpm , da la possibilità di effettuare tutte le operazioni sui pacchetti.

Sintassi

rpm [opzioni] [pacchetti] ...

I pacchetti rpm possono essere sia binari che sorgenti.
Le due categorie si differenziano dall'estensione:

Il nome completo dei pacchetti binari rpm è formato dal nome del pacchetto seguito dalla versione, dall'eventuale architettura, e dalla sua estensione:

es.

gif2png-2.2.5-1.i386.rpm


Installazione e aggiornamento dei pacchetti rpm

#rpm -i [opzioni] [pacchetti]

installa il pacchetto se non è già installato

#rpm -U [opzioni] [pacchetti]

aggiorna il pacchetto se è disponibile una nuova versione; se il pacchetto non è installato lo installa.

#rpm -F [opzioni] [pacchetti]

aggiorna il pacchetto solo se una sua versione precedente risulta installata.

Per i comandi sopra indicati occorre indicare il nome completo del pacchetto.
es.

#rpm -i gif2png-2.2.5-1.i386.rpm

Alcune opzioni possibili

Direttamente dal man di rpm

-vh spampa una serie di # che danno l'idea dell'avanzamento della fase di installazione.
--percent stampa la percentuale
--oldpackage utile per il downgrade
--replacefiles rimpiazza i file in conflitto appartenenti ad altri pacchetti
--replacepackage installa tutti i pacchetti anche se alcuni di essi sono già installati
--force installa comunque
--nodeps non controlla le dipendenze
--noscripts non esegue gli script di preinstallazione o postinstallazione
--test fa il test di installazione, senza procedere all'installazione (utile più che altro in ambito di script automatici di installazione)

per i pacchetti trasferibili:
--prefix
--relocate

per i pacchetti non trasferibili:
--badreloc


Rimozione dei pacchetti rpm

#rpm -e [opzioni] [pacchetti]

si deve indicare solo il nome del pacchetto senza suffissi
es.

#rpm -e gif2png

Opzioni utili

--test
--allmatches
--nodeps

altre

--noscripts
--notriggers


Opzioni di verifica

Da man rpm:

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

rpm -V [pacchetto]

es.

rpm -V mplayer
Unsatisfied dependencies for mplayer-1.0pre2-sam: libGLcore.so.1 (*)

(*) Ad esempio questo può succedere a seguito di un aggiornamento di alcune librerie che vengono a rompere alcuni link simbolici precedentemente creati e vengono quindi a mancare il riferimento ad esse per alcuni pacchetti.

È possibile fare una verifica globale inserendo l'opzione -a al posto del nome del pacchetto.

L'output del comando ha una formattazione particolare: oltre ad eventuali messaggi come nell'esempio precedente, il comando restituisce per ogni file del pacchetto verificato, una serie di 8 caratteri indicanti eventuali difformità del file rispetto all'originale.

Vedi man rpm.

Opzioni di interrogazione

rpm -q [opzioni_di_interrogazione] [pacchetto]

la semplice opzione -q restituisce semplicemente il nome completo del pacchetto installato.

Per avere maggiori informaxioni, all'opzione -q si possono aggiungere le seguenti opzioni:

-i Mostra informazioni sul pacchetto che includono nome, versione e descrizione.
-l, --list Elenca i file presenti nel pacchetto.
-s, --state Mostra lo stato dei file del pacchetto (richiede -l).
Lo stato di un file puo 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).

A differenza di -l
--filesbypkg Elenca tutti i file presenti in ogni pacchetto ma specificando anche il nome del singolo pachetto

-f [file], --file [file] Cerca il pacchetto cui appartiene [file].
Il percorso deve essere quello esatto. E non un link simbolico. Il link simbolico infatti viene spesso creato da script propri del pacchetto che vengono eseguiti al termine dell'installazione dei file su HD.
--changelog Mostra le informazioni sull'evoluzione del pacchetto
-a, --all Cerca tutti i pacchetti installati.
Utile specie se messo in pipe con il comando grep quando non si conosce il nome esatto del pacchetto da ricercare.
--last Ordina l'elencazione dei pacchetti in base al momento dell'installazione; gli ultimi pacchetti installati appaiono in cima alla lista.
Utile per sapere quali sono stati gli ultimi pacchetti installati o aggiornati.
--scripts Elenca gli script di shell specifici per il pacchetto che vengono usati nel processo di installazione e disinstallazione, se ce ne sono.


Implementazioni e interfacce basate su RPM

Le implementazioni più efficaci al sistema RPM sono:

Grazie a queste implementazioni è possibile tra le altre cose, effettuare ricerche sui pacchetti non ancora installati della propria distribuzione, risolvere in maniera automatica il problema delle dipendenze, aggiornare via internet o in locale il proprio sistema in maniera automatica e indolore.




Links consigliati:
RPM-howto - Completa documentazione (in inglese)
man rpm
man urpmi

Relatore della serata:
Samuele Cacchiarelli