snap,appimage,flatpak和其他之间有什么区别?


105

我最近一直在从学生那里得到这个问题,尽管我提供了很多信息,但是我没有找到可以将人们指向他们可以阅读更新答案的信息源(我发现了很多错误信息和过时的信息)。因此,在这种通用包装系统的发展过程中,我对诸如snap,appimage,flatpak等包装格式的一些疑问是:

  • 谁创建了包格式?
  • 它提供什么功能?
  • 它有哪些独特功能?(其他人还没有)
  • 谁支持?
  • 哪些发行版使用它?
  • 包装的重点是什么?(适用于台式机,云,移动设备等。)
  • 哪个更积极地开发?

Answers:


68

这是AppImage,Snap和Flatpak功能的长列表比较。它来自GitHub上AppImage Wiki

AppImage与Snap与Flatpack的比较


43
我认为值得指出的是,该图表是从AppImage角度构建的。意思是,默认功能集是AppImage的功能集,并将其他功能集与其功能进行比较。这给AppImage带来了偏见。它也有些过时了。例如,Snap在今年秋天增加了主题支持。

1
@Dan:如果您对Snap的支持有所了解,那么为什么不直接在图表中进行编辑呢?此外,如果您了解Snap和/或Flatpak中的其他功能:请邀请您使用AppImage Wiki中的相应项目修改图表...
Kurt Pfeifle18年

11
我不确定您怎么说@Kurt。以“目标”部分为例。它仅显示AppImage的目标,就好像其他项目都没有任何目标一样。好像只有AppImage的目标重要。

5
我明白你的意思-我可以编辑Wiki。但是,您的答案是一个巨大的图像,即使Wiki发生了变化,它也可能会永久保留。我认为这种偏见值得您在将来向Ubuntu读者提问时的回答中提及。

2
@丹:我在7月4日编辑了答案,从网站上插入了屏幕截图的更新版本(正是为了包括对Wiki所做的一些修改)。您在编辑原始Wiki,创建新的屏幕截图,然后建议使用新的屏幕截图修改此答案时,问题出在哪里?
Kurt Pfeifle

51

快照是由Canonical为Ubuntu创建的。捕捉的主要优点是:

  • 依赖关系的独立性-所有库和依赖关系都包含在软件包中。这也允许具有相同程序的更多版本。
  • 沙箱-快照使用修改后的AppArmor沙箱应用程序
  • 增量更新-快照也应允许增量更新

快照的主要缺点是软件只能使用其软件包中包含的库。这是潜在的安全风险,因为程序包的作者需要保持所有库的修补程序和更新。

快照当前可以在Ubuntu,Arch Linux,Fedora,Linux Mint,CentOS和Gentoo中运行。它们还用于Ubuntu Touch。它们设计用于台式机,服务器,电话,物联网和路由器。

Flatpak具有与按扣相同的优点。但是,它使用命名空间而不是AppArmour进行沙箱测试。主要区别在于Flatpaks既可以使用软件包中包含的库,也可以使用另一个Flatpak中的共享库。

Flatpak的开发人员是Red Hat的员工Alexander Larsson。Flatpak软件目前在Arch Linux,Debian,Fedora,Mageia,Solus和Ubuntu中可用。它仅针对台式机。

AppImages由Simon Peter开发。与快照或Flatpak一样,该软件包包括运行程序所需的所有库。AppImage程序不会被沙箱化,它们不需要root权限即可运行。根据该项目的网站,AppImages应该在Arch Linux,Centos,Debian,Fedora,OpenSUSE,Red Hat Linux和Ubuntu上运行。


3
Solus 于2017
Anthon

8
它们都应该以appimage为基础。与其重新发明相同的意识形态并引入零散和混乱。另请注意,由于这些便携式软件包具有所有库,因此与使用通过apt或.deb安装的共享库的应用程序相比,它们的大小将大大增加。如果您必须知道哪个更受欢迎,则flatpak目前正在抢购。
answerSeeker 2015年

随着Spectre攻击的肆虐,出于安全考虑,我怀疑对共享库的兴趣会减少。:-)
克里斯(Chris)

4
@answerSeeker:您对可移植软件包的评论“与使用通过apt或.deb安装的共享库的应用程序相比,体积要大得多,这不一定得到现实生活的支持。AppImage和快照被压缩为SquashFS图像(对于Flatpak而言并非如此)。它们永远不会解压缩到磁盘上,即使在运行时也是如此。AppImage在运行时会自行将自身安装到临时创建的安装点中/tmp/.mount_<random-chars>,然后从那里运行-仍处于压缩状态!请在下面我的答案的屏幕快照中查看LibreOffice示例的编号...
Kurt Pfeifle18年

1
@PabloBianchi:较新的AppImages(具有更新的“ type 2”类型)可以具有内置的更新机制。一旦有新版本可用,并且在用户指示他/他想要它之后,这将从原始AppImage位置下载二进制增量差异,从而节省下载大小和时间。工具appimageupdatetool(CLI)和AppImageUpdate-Qt(GUI)对此提供了帮助。
Kurt Pfeifle,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.