GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo convertir de paquete RPM a DEB y DEB a RPM usando Alien

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.


Linux
  1. Cómo enumerar los archivos instalados desde un paquete RPM o DEB en Linux

  2. Cómo crear paquetes desde el origen mediante CheckInstall

  3. Cómo crear un paquete RPM de Linux

  4. Cómo listar, cargar y descargar archivos desde un servidor SFTP usando golang

  5. ¿Cómo modificar un paquete deb?

Cómo convertir paquetes entre .deb y .rpm

Cómo instalar y administrar paquetes en CentOS usando RPM

Cómo convertir paquetes de Linux con Alien

Cómo crear un paquete RPM a partir de un Tarball

Cómo instalar Java 8 JRE y JDK desde un archivo RPM en Linux

Cómo ver y extraer archivos de paquetes rpm, deb, depot y msi