Gestione dei pacchetti RPM

Il progetto UME (Ubuntu Mobile and Embedded) ha un'architettura a tre livelli; in cima abbiamo le applicazioni open source più classiche (Web browser, client e-mail, Istant Messaging, Media Player ec

Con la sigla RPM si identificano i pacchetti realizzati secondo uno standard definito da Red Hat (Red Hat Package Manager), i cui archivi hanno l'estensione `.rpm'. Oltre alla distribuzione Red Hat (e alle sue derivate), anche SuSE e Caldera utilizzano questo formato.

Per poter gestire tale formato occorre il programma `rpm'. Eventualmente, questo può essere ottenuto dalla sua origine, ftp://ftp.redhat.com/redhat/code/rpm/, oppure da un altro sito dopo una ricerca per mezzo di FTPSearch, http://ftpsearch.lycos.com, per un archivio che assomigli a `rpm-*.tar.gz'. *1* *2*

Se la propria distribuzione GNU/Linux non è fatta per gestire gli archivi in formato RPM, l'unica motivazione ragionevole per procurarsi il programma di gestione di questi è quella di poterli convertire nel formato a cui si è abituati.
14.1 Breve panoramica

Per comprendere l'utilizzo del programma `rpm', quando la propria distribuzione è organizzata secondo questo standard, vengono proposti alcuni esempi, senza entrare nel dettaglio della sua sintassi. Per maggiori informazioni conviene consultare la pagina di manuale rpm(8), oppure, per ottenere uno schema sintattico stringato basta avviare il programma stesso senza argomenti.

Informazioni

L'opzione `-q' introduce una richiesta di informazioni.

rpm -qpi

Mostra una descrizione del contenuto dell'archivio RPM.

rpm -qpl

Mostra l'elenco dei file contenuti nell'archivio RPM e dove andranno collocati se sarà installato.

rpm -qa

Mostra l'elenco dei pacchetti RPM installati, così come sono stati registrati nel sistema RPM.

rpm -qf

Determina il nome del pacchetto da cui proviene il file indicato come argomento.
Installazione

L'opzione `-i' introduce una richiesta di installazione di un pacchetto.

rpm -i

Installa il pacchetto contenuto nell'archivio indicato se non si verificano errori.

rpm -i

Installa il pacchetto contenuto in un archivio identificato dall'URI indicato se non si verificano errori. Per esempio potrebbe trattarsi di `rpm -i ftp://dinkel.brot.dg/pub/RPMS/mio-1.1-0.i386.rpm'

rpm -ivh

Installa il pacchetto contenuto nell'archivio indicato, se non si verificano errori, mostrando qualche informazione e una barra di progressione.

rpm -i --nodeps

Installa il pacchetto contenuto nell'archivio indicato, senza verificare le dipendenze tra i file.

rpm -i --replacefiles

Installa il pacchetto contenuto nell'archivio indicato, senza verificare se vengono sovrascritti dei file.

rpm -i --ignorearch

Installa il pacchetto contenuto nell'archivio indicato, senza verificare l'architettura dell'elaboratore.

rpm -i --ignoreos

Installa il pacchetto contenuto nell'archivio indicato, senza verificare il tipo di sistema operativo.
Aggiornamento

L'opzione `-U' introduce una richiesta di aggiornamento di un pacchetto.

rpm -U

Aggiorna o installa il pacchetto contenuto nell'archivio indicato, se non si verificano errori.

rpm -Uvh

Aggiorna o installa il pacchetto contenuto nell'archivio indicato, se non si verificano errori, mostrando qualche informazione e una barra di progressione.

rpm -F

Aggiorna il pacchetto contenuto nell'archivio indicato, solo se risulta già installata una versione precedente.

rpm -F

Aggiorna i pacchetti contenuti negli archivi indicati, che risultano già installati nelle loro versioni precedenti.
Eliminazione

L'opzione `-e' introduce una richiesta di eliminazione di un pacchetto installato.

rpm -e

Elimina (disinstalla) il pacchetto.
Verifica

L'opzione `-V' introduce una richiesta di verifica di un pacchetto installato.

rpm -V

Verifica che il pacchetto indicato risulti installato correttamente.

rpm -Vf

Verifica il pacchetto contenente il file indicato.

rpm -Va

Verifica tutti i pacchetti.

rpm -Vp

