GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo convertir paquetes de Linux con Alien

Es posible que los desarrolladores y mantenedores de paquetes no siempre creen paquetes para todas las distribuciones de Linux. Algunos paquetes pueden estar disponibles solo para una plataforma Linux específica. En tales casos, puede usar herramientas de conversión de paquetes como Alien para convertir fácilmente paquetes de Linux a diferentes formatos. En esta guía, veremos qué es Alien, cómo instalar Alien en varios sistemas operativos Linux y luego cómo convertir un paquete Linux de un formato a otro usando el convertidor de paquetes Alien.

¿Qué es Alien?

Alien es un convertidor de paquetes de línea de comandos que convierte entre diferentes formatos de paquetes de Linux, como Red Hat rpm, Debian deb, Stampede slp, Slackware tgz y Solaris pkg, etc.

Alien actualmente admite los siguientes formatos de paquetes:

  • Base estándar de Linux (LSB),
  • .rpm compatible con LSB paquetes,
  • .deb ,
  • Estampida (.slp ),
  • Solaris (.pkg )
  • Slackware (.tgz , .txz , .tbz , .tlz ).

Los programas alienígenas vienen en rescate cuando un paquete específico o una versión específica de un paquete no está disponible para su distribución de Linux. Puede convertir fácilmente dicho paquete a su formato de paquete preferido usando Alien e instalarlo en su sistema.

Alien no es solo un convertidor de paquetes, también puede instalar los paquetes generados automáticamente después de la conversión del paquete. Incluso puede tener la opción de convertir los scripts que deben ejecutarse cuando se instala el paquete. Debe tener cuidado al usar esta opción. Debe examinar los scripts detenidamente y comprobar qué hacen estos scripts antes de utilizar esta opción.

Aviso: Alien no debe usarse para convertir paquetes importantes del sistema, como init , libc , que son necesarios para el funcionamiento de su sistema Linux. Los paquetes del sistema que están diseñados específicamente para una distribución de Linux en particular no se pueden usar indistintamente y pueden romper su sistema si intenta instalarlos a la fuerza.

Instalar Alien en Linux

El convertidor de paquetes Alien está disponible en los repositorios predeterminados de las distribuciones populares de Linux.

Para instalar Alien en Alpine Linux, ejecute:

$ sudo apk add alien

Instale Alien en Debian, Ubuntu LTS, Linux Mint, Pop!_OS:

$ sudo apt install alien

Instalar Alien en Fedora:

$ sudo dnf install alien

Instale Alien en CentOS 8, RHEL 8, AlmaLinux 8, Rocky Linux 8:

$ sudo dnf install epel-release
$ sudo dnf install alien

Convertir paquetes de Linux usando Alien

La sintaxis general para convertir paquetes de Linux usando Alien de un formato a otro es:

alien [--to-deb] [--to-rpm] [--to-tgz] [--to-slp] [options] file [...]

¡Convertir paquetes usando Alien es muy fácil!

Para convertir un .rpm paquete en un .deb paquete, simplemente ejecute alien como root o sudo usuario:

$ sudo alien --to-deb /path/to/file.rpm

Del mismo modo, para convertir .deb archivo a .rpm , ejecuta:

$ sudo alien --to-rpm /path/to/file.deb

Aquí está la lista de indicadores admitidos para convertir paquetes de Linux a diferentes formatos.

  • -d , --to-deb - Hacer paquetes debian. Este es el valor predeterminado.
  • -r , --to-rpm - Hacer paquetes rpm.
  • -l , --to-lsb - Haz un paquete LSB.
  • -t , --to-tgz - Hacer paquetes tgz.
  • --to-slp - Hacer paquetes slp.
  • -p , --to-pkg - Hacer paquetes pkg de Solaris.

Veamos algunos ejemplos. Para el propósito de esta guía, usaré hello world .rpm paquete. Tenga en cuenta que hello El paquete está empaquetado para casi todas las distribuciones de Linux. Así que no necesitas convertirlo. Lo estoy usando solo por el bien de la demostración.

Convertir paquetes RPM a paquetes DEB usando Alien

Ahora vamos a convertir el paquete hello rpm a .deb formatee usando Alien como a continuación:

$ sudo alien --to-deb hello-2.10-5.fc34.x86_64.rpm

O en breve,

$ sudo alien -d hello-2.10-5.fc34.x86_64.rpm

Esto convertirá el .rpm dado paquete en .deb paquete y guarde el paquete generado en el directorio actual.

Aviso: Si no se especifica ningún indicador, Alien convertirá los paquetes a .deb formato por defecto.

