menu

articleComandos Linux: Convertir Paquetes GNU Linux (deb, rpm, targz) con ALIEN

Comandos Linux: Convertir Paquetes GNU Linux (deb, rpm, targz) con ALIEN

Muchos de vosotros me habéis pedido que hablara sobre: "Los conversores de paquetes". Sí, os enseñaré a convertir paquetes en Linux, aunque también algunas cosas a tener en cuenta.

Porque seguramente estarás pensando: ¿Que bien, por fin podrá instalar paquetes Debian en mi Fedora?. ¡Pues no exactamente!

Alien

 

Para poder convertir paquetes, necesitaremos a Alien. Alien es una herramienta para convertir paquetes, ya sea DEB, RPM, TAR GZ, pepitas....

¡Pepitas!

En Fedora, es fácil instalar Alien, para ello abrimos un terminal y ejecutamos:

Imagen
sudo dnf install alien

Si por otro lado utilizas una distribución Debian, sería:

Imagen
sudo apt install alien

Como os gustan tanto los comandos, he pensado que sería interesante hacerlo así. Aunque si utilizas un gestor de paquetes como Synaptic, o Rpmdrake, es tan sencillo como seleccionar el paquete e instalarlo. Por si no quieres utilizar comandos. Aunque luego los tendrás que utilizar.

Imagen

Una vez tengamos Alien ya podemos convertir paquetes. ¡Bien!

Buscar un Paquete

 

Lo siguiente que tendríamos que hacer es buscar un paquete. Por ejemplo, un programa llamado MC.

Imagen

MC significa significa Midnight Commander, un gestor de archivos, pero para el terminal.

Este paquete no lo tengo instalado, significa que si ejecuto "mc" en el terminal, me saldrá un error diciendo que el comando no existe.

Para empezar necesitamos el paquete Debian de este programa, desde los repositorios de Debian, podemos descargarlos.

Imagen

Desde este enlace descargará MC:
https://packages.debian.org/search?keywords=mc

¿Qué mejor lugar que el repositorio Debian para descargar un paquete Debian?

Imagen

Una vez tengamos a nuestro objetivo, lo convertiremos en RPM. Y ahora es cuando empieza la magia.

Cómo convertir el Paquete

 

Ejecutamos un terminal de comandos, en la misma carpeta donde se encuentre nuestro objetivo:

Imagen
alien -c paquete.deb -r
  • El argumento C especifica el nombre del paquete a convertir.
  • El argumento R especifica que el paquete se convertiré a RPM.
  • El argumento D especifica que el paquete se convertiré a DEB.

Al hacer esto, ya tenemos el paquete RPM convertido.

Instalar el Paquete

 

Para instalar MC, ejecutamos:

sudo alien -i -c paquete_deb_convertido.rpm
  • El argumento I especifica que el paquete será instalado.

Esta vez, ya no usaremos el paquete DEB, sino el RPM que hemos obtenido. Y seguramente te preguntarás. ¿Dónde está lo complicado?

Si intentamos ejecutar este programa, con el comando "mc", nos aparecerá un error: falta una biblioteca llamada "libslang2".

Imagen

¿Cual es el dilema? Esto convierte paquetes, y los instala, pero no instala sus dependencias.

¡Ese es el problema! ¿Se puede solucionar? Más o menos.

Tendríamos que repetir el mismo proceso para el paquete que provee al sistema con esa biblioteca.

Imagen

Es decir, descargar, convertir e instalar este paquete:
https://packages.debian.org/search?keywords=libslang2

Aún así, puede que continúe apareciendo un fallo por falta de bibliotecas (a pesar de haberlas instalado)

¿Qué es lo que pasa ahora?

El paquete DEB instala las bibliotecas en el directorio "/lib/x86_64-linux-gnu", en cambio, los paquetes RPM, y por ende, Fedora, los instala en el directorio "/lib64/".

Así que, para que esto funcione, tendría que copiar, con el comando "cp", la biblioteca que acabo de instalar de un directorio a otro.

Imagen
sudo cp /lib/x86_64-linux-gnu/la_librería.lib.so /lib64/la_librería.lib.so 

Conclusión

 
Imagen

Os voy a ser sincera. He escogido un paquete, un programa, en este caso, con pocas dependencias.

¿Por qué? Para hacer el vídeo y explicar esto.

Quiero dar a entender que es complicado convertir paquetes de un formato a otro y si el paquete tiene muchas dependencias, será un proceso muy entretenido ya que hay que resolverlas una por una manualmente.

A parte de eso, puede haber diferencias de directorio, como lo que me ha pasado con la biblioteca que he instalado.

Habéis visto cómo se hace, más o menos, pero haced esto como última opción, porque se os puede complicar la cosa.

No es recomendable instalar paquetes diferentes a los que utiliza vuestra distribución.