AppImage (anteriormente conocida como klik y PortableLinuxApps ) es un formato de código abierto para distribuir software portátil en Linux . Su objetivo es permitir la instalación de software binario independientemente de distribuciones de Linux específicas , un concepto al que a menudo se hace referencia como empaquetado ascendente . Como resultado, se puede instalar y ejecutar una AppImage en Ubuntu , Arch Linux y Red Hat Enterprise Linux sin necesidad de utilizar archivos diferentes. Su objetivo es ser un formato autónomo, sin raíz e independiente de la distribución de Linux subyacente. [1]
Lanzado por primera vez en 2004 con el nombre de klik, se desarrolló continuamente y luego se renombró en 2011 como PortableLinuxApps y más tarde en 2013 como AppImage. La versión 2 se lanzó en 2016.
El predecesor de AppImage, klik, fue diseñado en 2004 por Simon Peter. [2] El software del lado del cliente está licenciado bajo la GNU GPL . klik se integraba con los navegadores web en la computadora del usuario. Los usuarios descargaban e instalaban el software escribiendo una URL que comenzaba con klik://
. Esto descargaba un archivo de "receta" klik, que se usaba para generar un archivo .cmg . Para los ingredientes principales, los paquetes .deb preconstruidos de los repositorios Debian Stable generalmente se introducían en el proceso de generación de la receta. De esta manera, una receta podía usarse para proporcionar paquetes a una amplia variedad de plataformas. Con klik, solo se podían ejecutar ocho programas a la vez debido a la limitación de montar imágenes comprimidas con el núcleo Linux , a menos que se usara FUSE . El archivo se volvía a montar cada vez que se ejecutaba el programa, lo que significa que el usuario podía eliminar el programa por completo simplemente borrando el archivo. La siguiente versión, klik2, estaba en desarrollo e incorporaría de forma nativa el módulo del núcleo FUSE, pero nunca pasó de la etapa beta. [3] Alrededor de 2011, el proyecto klik quedó inactivo y el sitio web dejó de estar disponible. [4]
En esa época, Simon Peter inició un proyecto sucesor llamado PortableLinuxApps con objetivos similares. [5] La tecnología fue adoptada, por ejemplo, por el repositorio "portablelinuxgames.org", que ofrecía cientos de videojuegos, en su mayoría de código abierto . [6]
Alrededor de 2013, el software cambió de nombre de portableLinuxApps a AppImage; la licencia pasó a ser la licencia MIT . AppImage es el formato y AppImageKit es una implementación concreta de código abierto. El desarrollo se lleva a cabo en un repositorio de GitHub . [7]
En 2016, se redactó la versión 2 de la especificación AppImage. La versión 2 no tiene restricciones en cuanto al tipo de sistema de archivos (un borrador de implementación utilizó SquashFS ). [8] [9] Elimina el desplazamiento fijo para el inicio de la imagen del sistema de archivos en el archivo y permite que las firmas digitales se incorporen directamente en AppImage en lugar de como un archivo separado.
AppImage tiene como objetivo ser un sistema de implementación de aplicaciones para Linux con los siguientes objetivos: simplicidad, compatibilidad binaria , portabilidad , agnosticismo de distribución , sin instalación , sin permiso root y manteniendo intacto el sistema operativo subyacente. [10] Debido a esto, AppImage no instala software colocando ejecutables en varias ubicaciones. En cambio, el archivo es una única imagen del sistema de archivos en sí mismo. Cuando se ejecuta, el archivo se monta con FUSE . AppImage está diseñado para ser más simple de usar que los formatos de instalación tradicionales como Deb y RPM , ya que no es necesario modificar el sistema operativo o el entorno del usuario.
Cada archivo es autónomo; incluye todas las bibliotecas de las que depende la aplicación que no forman parte del sistema de destino. Una AppImage versión 1.0 es un archivo Rock Ridge ISO 9660 (que se puede comprimir opcionalmente mediante zisofs) que contiene un AppDir mínimo y un runtime . [11]
AppImage permite la incorporación de firmas digitales, que deben verificarse externamente. El formato no requiere que las firmas sean validadas, solo que puedan incluirse. [12] AppImage no aplica el sandboxing , pero algunas aplicaciones pueden hacerlo. [13]
En 2007, Klik fue la inspiración para el proyecto glick de Alexander Larsson, el precursor de Flatpak . [14]
En 2015, Linus Torvalds , creador del núcleo Linux , dijo que "esto es realmente genial. Finalmente pude jugar con la versión "AppImage" de Subsurface , y realmente parece "funcionar"." [15] Mark Shuttleworth afirmó que "AppImages es una experiencia bastante limpia y admiro el trabajo detrás de ellas". [16]