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.