AppImages: ejecutables genéricos para Linux

appimage

Empaquetar aplicaciones para Linux de forma genérica es un tema recurrente, que ahora vuelve a estar de moda gracias a AppImage, un proyecto de software que facilita la creación de paquetes, capaces de correr en múltiples distribuciones GNU/Linux.

Esto ofrece varias ventajas a primera vista, tanto a nivel del desarrollador al que se le hace la vida más sencilla al no tener que pensar en varias distros, como del usuario que dejará de estar atrapado en ediciones obsoletas de software, pudiendo acceder a versiones más recientes aunque su distribución no lo sea (cualquier RHEL, Debian o Ubuntu LTS por ejemplo), o dejar de preocuparse porque un determinado programa no está empaquetado para su sistema.

Incluso el propio trabajo de los desarrolladores de las distribuciones ser vería relajado, especialmente de los que se dedican a empaquetar los paquetes, ya que las actualizaciones incluidas las de seguridad, llegarían directamente upstream –de la mano del autor original por así decirlo– de una forma totalmente descentralizada, dado que no hay ningún tipo de repositorio central, utilizando información incluida en la propia AppImage.

Para ello se utilizan las conocidas como delta updates, que solo precisan que el usuario descarga la parte de código que ha cambiado, no la totalidad del programa.

Como tantas cosas esto tiene un precio a pagar, y lo hace en forma de espacio malgastado, ya que las appimages incluyen también las dependencias, con lo cual nos vamos a encontrar un montón de software repetido, en forma de bibliotecas usadas por los diferentes programas, y además ejecutándose simultáneamente.

Quizás sería una buena opción como solución intermedia, no desprenderse totalmente del gestor de paquetes tradicional (pacman, zypper, apt, dnf, portage, etc..) y de sus formatos más comunes (rpm, deb, etc.) para la base del sistema, y al mismo tiempo contar con esta solución de las appimages para casos en que no podamos satisfacer dependencias o no exista versión de un programa para nuestra distro.

Es una opción que beneficiaría tanto a los programas menos conocidos, como a las distribuciones que no tienen una comunidad fuerte detrás, que puede acometer ese trabajo de empaquetado.

Existen varias aplicaciones populares disponibles en forma de AppImage que se pueden descargar y ejecutar sin necesidad de instalación como: Krita, Blender, Chromium, Geany, Firefox, Leafpad, LibreOffice, Qcad, Ricochet, VLC, Subsurface –a Linus Torvalds le gusta esto 😉 –, VLC, wxHexEditor, Xchat, Atom, Arduino, AvahiDiscover, Brackets…

Es un proceso -el de “instalación”, ejecución y borrado de la app con sus configuraciones– que se realiza sin necesidad de ser root y desde el espacio de usuario.

Para mejorar la seguridad el desarrollador de la aplicación está considerando la implementación del algún tipo de sandboxing, en futuras actualizaciones de AppImage.

Tenéis más información de este proyecto en su página web, así como una guía para crear AppImages en GitHub.

Vía | Hacker News

16 thoughts on “AppImages: ejecutables genéricos para Linux”

  1. Rafael Arellano says:

    Creo que es una opción muy acertada sobretodo para el grueso de usuarios (que no son usuarios “avanzados” que no quieren saber líos de dependencias, que solo quieren usar una aplicación que funcione bien y les da igual como.

  2. R3is3rsf says:

    Creo que esta es la solucion ideal para programas especificos, y programas comerciales, poder ester como base un sistema estable, y aun asi poder disfrutar de las ultimas versiones de programas o juegos.

  3. Dark-Sagittarius says:

    ¿No es esto algo parecido a lo que que esta haciendo Ubuntu con los Snappy packages? Me refiero a el echo de querer mantener la aplicación y sus dependencias aisladas del resto del sistema para ejecutarse. Me imagino las AppImages como los dmg que se utilizan en OSX a los cuales los copias a tu carpeta de aplicaciones y los ejecutas cuando quieres.

  4. Raul P says:

    Se impone el sentido común, y los viejos dogmas van desapareciendo, no paso mas trabajo compilando ni buscando dependencias.

  5. Rotietip says:

    La idea se ve interesante pero revisando algunos de esos programas veo que están solo para 64 bits, ¿alguien sabe si tienen pensado hacer versiones para 32 bits?

  6. MrSIster says:

    esto lo vi hace un tiempo y probe algunas apps pre-empaquetadas y funcionaba bastante bien. esto no es similiar a lo que pretende hacer ubuntu con snappy?

    1. tannhausser says:

      Tecnicamente tienen sus diferencias ero si, es muy parecido. Hace tiempo Lennart Poettering (el de systemd) también propuso algo parecido.

  7. victorhck says:

    OpenBuildService también ofrece la posibilidad de crear paquetes no sólo para openSUSE, sino también para otras distros…

    Saludos!!

    1. tannhausser says:

      El OBS está genial, pero las AppImages son algo distinto, es un paquete genérico para gobernarlas a todas 🙂

      Un saludo amigo!

  8. Mariano Rajoy says:

    igual ideando un formato de empaquetado con alta compresión y enlace directo a las dependencias del sistema peuda ayudar

  9. jjmarin96 says:

    xdg-apps es otra solución que actualmente se encuentra en un estado preliminar, pero usable. https://www.freedesktop.org/wiki/Software/xdg-app/

    Tiene muchas ventajas, pero quizás las más diferenciales son:

    1) Distribución de Runtimes, para que las aplicaciones se basen en dichos runtimes y reducir en gran medida el problema de duplicación de librerias de los sistemas “bundle”. Actualmente existe un runtime de GNOME y hay otro de KDE en marcha.

    2) Tiene “sandboxing” en su hoja de ruta, para poder aislar las aplicaciones del sistema y usar la aplicaciones de forma segura.

    Se trata de una buena tecnología para que los usuarios puedan usar la última versiones de sus aplicaciones en su distro favorita, aunque sean versiones en desarrollo, con lo cual pueden participar en el proceso de testeo, y por otro lado, facilitar que lo desarrolladores puedan distribuir aplicaciones GNU/Linux, y obviar la fragmentación de distros.

    1. tannhausser says:

      Gracias por la información. Le echaré un vistazo 🙂

  10. Jock Vault says:

    Yo quiero un krita encajonado sin todas las dependencia de kde en mi sistema. La verdad es que esto es bastante útil también preciso de un firefox 17 para usar algunas extensiones creativas obsoletas.

  11. murvock says:

    Pienso que deberia de mantenerse los empaquetados de cada distro “zipper, pacman, apt-get, etc”. y una opcion especial de “modo facil” con este tipo de ejecutables genericos, a veces yo ando tiempo de matarme a trompadas con alguna dependencia o cosas asi “comunes”, pero a veces solo quiero instalar y usar sin joderse la existencia.

  12. cesar says:

    donde puedo encontrar aplicaciones con ese formato?

    1. tannhausser says:

Deja un comentario