¿Cuáles son las diferencias entre snaps, appimage, flatpak y otros?

105

Últimamente he recibido esta pregunta de los estudiantes y, aunque tengo mucha información que ofrecer, no he encontrado una fuente que pueda indicar a las personas dónde pueden leer una respuesta actualizada (he encontrado mucha información errónea e información obsoleta ) Entonces, algunas de las preguntas que tengo para los formatos de paquetes como snap, appimage, flatpak y otras en esta evolución de los sistemas de embalaje universal son:

  • ¿Quién creó el formato del paquete?
  • ¿Qué características ofrece?
  • ¿Qué características le son exclusivas? (Que los demás aún no tienen)
  • ¿Quién lo apoya?
  • ¿Qué distribuciones lo usan?
  • ¿Qué enfoque tiene el paquete? (Para escritorio, nubes, dispositivos móviles, etc.)
  • ¿Cuáles se desarrollan más activamente?
Luis Alvarado
fuente

Respuestas:

68

Aquí hay una larga comparación tabular de las características AppImage vs. Snap vs. Flatpak. Es de AppImage Wiki en GitHub :

AppImage vs. Snap vs. Comparación de Flatpack

Kurt Pfeifle
fuente
43
Creo que vale la pena señalar que este gráfico está construido desde una perspectiva de AppImage. Es decir, el conjunto de características predeterminado es el conjunto de características de AppImage, y los demás se comparan con sus características. Eso le da una ventaja parcial a AppImage. También está algo desactualizado. Por ejemplo, Snap agregó soporte para temas este otoño.
Dan
1
@Dan: Si está al tanto de que Snap les agregó soporte, ¿por qué no simplemente edita en el gráfico? Además, si conoce otras características que se encuentran en Snap y / o Flatpak: siéntase invitado a modificar el cuadro con los elementos respectivos en el wiki de AppImage ...
Kurt Pfeifle
11
No estoy seguro de cómo puedes decir eso @Kurt. Eche un vistazo a la sección "Objetivos", como ejemplo. Muestra los objetivos de AppImage exclusivamente, como si ninguno de los otros proyectos tuviera ningún objetivo. Como si solo fueran importantes los objetivos que tiene AppImage.
Dan
55
Entiendo tu punto: podría editar la wiki. Sin embargo, su respuesta es una imagen gigante que presumiblemente se mantendrá tal como está a perpetuidad, incluso a medida que cambie la wiki. Creo que el sesgo vale la pena mencionar en contexto a su respuesta para futuros lectores de Ask Ubuntu.
Dan
2
@Dan: Edité la respuesta el 4 de julio para insertar una versión actualizada de la captura de pantalla del sitio web (exactamente para incluir algunas modificaciones que ocurrieron en la wiki). ¿Dónde está el problema para usted al editar el Wiki original, crear una nueva captura de pantalla y luego sugerir una modificación de esta respuesta con la nueva captura de pantalla?
Kurt Pfeifle
51

Los snaps fueron creados por Canonical para Ubuntu. Las principales ventajas de los snaps son:

  • Independencia de las dependencias: todas las bibliotecas y dependencias están incluidas en el paquete. Esto también permite tener más versiones del mismo programa.
  • Sandboxing: las instantáneas utilizan AppArmor modificado para proteger las aplicaciones.
  • Actualizaciones Delta: las instantáneas también deberían permitir actualizaciones delta

El principal inconveniente de las instantáneas es que el software solo puede usar bibliotecas incluidas en su paquete. Este es un riesgo de seguridad potencial ya que el autor del paquete necesita mantener todas las bibliotecas actualizadas y actualizadas.

Los snaps pueden ejecutarse actualmente en Ubuntu, Arch Linux, Fedora, Linux Mint, CentOS y Gentoo. También se usan en Ubuntu Touch. Están diseñados para computadoras de escritorio, servidores, teléfonos, IoT y enrutadores.

Flatpak tiene las mismas ventajas que las instantáneas. Sin embargo, utiliza espacios de nombres en lugar de AppArmour para sandboxing. La principal diferencia es que Flatpaks puede usar bibliotecas incluidas en el paquete y bibliotecas compartidas de otro Flatpak.

El desarrollador de Flatpak es el empleado de Red Hat Alexander Larsson. El software Flatpak está actualmente disponible en Arch Linux, Debian, Fedora, Mageia, Solus y Ubuntu. Se centra solo en equipos de escritorio.

Las imágenes de aplicaciones son desarrolladas por Simon Peter. Como en las instantáneas o Flatpak, el paquete incluye todas las bibliotecas necesarias para ejecutar el programa. Los programas de AppImage no están protegidos y no requieren derechos de root para ejecutarse. Según el sitio web del proyecto, AppImages debería ejecutarse en Arch Linux, Centos, Debian, Fedora, OpenSUSE, Red Hat Linux y Ubuntu.

Magma
fuente
3
Solus anunció soporte para flatpak en enero de 2017
Anthon
8
Todos deberían haber construido sobre la aplicación. En lugar de reinventar la misma ideología e introducir fragmentación y confusiones. También tenga en cuenta que dado que estos paquetes portátiles tienen todas las bibliotecas, tendrán un tamaño considerablemente más pesado en comparación con una aplicación que use bibliotecas compartidas instaladas a través de apt o .deb. Si debe saber cuál es más popular, flatpak actualmente está superando a los snaps.
answerSeeker
Con el ataque Spectre ahora en estado salvaje, sospecho que habrá menos interés en las bibliotecas compartidas por razones de seguridad. :-)
Chris
44
@answerSeeker: su comentario acerca de que los paquetes portátiles tienen un tamaño "considerablemente más pesado en comparación con una aplicación que usa bibliotecas compartidas instaladas a través de apt o .deb" no está necesariamente respaldado por hechos reales. AppImages y Snaps se comprimen en imágenes SquashFS (no es cierto para Flatpak). Nunca se extraen en el disco, ni siquiera durante el tiempo de ejecución. AppImages, cuando se ejecuta, se auto monta en un punto de montaje creado temporalmente /tmp/.mount_<random-chars>y se ejecuta desde allí, ¡todavía comprimido! Vea los números para el ejemplo de LibreOffice en la captura de pantalla de mi respuesta a continuación ...
Kurt Pfeifle
1
@PabloBianchi: las nuevas AppImages (de la variedad más reciente 'tipo 2' ) pueden tener un mecanismo de actualización incorporado. Esto descarga un diferencial binario delta de la ubicación original de AppImage, ahorrando en tamaño y tiempo de descarga, una vez que una nueva versión está disponible y después de que el usuario indicó que la quería. Las herramientas appimageupdatetool(CLI) y AppImageUpdate-Qt(GUI) ayudan con esto.
Kurt Pfeifle