Verifica la corrispondenza tra l'archivio RPM indicato come argomento e quanto installato effettivamente.

Sigla Descrizione
5 Controllo fallito della firma MD5.
S Variazione della dimensione del file.
L Collegamento simbolico alterato.
T Data di variazione del file alterata.
D Alterazione del file di dispositivo.
U Utente proprietario diverso.
G Gruppo proprietario diverso.
M Alterazione della modalità, comprendendo sia i permessi che il tipo di file.

Tabella 14.1: Elenco delle segnalazioni di errore generabili da un controllo di un'installazione di pacchetti RPM (opzione `-V').
Sistemazione dei permessi

rpm --setperms -a

Verifica ed eventualmente corregge i permessi dei file di tutti i pacchetti installati.

rpm --setugids -a

Verifica ed eventualmente corregge la proprietà dei file di tutti i pacchetti installati.

14.2 Problemi dovuti alle dipendenze

Alle volte, quando si installano o si vogliono eliminare dei pacchetti si incontrano dei problemi, perché il programma `rpm' impedisce di fare ciò che potrebbe essere dannoso e sembra originato a causa di un errore. A questo proposito vale la pena di conoscere alcune opzioni speciali.

*`--oldpackage'

Permette di aggiornare un pacchetto utilizzando una versione precedente a quella che appare essere già installata.

*`--replacefiles'

Permette di installare o aggiornare un pacchetto quando questo fatto implica la sostituzione di file già esistenti che appartengono ad altri pacchetti.

*`--replacepkgs'

Permette di installare un pacchetto anche quando questo risulta già installato.

*`--force'

È l'equivalente delle opzioni `--oldpackage', `--replacefiles' e `--replacepkgs', messe assieme.

*`--nodeps'

Installa, aggiorna o disinstalla senza curarsi delle dipendenze da file o da altri pacchetti.

14.3 Creazione di pacchetti binari personali

La creazione di pacchetti archiviati in formato RPM può essere una procedura complessa e delicata, quando si fanno le cose seriamente, cioè quando si vuole costruire un archivio da distribuire attraverso i canali ufficiali. Per distribuire un applicativo in forma binaria, occorre affiancargli un pacchetto SRPM (sorgente), ovvero un archivio contenente i sorgenti originali (intatti), assieme a tutta la procedura necessaria per applicare le modifiche, compilare il risultato e installarlo correttamente. In questa sezione si vuole mostrare il procedimento minimo necessario a creare un archivio RPM «binario» per scopi personali, senza che questo sia affiancato effettivamente da un archivio contenente i sorgenti.

Per creare un archivio RPM a partire da file già installati da qualche parte nel proprio filesystem, si utilizza il programma `rpm' con la sintassi seguente:

rpm -bb

Il file indicato come argomento contiene le informazioni necessarie a recuperare le directory e i singoli file che si vogliono raccogliere nell'archivio, assieme a una descrizione adeguata. Il file indicato come argomento si compone con una sintassi piuttosto semplice, che conviene vedere direttamente in un esempio.

Si suppone di avere predisposto un applicativo in forma binaria collocato a partire dalla directory `/opt/prova/', che utilizza anche il file di configurazione `/etc/prova.conf'. Le specifiche del pacchetto che si vuole creare potrebbero essere messe nel file `/tmp/prova.spec', mostrato sotto.

Name: Prova
Summary: Binari di prova.
Version: 1.0
Release: 1
Copyright: do not redistribute!
Group: Applications
Packager: Tizio Tizi

%description
Pacchetto applicativo di prova per le
mie prove...:-)

%files
/etc/prova.conf
/opt/prova

Come si vede dall'esempio, alcune direttive sono fatte per utilizzare una sola riga, altre, quelle che iniziano con il simbolo di percentuale, si articolano nelle righe sottostanti. Vale la pena di osservare che il campo `Copyright:' viene usato in modo differente dalle distribuzioni: la Red Hat pone una definizione che serve a capire rapidamente il genere di condizioni che pone la licenza d'uso, mentre altre mettono il titolare dei diritti del software. In questo caso, si immagina che si tratti di un lavoro che per qualche ragione non può essere distribuito.

Si osservi l'elenco che segue la direttiva `%files': rappresenta i file singoli e le directory intere che devono essere raccolte nell'archivio da generare.

Prima di creare l'archivio, è necessario che la gerarchia `/usr/src/redhat/' sia pronta; per quanto riguarda l'architettura i386, è necessario che esista anche la directory relativa agli archivi che vengono generati per questa, cioè: `/usr/src/redhat/RPMS/i386/'. Se manca, occorre crearla manualmente.

# rpm -pp /tmp/prova.spec

Quello che si vede è il comando necessario ad avviare la creazione dell'archivio `Prova-1.0-1.i386.rpm', che verrà collocato automaticamente nella directory `/usr/src/redhat/RPMS/i386/'. Per verificare che il proprio lavoro sia stato concluso con successo, si può indagare sul contenuto dell'archivio appena creato nel modo seguente:

# rpm -qpli /usr/src/redhat/RPMS/i386/Prova-1.0-1.i386.rpm

Name : Prova Distribution: (none)
Version : 1.0 Vendor: (none)
Release : 1 Build Date: mar 12 gen 1999 08:50:42 CET
Install date: (not installed) Build Host: dinkel.brot.dg
Group : Applications Source RPM: Prova-1.0-1.src.rpm
Size : 32074
Packager : Tizio Tizi
Summary : Binari di prova.
Description :
Pacchetto applicativo di prova per le
mie prove...:-)
/etc/prova.conf
/opt/prova
/opt/prova/...
/opt/prova/...
/opt/prova/...

Prima di concludere, è bene tenere presente che se ciò che si impacchetta non dipende dalla piattaforma, come nel caso della documentazione, conviene modificare l'estensione del file ottenuto da `.i386.rpm' a `.noarch.rpm'.
14.4 Riferimenti

*Red Hat Package Manager

http://www.rpm.org/

*Donnie Barnes, RPM HOWTO

1.) È importante che il pacchetto che si preleva sia fatto per l'architettura corrispondente al proprio sistema. Se si utilizza un elaboratore i386, o superiore, il nome dell'archivio dovrebbe contenere proprio la sigla `i386', probabilmente secondo il modello `rpm-*.i386.tar.gz'.

2.) La distribuzione Debian incorpora già il programma `rpm' tra i suoi pacchetti applicativi, proprio per consentire la conversione agevole da RPM e Debian (ammesso che poi il pacchetto di una distribuzione sia compatibile con l'altra).
fonte: lagash



Altri links scoperti nel pianeta Linux

08/03 - Pacchetti di applicazioni per GNU/Linux
06/03 - Evolution, eMail, Calendar and Collaboration
08/03 - Gestione dei pacchetti in Debian
05/03 - Masterizzare da linea di comando
27/02 - 35 cool applications to install on Ubuntu 8.04 Hardy Heron
26/02 - Epiphany, browser appositamente fatto per Ubuntu/Gnome
25/02 - A proposito di Gutsy Gibbon
23/02 - Run Linux inside Windows
21/02 - Yacdbak (Yet Another Cd backup)
21/02 - Games for Linux: comparison of free software shooters
20/02 - Rilasciata la nuova versione di ScribeFire
14/02 - Compiz, rilasciata la nuova versione 0.70
12/02 - How do I Backup Thunderbird Mail and Profile under Linux
11/02 - Blag, Distro Linux basata su Fedora Core
10/02 - Tape Backup, software per sistemi Linux
10/02 - Virtualizzazione, una rassegna di quattro opzioni
08/02 - Rilasciato Wine 0.9.5.5

05/02 - Come masterizzare un file superiore ai 4 Gb in Linux con K3b
07/02 Anche il governo giapponese aderisce allo standard ODF
07/02 - Ubuntu 8.04 Hardy Heron, all Software Packages
06/02 - Spantape, span single pipe across multiple SCSI tapes

Luca Soraci

Luca Soraci

Ubuntu giunge alle nostre orecchie solo perché è stato mutuato come nome per un sistema operativo di successo; lo abbiamo sentito nei discorsi di Mandela, del vescovo Tutu, ed è uno dei concetti fondanti di quel movimento di rinascimento che vuole far fiorire il continente africano al di sopra delle difficoltà attuali.

2 commenti:

  1. Avrei la necessità di scriverti in pvt per dei problemi sul tuo sito.
    Ciao

    RispondiElimina
  2. Avrei la necessità di scriverti in pvt per dei problemi sul tuo sito.
    Ciao

    RispondiElimina

Powered by Blogger.