Come sicuramente saprai, ci sono molti modi per installare software in Linux:usare il sistema di gestione dei pacchetti fornito dalla tua distribuzione (aptitude, yum o zypper, per citare alcuni esempi), compilare dal sorgente (anche se in qualche modo raro di questi tempi, era l'unico metodo disponibile durante i primi giorni di Linux) o utilizzava uno strumento di basso livello come dpkg o rpm con .deb e .rpm rispettivamente pacchetti precompilati e autonomi.


In questo articolo ti presenteremo alieno , uno strumento che converte tra diversi formati di pacchetto Linux, con .rpm su .deb (e viceversa) essendo l'uso più comune.
Questo strumento, anche quando il suo autore non lo gestisce più e afferma nel suo sito Web che alien probabilmente rimarrà sempre in stato sperimentale, può tornare utile se hai bisogno di un certo tipo di pacchetto ma puoi trovare quel programma solo in un altro formato di pacchetto.
Ad esempio, alieno mi ha salvato la giornata una volta mentre stavo cercando un .deb driver per una getto d'inchiostro stampante e non è riuscito a trovarne:il produttore ha fornito solo un .rpm pacchetto. Ho installato alien, convertito il pacchetto e in poco tempo sono stato in grado di utilizzare la mia stampante senza problemi.
Detto questo, dobbiamo chiarire che questa utilità non dovrebbe essere utilizzata per sostituire importanti file e librerie di sistema poiché sono impostati in modo diverso tra le distribuzioni. Utilizzare alien solo come ultima risorsa se i metodi di installazione suggeriti all'inizio di questo articolo sono fuori questione per il programma richiesto.
Ultimo ma non meno importante, dobbiamo notare che anche se utilizzeremo CentOS e Debian in questo articolo, è noto che alien funziona anche in Slackware e anche in Solaris , oltre alle prime due distribuzioni e alle rispettive famiglie.
Passaggio 1:installazione di Alien e dipendenze
Per installare alieno in CentOS /RHEL 7 , dovrai abilitare EPEL e il Nux Dextop (sì, sono i repository Dextop, non Desktop), in quest'ordine:
# yum install epel-release # rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
L'ultima versione del pacchetto che abilita questo repository è attualmente 0.5 (pubblicato il 10 agosto 2015 ). Dovresti controllare http://li.nux.ro/download/nux/dextop/el7/x86_64/ per vedere se esiste una versione più recente prima di procedere oltre:
# rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
quindi fallo,
# yum update && yum install alien
In Fedora , dovrai solo eseguire l'ultimo comando.
In Debian e derivati, fai semplicemente:
# aptitude install alien
Fase 2:conversione da .deb a .rpm Package
Per questo test abbiamo scelto dateutils , che fornisce una serie di data e tempo utilities per gestire grandi quantità di dati finanziari. Scaricheremo il .deb pacchetto sul nostro CentOS 7 box, convertilo in .rpm e installalo:


# 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


Importante :(Nota come, per impostazione predefinita, alien aumenta il numero minore di versione del pacchetto di destinazione. Se vuoi ignorare questo comportamento, aggiungi il –keep-version bandiera).
Se proviamo a installare il pacchetto subito, riscontreremo un piccolo problema:
# rpm -Uvh dateutils-0.3.1-2.1.x86_64.rpm


Per risolvere questo problema, abiliteremo il repository di test epel e installa rpmrebuild utility per modificare le impostazioni del pacchetto da ricostruire:
# yum --enablerepo=epel-testing install rpmrebuild
Quindi corri,
# rpmrebuild -pe dateutils-0.3.1-2.1.x86_64.rpm
Che aprirà il tuo editor di testo predefinito. Vai a %files
sezione ed elimina le righe che fanno riferimento alle directory menzionate nel messaggio di errore, quindi salva il file ed esci:


Quando esci il file ti verrà chiesto di continuare con la ricostruzione. Se scegli S , il file verrà ricostruito nella directory specificata (diversa dalla directory di lavoro corrente):
# rpmrebuild –pe dateutils-0.3.1-2.1.x86_64.rpm


Ora puoi procedere con l'installazione del pacchetto e verificare come al solito:
# rpm -Uvh /root/rpmbuild/RPMS/x86_64/dateutils-0.3.1-2.1.x86_64.rpm # rpm -qa | grep dateutils


Infine, puoi elencare i singoli strumenti inclusi in dateutils e in alternativa controlla le rispettive pagine man:
# ls -l /usr/bin | grep dateutils


Fase 3:conversione da .rpm a .deb Package
In questa sezione illustreremo come convertire da .rpm su .deb . In una Debian Wheezy a 32 bit box, scarichiamo il .rpm pacchetto per zsh shell dal sistema operativo CentOS 6 deposito. Nota che questa shell non è disponibile per impostazione predefinita in Debian e nei derivati.
# 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
Puoi tranquillamente ignorare i messaggi su una firma mancante:


Dopo alcuni istanti, il .deb il file dovrebbe essere stato generato ed essere pronto per l'installazione:
# dpkg -i zsh_4.3.11-5_i386.deb


Dopo l'installazione, puoi verificare che zsh viene aggiunto all'elenco delle shell valide:
# cat /etc/shells


Riepilogo
In questo articolo abbiamo spiegato come convertire da .rpm a .deb e viceversa per installare i pacchetti come ultima risorsa quando tali programmi non sono disponibili nei repository o come codice sorgente distribuibile. Ti consigliamo di aggiungere questo articolo ai segnalibri perché tutti noi avremo bisogno di alieni prima o poi.
Sentiti libero di condividere le tue opinioni su questo articolo utilizzando il modulo sottostante.