Convertire Pacchetti da RPM a DEB e da RPM a DEB

Sono sicuro che sapete già che ci sono molti modi per installare il software in ambiente Linux: utilizzando il sistema di gestione dei pacchetti fornito dalla vostra distribuzione (aptitude, yum, o zypper, per citare alcuni esempi), tramite la compilazione del codice sorgente (anche se è un po’ raro adesso, durante i primi giorni di Linux era l’unico metodo disponibile), o utilizzando uno strumento come dpkg o rpm per installare rispettivamente i pacchetti .deb e .rpm precompilati.

In questoa guida vi presento Alien, uno strumento che converte tra loro i diversi formati dei pacchetti Linux, (ad esempio .rpm a .deb e viceversa).

Questo strumento, anche se non c’è più il suo ideatore ma si è alla ricerca di un nuovo sviluppatore e afferma, tramite sito web, che alien rimarrà probabilmente nello stato sperimentale, può tornare utile se avete bisogno di un certo tipo di pacchetto, ma lo abbiamo trovato disponibile solo in un altro formato.

Ad esempio, Alien mi ha salvato la giornata una volta quando ero alla ricerca di un driver .deb per una stampante a getto d’inchiostro e non sono riuscito a trovarlo da nessuna parte, il produttore forniva solo un pacchetto .rpm. Ho installato Alien, convertito il pacchetto, e in poco tempo sono stato in grado di usare la mia stampante senza problemi.

Detto questo, dobbiamo chiarire che questa utility non deve essere utilizzata per sostituire importanti file e le librerie di sistema dal momento che sono impostati in modo diverso a seconda da che distribuzione utilizziamo. Dobbiamo utilizzare Alien solo come ultima risorsa, se i metodi di installazione suggeriti all’inizio di questo articolo sono fuori discussione per il programma desiderato.

Ultimo ma non meno importante, dobbiamo notare che, anche se useremo CentOS e Debian in questo articolo, Alien è noto per lavorare anche in Slackware e in Solaris, oltre alle prime due distribuzioni già citate e le loro rispettive famiglie.

Fase 1: Installazione di Alien e delle sue dipendenze

Per installare Alien in CentOS/RHEL 7, è necessario abilitare i repository EPEL e Nux Dextop (sì, è Dextop – non Desktop) repository, in questo modo:

yum install epel-release
rpm –import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
L’ultima versione disponibile in questa repository è attualmente la 0.5 (pubblicato il 10 agosto 2014). Si dovrebbe controllare qui per vedere se c’è una versione più recente prima di procedere ulteriormente:

rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
poi:

yum update && yum install alien
In Fedora, sarà necessario eseguire solo l’ultimo comando.

In Debian e derivati è ancora più semplice da fare, basta scrivere sul terminale:

aptitude install alien
Fase 2: Convertire i pacchetti .deb a .rpm

Per questo test abbiamo scelto il pacchetto dateutils, che fornisce un insieme utility per gestire grandi quantità di dati finanziari. Vedremo ora come scaricare il pacchetto .deb nella distribuzione CentOS 7, convertirlo in .rpm e installarlo:

cat /etc/centos-release
wget http://ftp.us.debian.org/debian/pool/main/d/dateutils/dateutils_0.3.1-1.1_amd64.deb
alien –to-rpm –scripts dateutils_0.3.1-1.1_amd64.deb

Se cerchiamo di installare subito il pacchetto, potremo notare che ci darà un errore fatale, ma nessun problema:

rpm -Uvh dateutils-0.3.1-2.1.x86_64.rpm

Per risolvere questo problema, dobbiamo consentire al repository EPEL di testare ed installare l’utilità rpmrebuild per modificare le impostazioni del pacchetto da ricostruire:

yum –enablerepo=epel-testing install rpmrebuild
Poi:

rpmrebuild -pe dateutils-0.3.1-2.1.x86_64.rpm
Questo comando aprirà il nostro editor di testo predefinito, andiamo alla sezione %file ed eliminiamo le righe che fanno riferimento alle directory menzionate nel messaggio di errore, quindi salviamo il file ed usciamo:

Una volta usciti dall’editor vi verrà chiesto di continuare con la ricostruzione. Se si sceglie Y, il file verrà ricostruito nella directory specificata (diversa dalla directory di lavoro corrente)

Ora si può procedere all’installazione del pacchetto ed alla sua verifica

rpm -Uvh /root/rpmbuild/RPMS/x86_64/dateutils-0.3.1-2.1.x86_64.rpm
rpm -qa | grep dateutils

Infine, è possibile elencare i singoli strumenti che sono stati inclusi con dateutils:

ls -l /usr/bin | grep dateutils

Fase 3: Convertire i pacchetti .rpm a .deb

In questa sezione vi illustrerò come convertire i pacchetti .rpm a .deb. In una distribuzione Debian Wheezy a 32-bit, cerchiamo di scaricare il pacchetto .rpm della shell zsh dai repository di CentOS 6. Si noti che questa shell non è disponibile di default in Debian e derivate.

cat /etc/shells
lsb_release -a | tail -n 4

wget http://mirror.centos.org/centos/6/os/i386/Packages/zsh-4.3.11-4.el6.centos.i686.rpm
alien –to-deb –scripts zsh-4.3.11-4.el6.centos.i686.rpm
È possibile ignorare tranquillamente i messaggi riguardanti la mancanza di una firma

Dopo qualche istante, il file .deb si dovrebbe essere generato e si è pronti all’installazione

dpkg -i zsh_4.3.11-5_i386.deb

Dopo l’installazione, è possibile verificare che zsh si aggiunge alla lista delle shell valide

cat /etc/shells

Conclusione

In questo articolo vi ho spiegato come convertire i pacchetti .rpm a .deb e viceversa, e vi ripeto che deve essere usata come ultima risorsa, quando questi programmi non si trovano né nei repository né tramite il codice sorgente. Mi fa piacere se vorrete condividere questo articolo.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Copyright Giovani e Web 2019
Shale theme by Siteturner