51 - Sobre la nueva paquetería
¿Conoces los nuevos formatos de paquetería?¿Conoces AppImage, Snap, Flatpak?¿Cual es el mejor?¿Cual te conviene?¿El mejor?¿Tienes que empezar a utilizarlos?
En el capítulo 104 de los Hangouts de Wintablet.info se comentó sobre la nueva paquetería en Linux, Snap, Flatpak y AppImage. Igualmente, en un artículo de hace ya algunos meses hice una comparativa de los tres tipos de paquetes, AppImage, Snap y Flatpak. Sin embargo, en el episodio de hoy del podcast quería adentrarme en ellos, y mostrarte, no solo mi punto de vista, sino también la experiencia de usuario.
Si no conoces estos relativamente nuevos formatos de paquetería, este nuevo episodio del podcast es ideal para ti. Si por el contrario, ya los estás utilizando, igualmente debes escuchar el podcast, porque casi con toda seguridad te sorprende… En cualquier caso, tienes por delante unos minutos que espero sean entretenidos y de tu interés.
Sobre la nueva paquetería
En este nuevo episodio del podcast, tal y como te he amenazado en la introducción, te voy a comentar sobre estos tres, relativamente nuevos, sistemas de paquetería. Y te digo relativamente nuevos, porque AppImage, ya lleva entre nosotros desde 2011, y esto, en el mundo de la informática, ya es antiguo.
Un poquito de historia sobre paquetería
A continuación te cuento por encima algo de historia sobre los tres sistemas de paquetería para que nos centremos en la situación.
AppImage
Este formato de paquetería, surge para distribuir aplicaciones en Linux sin que sea necesaria su instalacióin. Se lanzó por primera vez bajo el nombre de klik, para ser renombrada en 2011 a PortableLinuxApps, y en 2013 a AppImage, su nombre acutal.
Lo que mejor define a esta aplicación es que no es necesario instalarla, ni necesita de otras aplicaciones para funcionar… al menos en principio. El archivo que descargamos de donde sea, es una imagen de la aplicación, de forma que cuando la ejecutamos, se monta y funciona.
AppImage no dispone de una tienda de aplicaciones oficial, pero puedes descargar las imágenes desde cualquier sitio. Sin embargo, existe un lugar donde encontrar y descargar cientos de aplicaciones AppImageHub.
Respecto a lo comentado anteriormente, de que no necesita de instalación es relativamente cierto. Si, la puedes hacer funcionar perfectamente, pero tiene dos problemas, ni se actualiza, ni se integra en el escritorio. Para resolver estos problemas es necesario añadir dos paquetes complementarios.
appimaged
. Este es un demonio que se encarga dfe poner las aplicaciones en los menús, registrar los tipos MIME, icones, etc.AppImageUpdate
. Este segundo paquete te permite actualizar las aplicaciones AppImage, que tengas en tu equipo.
Snap
En diciembre de 2014 Mark Suttleworth, el actual CEO de Canonical, anunció snappy, cuya primera versión se liberó ese mismo mes. Una de las características de los snaps es que no dependen de ninguna tienda, aunque actualmente apunta a la tienda de Ubuntu.
Otra de las características que lo diferencia claramente de AppImage y de Flatpak, es que no solo está orientado al escritorio, sino también a la línea de comandos. Al final, su origen se encuentra en el IoT internet de las cosas.
Flatpak
Flatpak surge como idea en 2013, sin embargo, no es hasta 2016 cuando se libera la primera versión. Se trata de una herramienta que nos permite desplegar, gestionar y virtualizar aplicaciones en los entornos de escritorio Linux. Está diseñado para funcionar en sesiones de escritorio, en tanto en cuanto utiliza servicios proporcionados por la sesión, como puede ser dbus.
Ventajas de los tres formatos
Claramente la ventaja que nos ofrece cualquiera de los formatos comentados anteriormente, es que nos permite instalar cualquier aplicación en cualquier distribución. Además nos permite ejecutar la aplicación con mas o menos seguridad, dependiendo del formato.
Adopción de formatos
Me remito de nuevo al artículo comentado sobre AppImage, Snap y Flatpak, para comentarte sobre la adopción de cada uno de los formatos.
En ese artículo ya comentaba lo difícil que era contabilizar la adopción de AppImage. Sin embargo, para tener una idea, contemplé aquella aplicaciones que tuviera como paquete appimage
.
En general la adopción de Flatpak y Snap es bastante irregular en cuanto a distribuciones, y versiones se refiere. Sin embargo, de los datos recogidos en el momento de escribir el artículo, la mas extendida era Flatpak.
Por último, algo que me llamó la atención en el momento de escribir aquel artículo, es que había distribuciones que tenían una versión de snap superior a la de Ubuntu… curioso en cuanto al menos.
Sobre las características de los tres formatos
De nuevo me remito al mencionado artículo, donde hago una comparativa de los tres formatos. Sin embargo quiero destacarte algunos puntos bastante interesantes,
- AppImage no tiene soporte, al contrario que Snap, que lo tiene por parte de Canonical y Flatpak por parte de Red Hat.
- AppImage, es el único de los tres, que viaja con todas las librerías y dependencias necesarias. Por el contrario, Snap y Flatpak, utiliza complementos… Esto lo comentaré masa adelante, durante las pruebas realizadas con GIMP.
- Respecto al confinamiento, o lo que los modernos llaman sandboxing, indicar que tanto Snap como AppImage permiten la ejecución sin confinamiento, mientras que Flatpak no. Sin embargo, mientras que AppImage permite utilizar diferentes confinamientos, Snap y Flatpak están forzados a utilizar AppArmor y Bubblewrap respectivamente.
- En lo que a instalación o ejecución se refiere, el único que es ejecutable de los tres, sin necesidad de instalación es AppImage, mientas que los otros dos necesitan ser instalados. No solo esto, sino que además mientras que AppImage se puede ejecutar si derechos de administrador, para los otros, es requisito imprescindible instalarlos como administrador.
- Respecto a la distribución de aplicaciones, mientras que Snap y Flatpak están organizados en repositorios, AppImage no lo necesita, en tanto en cuanto, solo tienes que descargar la aplicación. Pero tanto Snap como Flatpak, permite instalar varios repositorios.
- En cuanto a actualizaciones, Snap y Flatpak lo hacen desde repositorio, mientras que en el caso de AppImage, o bien, te encargas tu, o bien utilizas una herramienta opcional como es
AppImageUpdate
. - Por último el tamaño en disco, es bastante variable… pero esto lo dejo para el taller que viene de instalación.
Instalando GIMP
Las instalaciones las estamos haciendo desde terminal porque nos permite conocer de forma precisa el tiempo y todo lo que hace entre bambalinas.
Hay que tener en cuenta, que en los tiempos de instalación interviene, como parte fundamental el tiempo de descarga, que por la mala conexión, altera los resultados.
Para las pruebas he utilizado VMWare Workstation 15 Player
Probando GIMP con todas las opciones posibles
Desde librería: Versión: 2.8.22 Espacio ocupado: 16 MB Tiempo de inicio de la aplicación: 3s – 4s
Snap
Proceso de instalación de snap
sudo apt install snap snapd
Buscamos instalar gimp
snap search gimp
Resultado
Nombre Versión Editor Notas Resumen
gimp 2.10.8 snapcrafters - GNU Image Manipulation Program
djpdf 0.0.9 unrud - Create small, searchable PDFs from scanned documents
Instalamos
sudo snap install gimp
Tiempo de instalación de gimp: 5 minutos 22 segundos
Además de gimp, ha traído otras paquetes como puede ser core, core18 del canal estable Después de instalar GIMP y todo lo que necesita 13607. Es decir, 1.853 MB
Si ahora desinstalamos GIMP.
- Tiempo de desinstalación: 21 segundos
- Espacio: 1064 MB
Volvemos a instalar GIMP
Tiempo de re instalación de gimp: 38 segundos
Cuando intento iniciar GIMP desde el escritorio me llevo la sorpresa de que no lo encuentra. Lo inicio directamente desde el terminal,
/snap/bin/gimp
- Tiempo de primer inicio de gimp: 15 segundos
- Tiempo de reinicio de gimp: 5 segundos
- Aspecto: ochentero total
Flatpak
Para versión 18.10 La instalación es tan sencilla como sudo apt install flatpak
, para versiones anteriores,
como es el caso, es necesario añadir un repositorio antes de instalar,
sudo add-apt-repository ppa:alexlarsson/flatpak
sudo apt update
sudo apt install flatpak
También es necesario instalar un segundo paquete para integrar flatpak con el centro de software. En este caso, lo voy a omitir, porque al fin y al cabo, las pruebas las voy a realizar directamente desde el terminal.
sudo apt install gnome-software-plugin-flatpak
Por último, es necesario añadir un repositorio desde donde instalar los paquetes,
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Para comocer los repositorios remotos,
flatpak remotes
Buscamos gimp
flatpak search gimp
El tiempo que tarda en hacer la búsqueda es despreciable
org.gimp.GIMP 2.10.8 stable flathub Cree imágenes y edite fotografías
com.github.unrud.djpdf 0.0.9 stable flathub Create small, searchable PDFs from scanned documents
Instalamos gimp
flatpak install flathub org.gimp.GIMP
Al contrario de lo que sucedió en el caso de snap, aquí con flatpak, ya nos informa de que necesita instalar otras cosillas para que GIMP pueda funcionar. En concreto org.gnome.Platform
, org.freedesktop.Platform.ffmpeg
, org.gtk.Gtk3theme.Mint-Y
, org.gnome.Platform.Locale
y por supuesto org.gimp.GIMP
. Además nos indica que todo ello supone aproximadamente 1.269 MB de descarga
Y desde el propia Live USB me ha dicho nanai de la china
es decir que no queda espacio y que no lo va a instalar.
Al pensar en esta expresión, la he buscado y sorpresa…
Los Nanai son una minoría étnica muy reducida que habita parte en la zona de Siberia en Rusia (de donde viene el nombre de Nanai) y parte en una provincia de nombre impronunciable de China. En total unas 18.000 personas, Vamos a instalar Flatpak
Así que he reiniciado el Live USB, y desde cero he comenzado de nuevo toda la instalación, primero flatpak
y el repositorio, para terminar con la instalación de GIMP, incluyendo todos los paquetes necesarios que he comentado anteriormente. En este segundo intento, tampoco me ha dejado, con lo que al final me toca crear la máquina virtual. Lo cual me sorprende, en el primer caso pensé que era porque al haber instalado el snap de GIMP no quedaba espacio, pero en el segundo caso, no había instalado nada de snap.
La cuestión es que finalmente desde Live USB ha sido imposible instalar el flatpak de GIMP, lo que me ha obligado a crear una máquina virtual e instalar GIMP en la máquina virtual. Aquí no he tenido ningún problema, descargando e instalando los paquetes comentados.
Situación después de la instalación: 7870 Espacio ocupado: 7870 – 6823 = 1047 Tiempo de instalación: 4 minutos 49 segundos
Voy a desinstalar e instalar,
flatpak uninstall org.gimp.GIMP
Espacio ocupado: 216 MB
Reinstalamos
flatpak install flathub org.gimp.GIMP
Tiempo de reinstalación de GIMP: 1 minuto 1 segundo Espacio ocupado: 216 MB
Ha llegado el momento de probar GIMP con flatpak. De nuevo, al igual que en el caso de snap, lo lanzo desde el terminal,
flatpak run org.gimp.GIMP
La primera vez que se inicia GIMP ha tardado unos 17 segundos aproximadamente y la segunda unos 5 segundos aproximadamente.
Respecto a la integración con el tema instalado, tanto en el caso de Linux Mint Cinnamon, como en el caso de Ubuntu escritorio GNOME, se integra bastante bien. Se notan unos pocos detalles que no terminan de cuadrar, pero tienes que fijarte mucho para darte cuenta. Desde luego no tiene nada que ver con la integración de SNAP.
AppImage
AppImage realmente no instala software. Es una imagen comprimida con todas las dependencias y librerías, que necesita para funcionar.
De esta forma cada vez que ejecutas un archivo de la paquetería AppImage, estás ejecutando el software contenido. No hay descompresión, ni extracción, ni instalación, directamente se ejecuta.
- Tiempo de RE instalación: 0
- Espacio ocupado: 0.16 GB
- Integración con el tema: perfecta
Conclusión
Para mi, el formato ganador de paquetería, sin lugar a dudas es AppImage. Sin embargo, hay que reconocer el trabajo que están haciendo los otros formatos.
Por un lado, todos los meses vemos nuevas incorporaciones de aplicaciones en la tienda de snaps. Y no solo aplicaciones empaquetadas por terceros, sino aplicaciones empaquetadas por los propios desarrolladores, como puede ser el caso de Visual Studio Code, o el caso de Spotify. Sin embargo, las aplicaciones empaquetadas por terceros, pronto quedan desactualizadas.
Otro de los problemas de los paquetes snap es su mala o poco lograda integración con el entorno de escritorio. Lo cierto es que GIMP con el tema por defecto, realmente da muy mala impresión.
Respecto a Flatpak, se nota que están trabajando duramente en esta paquetería, por que el problema de la integración con el escritorio, prácticamente a desaparecido. Aunque el espacio que ocupar y el tiempo de inicio de las aplicaciones, es algo que se debe resolver.
Por todo lo comentado, insisto, mientras haya AppImage de una aplicación este es el formato por el que me voy a decantar sin lugar a dudas.
Más información,