lunedì 14 luglio 2008

Howto: Convertire pacchetti con Alien

Introduzione

Chi usa Linux si rende presto conto che manca uno standard per quel che riguarda l'installazione di pacchetti e che può quindi capitare di dover installare un software che non è disponibile per la propria distribuzione.Per risolvere questo tipo di problema ci viene in soccorso Alien, un tool di conversione tra pacchetti da e nei seguenti formati: Red Hat (.rpm), Debian (.deb), Stampede (.slp), Slackware (.tgz), e .tar.gz.

Se Alien è già installato, troverete quanto potete leggere in questa guida, digitando da terminale:

$ man alien

Ho pensato di tradurlo quasi tutto e pubblicarlo perchè trovo sia comodo averlo a portata di mano e in italiano.


Installazione Alien


Prima di vedere come installarlo e come usarlo è bene sapere che Alien non tiene conto delle differenze tra le configurazioni delle diverse distribuzioni linux, quindi non conviene usarlo per sostituire qualcosa di essenziale come ad esempio init, libc, perchè potrebbe altrimenti danneggiare gravemente il sistema. In generale, se non si può disinstallare un pacchetto senza fermare il sistema, non conviene provare a sostituirlo con una versione alien.

Se alien è fatto partire senza i permessi di root, il pacchetto generato potrebbe avere proprietari e permessi sbagliati.

Per convertire in (ma non dal) formato .deb devono essere installati i pacchetti gcc, make, debmake, dpkg-dev, e dpkg.

Si noti che per il formato .tar.gz, alien semplicemente genera un pacchetto .deb o .rpm che contiene gli stessi file che sono nel file tar. Questi pacchetti funzionano correttamente solo se sono stati compilati seguendo l'organizzazione standard dell'albero delle directory linux. Si eviti di usare alien con i file tar che contengono anche il codice sorgente, a meno che non si voglia installare anch'esso insieme al pacchetto.

Quando alien elabora un file tar, assume che tutti i file in /etc siano file di configurazione.

sudo apt-get install alien

Esempi

Consiglio di leggere le varie opzioni e di trattare questi esempi come indicazioni.

Convertire .rpm in .deb

alien --to-deb package.rpm

sudo alien – d pacchetto.rpm

Installazione pacchetto.deb

sudo dpkg -i pacchetto.deb

Converte il pacchetto .rpm in .deb (la conversione in .deb è di default) e installa il pacchetto generato.


Rimozione pacchetto.deb

sudo dpkg -r nome_pacchetto

OPZIONI

Alien converte o pacchetti nel tipo desiderato, se questo non viene specificato, per default il pacchetto sarà convertito in .deb.

-d, --to-deb

Converte file in formato debian (default)

-r, --to-rpm

Converte in formato rpm

-t, --to-tgz

Converte in formato tgz

--to-slp

Converte in formato slp

-p, --to-pkg

Converte in formato pkg

-i, --install

Installa automaticamente ogni pacchetto generato, e rimuove il pacchetto dopo l'installazione.

-g, --generate

Genera una directory temporanea per i file che verranno inseriti nel pacchetto, ma non genera il pacchetto. Può essere utile quando si vogliano realizzare modifiche sui file prima di costruire il pacchetto. Il pacchetto può essere costruito da questa directory temporanea "debian/rules binary" per i .deb o "rpmbuild -bb .spec" per i .rpm.

-s, --single

Ha la stessa funzione di -g, ma non genera la directory pacchetto.orig. E' utile soltanto nel caso in cui si abbia poco spazio su disco e si desideri realizzare un pacchetto deb.

--patch=patch

Specifica la patch da utilizzare al posto della ricerca automatica in /var/lib/alien.

--anypatch

Forza la compatibilità delle patch con versioni diverse del pacchetto.

--nopatch

Non usa nessun file patch.

--description=desc

Specifica una descrizione per il pacchetto; funziona soltanto quando si converte dal formato tgz.

-c, --scripts

Tenta di convertire gli script che partiranno durante l'installazione e rimozione del pacchetto. Questa funzione è da usare con cautela perchè questi script potrebbero essere scritti per sistemi diversi da quello in cui si tenta di installare il pacchetto convertito.

-T, --test

Testa il pacchetto generato ed è supportato solo per pacchetti debian.

-k, --keep-version

Per default, alien incrementa di uno la versione di ogni pacchetto convertito. Con questa opzione alien non lo fa.

--fixperms

Ripulisce i permessi e le autorizzazioni di tutti i pacchetti. Questa funzione può essere utile se il pacchetto originale non è perfetto. E' utilizzabile soltanto per i pacchetti .deb.

-v, --verbose

Mostra ogni comando che alien esegue durante la conversione del pacchetto.

--veryverbose

Mostra ogni comando che alien esegue durante la conversione del pacchetto unito al rispettivo output.

ENVIRONMENT

Alien riconosce le seguenti variabili d'ambiente:

RPMBUILDOPTS

Opzione per passare a rpm quando si sta costruendo un pacchetto.

RPMINSTALLOPT

Opzione per passare a rpm quando si sta installando un pacchetto.

EMAIL

Se impostata, alien la assume come vostro indirizzo di posta elettronica. Gli indirizzi e-mail sono inclusi nei pacchetti .deb generati.

Nessun commento: