¿Qué es una "AppImage"? ¿Como lo instalo?

232

Acabo de leer Meet Etcher, una elegante herramienta de escritura de imagen USB de código abierto . Habla de descargar una AppImage.

Sí, linux; los paquetes de Linux se distribuyen como .appimage para distribuciones de 32 bits y 64 bits, y deben ejecutarse en todas las distribuciones principales de Linux sin ningún problema. El equipo actualmente no tiene planes de proporcionar un instalador nativo .deb (o .rpm).

¿Qué son las AppImages? ¿Cómo se diferencian de las instantáneas?

DK Bose
fuente
10
Creo que la appimageetiqueta podría ser útil, así que la acabo de crear. Y en el caso de que no lo necesitemos o queramos conservarlo, siempre habrá la opción de volver a quemarlo de todos modos.
Byte Commander

Respuestas:

283

Información básica

En cuanto a la instalación

Cito la página del proyecto appImage aquí:

AppImages se puede descargar y ejecutar sin instalación o sin necesidad de derechos de root.

Haciéndolo ejecutable

Puede hacer que appImage sea ejecutable de la siguiente manera:

chmod a+x exampleName.AppImage

Ejecutándolo

Puede ejecutar una appImage de la siguiente manera:

./exampleName.AppImage

Información Adicional

Sobre appImage

Puede encontrar información general sobre appImage aquí .

Cito la página del proyecto appImage aquí:

La idea clave del formato AppImage es una aplicación = un archivo. Cada AppImage contiene una aplicación y todos los archivos que la aplicación necesita para ejecutarse. En otras palabras, cada AppImage no tiene dependencias distintas de las incluidas en los sistemas operativos base de destino.

Wikipedia agrega

AppImage (y los predecesores klik y portablelinuxapps) no instalan software en el sentido tradicional (es decir, no colocan archivos por todas partes en el sistema).

Utiliza un archivo por aplicación. Cada uno es autónomo: incluye todas las bibliotecas de las que depende la aplicación y que no forman parte del sistema base. En este sentido, es similar a la "virtualización de aplicaciones". Uno puede usar un archivo AppImage incluso si no es un superusuario o si está usando un CD en vivo. Los archivos de AppImage a menudo son más simples que compilar e instalar una aplicación, ya que en realidad no se realizó ninguna instalación. El archivo AppImage es una imagen comprimida que se monta temporalmente para permitir el acceso al programa, pero sin tener que extraer el programa o modificar el sistema subyacente.

El README.mddel proyecto AppImageKit ofrece mucha información adicional como casos de uso , el espacio del problema y los objetivos .

Casos de uso

  • Como usuario, quiero ir a una página de descarga ascendente, descargar una aplicación del autor original y ejecutarla en mi sistema de escritorio Linux al igual que lo haría con una aplicación de Windows o Mac.

  • Como probador, quiero poder obtener la última versión de última generación de una aplicación de un servidor de compilación continua y probarla en mi sistema, sin necesidad de compilar y sin tener que preocuparme de que pueda estropear mi sistema.

  • Como autor de aplicaciones o ISV, quiero proporcionar paquetes para sistemas de escritorio Linux al igual que lo hago para Windows y OS X, sin la necesidad de incluirlo en una distribución y sin tener que compilar miles de millones de distribuciones diferentes.

Objetivos

  1. Ser simple.

    AppImage está destinado a ser un formato muy simple que es fácil de entender, crear y administrar.

  2. Mantener compatibilidad binaria.

    AppImage es un formato para la distribución de software binario. El software empaquetado como AppImage está diseñado para ser tan binario compatible como sea posible con tantos sistemas como sea posible. La necesidad de (re) compilación de software debe reducirse considerablemente.

  3. Sea independiente de la distribución.

    Una AppImage debería ejecutarse en todos los sistemas operativos básicos (distribuciones) para los que se creó (y versiones posteriores). Por ejemplo, podría apuntar a Ubuntu 9.10, openSUSE 11.2 y Fedora 13 (y versiones posteriores) al mismo tiempo, sin tener que crear y mantener paquetes separados para cada sistema de destino.

  4. Elimine la necesidad de instalación.

    AppImages contiene la aplicación en un formato que le permite ejecutarse directamente desde el archivo, sin tener que instalarla primero. Esto es comparable a un CD en vivo. Antes de los Live CD, los sistemas operativos tenían que instalarse antes de poder usarse.

  5. Mantenga las aplicaciones comprimidas todo el tiempo.

    Como la aplicación permanece empaquetada todo el tiempo, nunca se descomprime en el disco duro. La computadora descomprime la aplicación sobre la marcha mientras accede a ella. Dado que la descompresión es más rápida que la lectura desde el disco duro en la mayoría de los sistemas, esto tiene una ventaja de velocidad además de ahorrar espacio. Además, el tiempo necesario para la instalación se elimina por completo.

  6. Permitir poner aplicaciones en cualquier lugar.

    Las imágenes de aplicaciones son "reubicables", lo que permite al usuario almacenarlas y ejecutarlas desde cualquier ubicación (incluidos CD-ROM, DVD, discos extraíbles, memorias USB).

  7. Hacer aplicaciones de solo lectura.

    Dado que las imágenes de las aplicaciones son de solo lectura por diseño, el usuario puede estar razonablemente seguro de que una aplicación no se modifica a sí misma durante la operación.

  8. No requieren recompilación.

    AppImages debe ser posible crear a partir de binarios ya existentes, sin la necesidad de volver a compilar. Esto acelera enormemente el proceso de creación de AppImage, ya que ningún compilador tiene que estar involucrado. Esto también permite a terceros empaquetar aplicaciones de código cerrado como AppImages. (Sin embargo, puede ser beneficioso para los desarrolladores de aplicaciones ascendentes construir desde la fuente específicamente con el propósito de generar una AppImage).

  9. Mantenga el sistema operativo base intacto.

    Dado que AppImages está destinado a ejecutarse en sistemas simples que no han sido preparados especialmente por un administrador, es posible que AppImages no requiera ninguna preparación inusual del sistema operativo base. Por lo tanto, no pueden confiar en parches de kernel especiales, módulos de kernel o cualquier aplicación que no venga con las distribuciones específicas por defecto.

  10. No requieren root.

    Dado que los usuarios finales deben ejecutar AppImages, no deben solicitar una cuenta administrativa (root) para instalarla o utilizarla. Sin embargo, pueden ser instalados por un administrador (por ejemplo, en escenarios de múltiples usuarios) si así lo desea.

dufte
fuente
44
¿Cómo persiste una imagen de configuración entre lanzamientos?
Dan Dascalescu
1
¿Podría elaborar un poco sobre la función de "solo lectura"? ¿Puedo guardar los cambios dentro de AppImage? ¿O los pierde de cerca como LiveCD?
vstepaniuk
2
@DanDascalescu: Su pregunta merece ser elevada a una pregunta completa en AskUbuntu, no solo un comentario. ¿Lo preguntarás?
Kurt Pfeifle
@vstepaniuk: Tu pregunta es similar a la de Dan. Uno de ustedes debería formularla como una pregunta "completa", no solo en un comentario ...
Kurt Pfeifle
1
@KurtPfeifle: ya que no querías seguir adelante y preguntarlo tú mismo ... :)
Dan Dascalescu
22

La idea básica puede ser similar entre los dos sistemas, pero hay algunas diferencias de diseño entre las instantáneas y Appimages.

Algunos "grandes" que me vienen a la mente son:

  1. Seguridad , en términos de encierro . Snap paquetes ejecuta en un entorno limitado y no pueden escapar de ella y llegar a otras partes del sistema que deben no tocar. Esta es una capa de seguridad más fuerte que corre paralela al sistema de permisos. Obviamente, es un poco frustrante cuando se trata al principio (y también más adelante), pero si lo piensa en términos de administración del sistema, esto es lo que un administrador quiere para sus usuarios.

  2. Seguridad. Instalar software tomado de la red es tan seguro como andar lamiendo postes en las calles. A veces no pasa nada, a veces tienes problemas de salud muy grandes. Los paquetes Snap tienen sus repositorios adecuados, controlados por Canonical, como los repositorios estándar habituales de Ubuntu. Puede continuar e instalar .debarchivos de alrededor, pero esa será su elección, y no un problema de diseño.

  3. Instalación. Las imágenes de aplicación están destinadas a ser el equivalente de los "ejecutables portátiles de Windows". Todas las bibliotecas son autónomas y cualquier usuario puede descargar y ejecutar una de ellas. Por otro lado, los snappaquetes son paquetes adecuados, y deben instalarse (como rooto con sudo) a través del administrador de paquetes apropiado ( snap install tic-tac-toearroja un error: ¡lo necesita sudo!)

  4. Eliminación. Para eliminar un paquete de complemento, debe usar el administrador de paquetes snap remove ...con los permisos adecuados para hacerlo. Las imágenes de aplicaciones, por otro lado, simplemente están "allí". Entonces, ¿algún usuario no quiere esa Appimage? Él / ella simplemente elimina el archivo y ya no está.

Si bien sugiero ser cauteloso al usar Appimages, personalmente uso algunos de ellos.

Los encuentro particularmente útiles en mi sistema de trabajo, donde no tengo rootacceso (solo el administrador tiene eso) pero necesito la última versión de un software en particular que, afortunadamente, el desarrollador ha proporcionado en forma de Appimage.

Tengo un poco de miedo de que algún código maligno esté contenido en ellos, así que verifiqué lo más posible la identidad del editor. No estoy 100% seguro de que este software sea benigno, pero he hecho todo lo posible.

dadexix86
fuente
2
Básicamente, todos están tratando de implementar el paquete de aplicaciones OSX en Linux, pero nada llega allí.
OrangeDog
2
No tengo idea de cómo funciona :) Para asegurarse, Snap y Appimages no funcionan bien con software con muchas dependencias compartidas entre muchos otros softwares. Están perfectamente bien con software ya autónomo o con pocas dependencias, pero el riesgo es tener muchas copias de la misma biblioteca que hagan la misma tarea, como en Windows. Esto debería resolverse en paquetes instantáneos (un software que depende de la biblioteca instantánea instala esa biblioteca con esa versión, luego otro software que necesita la misma versión de biblioteca podría usarlo, como con el sistema habitual).
dadexix86
Las aplicaciones OSX (e iOS) funcionan como AppImage (solo descargue un solo archivo y ejecútelo) pero con la seguridad sandbox de snap.
OrangeDog
OSX está tratando de deshacerse de estos y solo permite instalaciones desde su tienda.
LtWorf
AppImage debería contener una opción para Sand Boxing. Ojalá lo veamos en el futuro.
Royi
20

Antes de poder ejecutar una AppImage, debe hacerla ejecutable. Esta es una característica de seguridad de Linux. Hay dos formas principales de hacer que un AppImage sea ejecutable:

1. Usando la GUI

Cómo hacer un AppImage ejecutable

o

2. En la línea de comando

chmod a+x Some.Appimage

Ahora haga doble clic en su archivo para ejecutarlo O haga clic derecho> Ejecutar

probono
fuente
15

Si bien snap se centra solo en Ubuntu, AppImage es de distribución cruzada y también se ejecuta en Fedora, debian, openSUSE, CentOS, etc.

AppImage no necesita tiempo de ejecución ni soporte de infraestructura de la distribución de Linux y, por lo tanto, se ejecuta casi en todas partes. Permite a los autores de aplicaciones enviar su software directamente a los usuarios de Linux como do para Windows y OS X; sin Canonical ni ninguna otra persona "intermedia" entre el autor del software y el usuario final.

Si se proporciona una aplicación en formato AppImage, un usuario puede ir al sitio web del autor original para descargarla, por ejemplo, MuseScore desde https://musescore.org/en/download . Haga que AppImage sea ejecutable (ya sea usando su administrador de archivos o chmod a+x ./yourAppImage), luego puede ejecutar la aplicación simplemente haciendo doble clic.

probono
fuente
Entonces, si quiero instalar Leafpad, ¿hago clic en "Configurarme"? ¿Qué pasará entonces? ¿Y cómo puedo desinstalar una AppImage? Estoy mirando bintray.com/probono/AppImages pero no encontré la respuesta. Si no le importa, puede editar su respuesta para incluir la información, así como cualquier otra cosa que crea que a los usuarios les gustaría saber.
DK Bose
2
No estoy seguro de si eso también sería una solución para usted, pero el bloc de notas está disponible en las fuentes 16.04 listas para usar (versión: 0.8.18.1). La versión del bloc de notas que ofrece bintray es 'solo' 0.8.17, por lo que es aún más antigua.
dufte
1
Es cierto, pero para alguien que solo quiere probar las aguas, es, como dice el sitio, un tipo de "Hola, Mundo".
DK Bose
Excelente. Después de esto, simplemente puede hacer doble clic. Eso es lo que necesitaba!
Dawoodjee
5

Las imágenes de la aplicación requieren FUSE para ejecutarse. Sistema de archivos en el espacio de usuario (FUSE) es un sistema que permite a los usuarios no root montar sistemas de archivos.

Instalar FUSE

Muchas distribuciones tienen una configuración FUSE que funciona de manera inmediata. Sin embargo, si no funciona para usted, es posible que deba instalar y configurar FUSE manualmente.

Por ejemplo, en Ubuntu:

sudo apt-get install fuse
sudo modprobe fuse
sudo usermod -a -G fuse $USER

Por ejemplo, en openSUSE:

sudo zypper install fuse

Retroceder

Si no desea instalar FUSE, puede montar o extraer la AppImage.

Para montar la AppImage y ejecutar la aplicación, simplemente ejecute

sudo mount -o loop Some.AppImage /mnt
/mnt/AppRun

Si eso no funciona, es posible que tenga una AppImage tipo 2 experimental . Estos requieren que pase -o offset=...al mountcomando. Ejecute AppImage con --appimage-offsetpara encontrar el número correcto para el desplazamiento.

insignificante
fuente
Después de escribir la tercera línea ( sudo usermod -a -G fuse) seguida de mi nombre de usuario, sigo recibiendo usermod: group 'fuse' does not exist... ¿Alguna idea de por qué?
Martin
Hola @ Martin, en Ubuntu por ej. si está intentando ejecutar una AppImage i686 (32 bits) en un sistema x86_64 (64 bits), obtendrá ese error a menos que tenga instaladas las bibliotecas de 32 bits. Probablemente debería especificar el sistema operativo y la aplicación que está intentando ejecutar la próxima vez para obtener asistencia.
Leo
Hola @Leo, fue hace mucho tiempo, pero acabo de ingresar las sudo apt-get install fuse sudo modprobe fuse sudo usermod -a -G fuse $USERlíneas en mi Windows 10 64. La respuesta que estoy comentando no tiene ninguna especificación 32/64 y no veo dónde debo especificar eso o por qué ...
Martin