Tabla de contenidos
El alien
programa convierte paquetes de instalación de una distribución de Linux para usar en otra. ¿Pero Snap y Flatpak no hacen que eso sea redundante ahora? Más o menos, pero no es tan simple.
Sistemas de empaquetado de Linux
Para permitir que sus usuarios instalen software, las distribuciones de Linux necesitan un sistema de empaquetado de software. Si la distribución es una bifurcación de otra distribución establecida, generalmente se mantendrá con el sistema de empaquetado de la distribución anterior.
Es por eso que Fedora usa paquetes RPM (que solían significar RedHat Package Manager) y Ubuntu y sus numerosos hijos usan paquetes DEB . DEB es simplemente la abreviatura de «Debian». Otras distribuciones optan por escribir su propio sistema de gestión de paquetes. Los archivos de instalación empaquetados para un administrador de paquetes no son intercambiables con otros administradores de paquetes.
Tradicionalmente, los desarrolladores de aplicaciones tenían que empaquetar su aplicación en todos los formatos que eligieran admitir o trabajar con los mantenedores de las diferentes distribuciones de Linux y pasarles los pasos del empaque. Este último introduce retrasos en la entrega de nuevos lanzamientos a las manos de los usuarios, el primero le da a los desarrolladores mucho trabajo extra.
Los proyectos Snap y Flatpak intentan ofrecer el Santo Grial de la distribución de paquetes: empaque su aplicación una vez e instálela en cualquier distribución de Linux. Por supuesto, puede haber o no un Snap o Flatpak para la aplicación que está buscando.
Puede eliminar completamente los sistemas de empaquetado de la ecuación, siempre y cuando se sienta cómodo con la clonación de un repositorio de Git y la creación de una aplicación a partir del código fuente . Pero no todo el mundo lo es. Y no todas las aplicaciones, incluso en Linux, son de código abierto , por lo que no puede compilar todo desde el código fuente de todos modos.
Los mantenedores de algunas distribuciones son excelentes para obtener paquetes para otras plataformas y volver a empaquetarlos para su propio sistema de administración de paquetes, incluidas las aplicaciones de código cerrado. Pero siempre habrá casos en los que una aplicación ofrezca un DEB o un RPM, los dos grandes formatos, y todos los demás deben resolverlo por sí mismos.
Existen programas como alien
para resolver el problema de convertir un archivo de paquete de otra distribución a la versión que necesita en su computadora Linux. Eso está bien en teoría, pero ¿qué tan exitosos son?
El experimento alienígena
La prueba del budín está en comerlo.
Tomamos tres RPM diferentes y alien
los usamos para convertirlos en DEB. Luego intentamos instalar los DEB recién creados en Ubuntu.
En todos nuestros casos de prueba, también había un DEB disponible para descargar, por lo que lo que estábamos haciendo en realidad era redundante. Pero pensamos que las aplicaciones de prueba ( navegador Microsoft Edge , el editor Atom y Slack ) serían una buena prueba de alien
las capacidades de , por lo que ignoramos los DEB listos para usar.
Instalando alienígena
Instalar alien fue simple en Ubuntu, Fedora y Manjaro.
En Ubuntu puedes usar este comando:
sudo apt instalar extranjero
En Fedora, debe escribir:
sudo dnf instalar extranjero
En Manjaro, el paquete alienígena está en Arch User Repository. Esto significa pacman
que no podrá verlo, por lo que debemos usar un programa auxiliar de AUR como yay
. El nombre del paquete también es ligeramente diferente.
yay -S alien_package_converter
usando alienígena
Para usarlo alien
, especifique el archivo que desea convertir y el formato al que desea convertir. Crea un archivo con el mismo nombre de archivo, generalmente, y con la extensión del formato que solicitó.
Usar alien
para crear un paquete hace alien
que se incremente el número de versión del paquete. Si el número de paquete está en el nombre del archivo, el nombre del archivo también se cambiará.
Estos son los formatos alien
desde y hacia los que se puede convertir.
- -d : Convierte a un archivo DEB, para Debian, Ubuntu y todos los derivados.
- -r : convertir a un archivo RPM, para RedHat, CentOS y Fedora.
- -t : Convierte a un archivo de almacenamiento TAR.GZ , para Arch y sistemas basados en Arch como EndeavourOS y Manjaro .
- -l : Convierte a un archivo LSB, un archivo base estándar de Linux. Esta fue otra iniciativa para desarrollar un formato de paquete de distribución cruzada.
- -p : Convierte a un archivo PKG, un formato utilizado por Solaris, entre otros.
- –to-slp : convertir a un paquete SLP, un formato utilizado por la distribución discontinuada de Stampede Linux.
La opción de formato que usaremos es -d
(DEB) ya que estamos convirtiendo a un archivo DEB. También usaremos la -c
opción (scripts) para convertir cualquier script contenido en el paquete.
Borde de Microsoft
Descargamos un RPM para el navegador Edge de Microsoft y ejecutamos el siguiente comando:
sudo extranjero -d -c microsoft-edge-beta-97.0.1072.54-1.x86_64.rpm
Sin la -c
opción (scripts) no creó el archivo DEB, informó un error. Con la -c
opción, creó el DEB.
Tenga en cuenta que el nombre del archivo DEB contiene 54-2, no 54-1.
Es poco probable que la conversión de scripts termine bien. Es posible que estén escritos para una situación particular o una configuración exclusiva de la plataforma de destino genuina del archivo del paquete original. Debido a esto, no teníamos muchas esperanzas. Sin embargo, intentamos instalar el DEB con el dpkg
programa y la -i
opción (instalar).
sudo dpkg -i microsoft-edge-beta_97.0.1072.54-2_amd64.deb
No funcionó.
También intentamos hacer doble clic en el archivo DEB y usar la aplicación de software de Ubuntu para instalar el DEB. Curiosamente, la aplicación de software sabía que DEB había sido creado por alien
.
Eso tampoco funcionó. Solo para asegurarnos de que el navegador Edge realmente se instalaría en Ubuntu, instalamos el archivo DEB oficial de Microsoft Edge.
sudo dpkg -i microsoft-edge-beta_97.0.1072.54-1_amd64.deb
Eso funcionó sin problemas. Puede ver a continuación Microsoft Edge ejecutándose en Ubuntu.
El editor de átomos
Descargamos el paquete de instalación RPM para el popular editor Atom. Usamos el mismo alien
comando para convertirlo a DEB.
sudo extranjero -d -c átomo.x86_64.rpm
Eso creó un archivo DEB sin advertencias ni errores. Lo instalamos usando el dpkg
comando con la -i
opción (instalar).
sudo dpkg -i atom_1.58.0-1.1_amd64.deb
Eso funcionó perfectamente.
Aplicación de mensajería comercial de Slack
Finalmente, intentamos convertir Slack RPM a DEB.
sudo extranjero -d -c holgura-4.23.0-0.1.fc21.x86_64.rpm
Nuevamente, esto creó un DEB sin advertencias ni errores. Usamos este comando de instalación:
sudo dpkg -i holgura_4.23.0-1.1_amd64.deb
La instalación funcionó a la perfección. Slack estaba funcionando sin problemas.
Resultados mixtos
Una utilidad como alien
esta inevitablemente está librando una batalla cuesta arriba. Las probabilidades están en contra de que pueda funcionar en todos los casos, y esto fue confirmado por nuestra pequeña cantidad de pruebas. Habiendo dicho eso, cuando funcionó fue genial.
Si estás en una situación en la que no hay nada más que hacer, alien
pruébalo. Pero si hay algún otro método disponible para usted (Snap, Flatpak o compilación desde la fuente), pruébelos primero. Incluso los autores de alien
conocen sus limitaciones y ponen esta advertencia en la man
página :
alien no debe usarse para reemplazar paquetes importantes del sistema, como init, libc u otras cosas que son esenciales para el funcionamiento de su sistema. Muchos de estos paquetes se configuran de manera diferente según las diferentes distribuciones, y los paquetes de las diferentes distribuciones no se pueden usar indistintamente. En general, si no puede eliminar un paquete sin dañar su sistema, no intente reemplazarlo con una versión ajena.
Si bien puede sacarte de un aprieto, asegúrate de haber agotado todas las demás posibilidades antes de recurrir a alien
.
Pero, cuando no hay nada más, alien
puede que te sorprenda.