Puede instalar el paquete generado utilizando el administrador de paquetes predeterminado.

También podemos convertir varios paquetes a la vez. El siguiente comando convertirá los paquetes dados (hello &vim) a .deb formato.

$ sudo alien hello-2.10-7.x86_64.rpm vim-enhanced-8.2.2637-1.fc34.x86_64.rpm 

Convierta paquetes DEB en paquetes RPM usando Alien

Del mismo modo, podemos convertir el .deb paquete en .rpm archivo de paquete como a continuación:

$ sudo alien --to-rpm hello-2.10-5.fc34.x86_64.rpm

O en breve,

$ sudo alien -r hello-2.10-5.fc34.x86_64.rpm

Instalar paquetes automáticamente

A veces, es posible que desee instalar los paquetes generados automáticamente.

Para convertir un paquete e instalarlo automáticamente con Alien, use -i bandera.

$ sudo alien -d -i hello-2.10-7.x86_64.rpm 

Este comando convertirá el paquete .rpm dado al formato de paquete .deb y luego lo instalará, y finalmente eliminará el paquete generado.

Salida de muestra:

	dpkg --no-force-overwrite -i hello_2.10-8_amd64.deb
Selecting previously unselected package hello.
(Reading database ... 52712 files and directories currently installed.)
Preparing to unpack hello_2.10-8_amd64.deb ...
Unpacking hello (2.10-8) ...
Setting up hello (2.10-8) ...
Processing triggers for man-db (2.9.4-2) ...

Convertir a múltiples formatos de paquetes

Alien puede crear múltiples formatos de archivo de paquete a partir de un solo archivo de paquete. El siguiente ejemplo muestra cómo crear .deb y .tgz paquetes desde un .rpm archivo.

$ sudo alien --to-deb --to-tgz hello-2.10-7.x86_64.rpm

Mantener números de versión

De forma predeterminada, Alien agrega uno al número de versión menor de cada paquete que convierte. Por ejemplo, si el número de versión es 1.2-3, Alien agregará uno a la versión secundaria y lo cambiará a 1.2-4.

Eche un vistazo a la siguiente salida del comando.

$ sudo alien --to-deb hello-2.10-7.x86_64.rpm 
hello_2.10-8_amd64.deb generated

La versión del paquete fuente en el comando anterior es 2.10.7. Después de la conversión del paquete, Alien cambió la versión secundaria de 7 a 8 en el archivo de destino.

Si no desea que Alien cambie el número de versión, use -k , --keep-version bandera para mantener el número de versión original en el paquete generado.

$ sudo alien -k --to-deb hello-2.10-7.x86_64.rpm 
hello_2.10-7_amd64.deb generated

Como puede ver arriba, el archivo de origen y el de destino tienen el mismo número de versión.

Obtener ayuda

Para mostrar la breve descripción de Alien y todas las opciones generales admitidas, consulte la sección de ayuda de Alien ejecutando el siguiente comando:

$ alien --help

Además, consulte la página del manual.

$ man alien

Conclusión

No daré ninguna garantía sobre la precisión del convertidor Alien. Probé solo algunos paquetes, como Vim, Hello world y Nano. Por lo que he probado, Alien funciona bien para mí en Debian 11 bullseye.

Probablemente no funcione para algunos paquetes que dependen de una gran cantidad de dependencias. El resultado puede variar de un paquete a otro.

En tales casos, es posible que deba compilarlos desde el origen manualmente o usar otras aplicaciones confiables como CheckInstall o Fpm . Le sugiero que consulte los siguientes recursos para aprender a crear paquetes desde el código fuente.

  • Cómo compilar paquetes Debian desde el código fuente
  • Cómo compilar paquetes desde el origen mediante CheckInstall
  • Cómo crear fácilmente paquetes de Linux para varias plataformas
  • Recrear paquetes binarios de Debian que ya están instalados en un sistema
  • Cómo convertir paquetes DEB en paquetes Arch Linux

Espero que esto ayude.


Linux
  1. Gestión de paquetes de Linux con apt

  2. Cómo construir paquetes rpm

  3. Cómo eliminar paquetes huérfanos en CentOS Linux

  4. Cómo usar el administrador de paquetes XBPS en Void Linux

  5. Cómo crear un paquete RPM de Linux

Cómo enumerar los paquetes instalados en Linux

Cómo asegurar servidores Linux con SE Linux

Cómo convertir una página web a PDF en Linux

Cómo degradar paquetes en el sistema Linux:la guía definitiva

Cómo enumerar los paquetes instalados en Linux mediante la administración de paquetes

Cómo ejecutar paquetes .run y .bin en el sistema Linux