Com convertir de paquets RPM a DEB i DEB a RPM amb Alien


Com segur que ja sabeu, hi ha moltes maneres d'instal·lar programari a Linux: utilitzant el sistema de gestió de paquets proporcionat per la vostra distribució (aptitude, yum o zypper, per citar alguns exemples), compilar des de la font (encara que una mica). rar en aquests dies, era l'únic mètode disponible durant els primers dies de Linux), o utilitzant una eina de baix nivell com dpkg o rpm amb paquets precompilats autònoms .deb i .rpm, respectivament.

En aquest article us presentarem alien, una eina que converteix entre diferents formats de paquets de Linux, sent .rpm a .deb (i viceversa) l'ús més habitual.

Aquesta eina, fins i tot quan el seu autor ja no la manté i indica al seu lloc web que probablement l'alien sempre romandrà en estat experimental, pot ser útil si necessiteu un determinat tipus de paquet, però només podeu trobar aquest programa en un altre format de paquet.

Per exemple, l'alien em va salvar el dia una vegada quan buscava un controlador .deb per a una impressora d'injecció de tinta i no en vaig trobar cap: el fabricant només va proporcionar un paquet .rpm. Vaig instal·lar alien, vaig convertir el paquet i en poc temps vaig poder utilitzar la meva impressora sense problemes.

Dit això, hem d'aclarir que aquesta utilitat no s'ha d'utilitzar per substituir fitxers i biblioteques importants del sistema, ja que es configuren de manera diferent entre les distribucions. Utilitzeu alien només com a últim recurs si els mètodes d'instal·lació suggerits al principi d'aquest article estan fora de dubte per al programa requerit.

Finalment, però no menys important, hem de tenir en compte que, tot i que utilitzarem CentOS i Debian en aquest article, també se sap que alien funciona a Slackware i fins i tot a Solaris, a més de les dues primeres distribucions i les seves respectives famílies.

Pas 1: instal·lació d'Alien i dependències

Per instal·lar alien a CentOS/RHEL 7, haureu d'habilitar els dipòsits EPEL i Nux Dextop (sí, és Dextop, no Desktop), en aquest ordre:

# yum install epel-release
# rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

La darrera versió del paquet que activa aquest dipòsit és actualment la 0.5 (publicada el 10 d'agost de 2015). Heu de comprovar http://li.nux.ro/download/nux/dextop/el7/x86_64/ per veure si hi ha una versió més nova abans de continuar:

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

llavors fes,

# yum update && yum install alien

A Fedora, només caldrà executar l'última ordre.

A Debian i derivats, simplement feu:

# aptitude install alien

Pas 2: conversió de paquet .deb a .rpm

Per a aquesta prova hem escollit dateutils, que proporciona un conjunt d'utilitats de data i hora per tractar grans quantitats de dades financeres. Descarregarem el paquet .deb a la nostra caixa CentOS 7, el convertirem a .rpm i l'instal·larem:

# 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

Important: (Si us plau, tingueu en compte com, per defecte, alien augmenta el número menor de versió del paquet de destinació. Si voleu anul·lar aquest comportament, afegiu el senyalador –keep-version).

Si intentem instal·lar el paquet immediatament, ens trobarem amb un petit problema:

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

Per resoldre aquest problema, habilitarem el repositori epel-testing i instal·larem la utilitat rpmrebuild per editar la configuració del paquet que s'ha de reconstruir:

# yum --enablerepo=epel-testing install rpmrebuild

Llavors corre,

# rpmrebuild -pe dateutils-0.3.1-2.1.x86_64.rpm

Això obrirà el vostre editor de text predeterminat. Aneu a la secció %files i suprimiu les línies que fan referència als directoris esmentats al missatge d'error, després deseu el fitxer i sortiu:

Quan sortiu del fitxer, se us demanarà que continueu amb la reconstrucció. Si trieu Y, el fitxer es reconstruirà al directori especificat (diferent del directori de treball actual):

# rpmrebuild –pe dateutils-0.3.1-2.1.x86_64.rpm

Ara podeu procedir a instal·lar el paquet i verificar com és habitual:

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

Finalment, podeu llistar les eines individuals que es van incloure amb dateutils i, alternativament, comprovar les seves respectives pàgines de manual:

# ls -l /usr/bin | grep dateutils

Pas 3: conversió de paquet .rpm a .deb

En aquesta secció il·lustrarem com convertir de .rpm a .deb. En una caixa Debian Wheezy de 32 bits, descarreguem el paquet .rpm per a l'intèrpret d'ordres zsh des del dipòsit del sistema operatiu CentOS 6. Tingueu en compte que aquest intèrpret d'ordres no està disponible per defecte a Debian i derivats.

# 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

Podeu ignorar amb seguretat els missatges sobre una signatura que falta:

Al cap d'uns moments, el fitxer .deb s'hauria d'haver generat i estar a punt per instal·lar-lo:

# dpkg -i zsh_4.3.11-5_i386.deb

Després de la instal·lació, podeu verificar que zsh s'afegeix a la llista de shells vàlids:

# cat /etc/shells

Resum

En aquest article hem explicat com convertir de .rpm a .deb i viceversa per instal·lar paquets com a últim recurs quan aquests programes no estan disponibles als repositoris o com a codi font distribuïble. Voleu marcar aquest article perquè tots necessitarem un alienígena en un moment o altre.

No dubteu a compartir els vostres pensaments sobre aquest article mitjançant el formulari següent.