Como estoy seguro de que ya sabe, hay muchas formas de instalar software en Linux:usando el sistema de administración de paquetes proporcionado por su distribución (aptitude, yum o zypper, por nombrar algunos ejemplos), compilando desde la fuente (aunque un poco raro en estos días, era el único método disponible durante los primeros días de Linux), o utilizando una herramienta de bajo nivel como dpkg o rpm con .deb y .rpm paquetes precompilados independientes, respectivamente.
En este artículo te presentaremos a alienígenas , una herramienta que convierte entre diferentes formatos de paquetes de Linux, con .rpm a .deb (y viceversa) siendo el uso más común.
Esta herramienta, incluso cuando su autor ya no la mantiene y afirma en su sitio web que alien probablemente siempre permanecerá en estado experimental, puede ser útil si necesita un cierto tipo de paquete pero solo puede encontrar ese programa en otro formato de paquete.
Por ejemplo, extranjero me salvó el día una vez cuando estaba buscando un .deb controlador para una inyección de tinta impresora y no pude encontrar ninguna:el fabricante solo proporcionó un .rpm paquete. Instalé alien, convertí el paquete y en poco tiempo pude usar mi impresora sin problemas.
Dicho esto, debemos aclarar que esta utilidad no debe usarse para reemplazar archivos y bibliotecas importantes del sistema, ya que se configuran de manera diferente en todas las distribuciones. Solo use alien como último recurso si los métodos de instalación sugeridos al comienzo de este artículo están fuera de discusión para el programa requerido.
Por último, pero no menos importante, debemos tener en cuenta que aunque usaremos CentOS y Debian en este artículo, también se sabe que alien trabaja en Slackware e incluso en Solaris , además de las dos primeras distribuciones y sus respectivas familias.
Paso 1:Instalación de Alien y Dependencias
Para instalar alien en CentOS /RHEL 7 , deberá habilitar el EPEL y el Nux Dextop (sí, es Dextop, no Desktop), en ese orden:
# yum install epel-release # rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
La última versión del paquete que habilita este repositorio es actualmente 0.5 (publicado el 10 de agosto de 2015 ). Debe verificar http://li.nux.ro/download/nux/dextop/el7/x86_64/ para ver si hay una versión más nueva antes de continuar:
# rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
entonces hazlo,
# yum update && yum install alien
En Fedora , solo necesitarás ejecutar el último comando.
En Debian y derivados, simplemente haga:
# aptitude install alien
Paso 2:Conversión de paquete .deb a .rpm
Para esta prueba hemos elegido dateutils , que proporciona un conjunto de fecha y tiempo utilidades para manejar grandes cantidades de datos financieros. Descargaremos el .deb paquete a nuestro CentOS 7 cuadro, conviértalo a .rpm e instalarlo:
# 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 :(Tenga en cuenta cómo, de forma predeterminada, alien aumenta el número de versión menor del paquete de destino. Si desea anular este comportamiento, agregue –keep-version bandera).
Si intentamos instalar el paquete de inmediato, nos encontraremos con un pequeño problema:
# rpm -Uvh dateutils-0.3.1-2.1.x86_64.rpm
Para solucionar este problema, habilitaremos el repositorio de pruebas de epel e instale el rpmrebuild utilidad para editar la configuración del paquete a reconstruir:
# yum --enablerepo=epel-testing install rpmrebuild
Entonces corre,
# rpmrebuild -pe dateutils-0.3.1-2.1.x86_64.rpm
Lo que abrirá su editor de texto predeterminado. Ir a los %files
sección y elimine las líneas que hacen referencia a los directorios mencionados en el mensaje de error, luego guarde el archivo y salga:
Cuando sale el archivo se le pedirá que continúe con la reconstrucción. Si elige Y , el archivo se reconstruirá en el directorio especificado (diferente al directorio de trabajo actual):
# rpmrebuild –pe dateutils-0.3.1-2.1.x86_64.rpm
Ahora puede proceder a instalar el paquete y verificar como de costumbre:
# rpm -Uvh /root/rpmbuild/RPMS/x86_64/dateutils-0.3.1-2.1.x86_64.rpm # rpm -qa | grep dateutils
Finalmente, puede enumerar las herramientas individuales que se incluyeron con dateutils y, alternativamente, verifique sus respectivas páginas man:
# ls -l /usr/bin | grep dateutils
Paso 3:Conversión de paquete .rpm a .deb
En esta sección ilustraremos cómo convertir de .rpm a .deb . En un Debian Wheezy de 32 bits cuadro, descarguemos el .rpm paquete para zsh shell del sistema operativo CentOS 6 repositorio. Tenga en cuenta que este shell no está disponible de forma predeterminada en Debian y derivados.
# 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
Puede ignorar con seguridad los mensajes sobre una firma faltante:
Después de unos momentos, el .deb el archivo debería haberse generado y estar listo para instalar:
# dpkg -i zsh_4.3.11-5_i386.deb
Después de la instalación, puede verificar que zsh se agrega a la lista de shells válidos:
# cat /etc/shells
Resumen
En este artículo hemos explicado cómo convertir de .rpm a .deb y viceversa para instalar paquetes como último recurso cuando dichos programas no están disponibles en los repositorios o como código fuente distribuible. Querrá marcar este artículo como favorito porque todos nosotros necesitaremos extraterrestres en un momento u otro.
Siéntase libre de compartir sus pensamientos sobre este artículo utilizando el formulario a continuación.