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


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


#1 楼

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

https://github.com/AppImage/AppImageKit/wiki/Similar-projects#comparison

请注意,此比较主要是从AppImage的角度来看,尽管它试图公平地表示每个项目。


评论


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

–丹
18年4月16日在15:16



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

–丹
18年5月3日在18:16



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

–丹
18年7月6日在19:14



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

– Kurt Pfeifle
18年7月7日在10:11

这里遗漏的是Flatpaks和Snaps存在的根本原因,即使AppImage早已存在。借助AppImages,开发人员可以确保应用程序在所有条件下都能正常工作。有了Flatpaks(我相信还有Snaps),就有一些底层的运行时可以反映开发人员计算机的状态,从而确保该应用程序可以在具有不同设置的发行版上正常工作。

– Tin Man
19年5月4日在19:22

#2 楼

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


独立于依赖项-所有库和依赖项都包含在包中。这也允许具有相同程序的更多版本。
沙箱-快照使用修改后的AppArmor对应用程序进行沙箱
Delta更新-快照还应允许增量更新

快照的缺点是软件只能使用其软件包中包含的库。这是一个潜在的安全风险,因为该软件包的作者需要保持所有库的修补程序和更新。它们还用于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上运行。

评论


Solus已于2017年1月宣布支持Flatpak

–安东
17年5月28日在6:40

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

–answeranswerker
17-6-5在5:22



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

– Kurt Pfeifle
18年2月23日在15:01

@PabloBianchi:较新的AppImages(较新的“ type 2”类型)可以具有内置的更新机制。一旦有新版本可用,并且在用户指示他/他想要它之后,它将从原始AppImage位置下载二进制增量差异,从而节省下载大小和时间。工具appimageupdatetool(CLI)和AppImageUpdate-Qt(GUI)对此提供了帮助。

– Kurt Pfeifle
18年2月23日在15:06

@Chris,幽灵与使用共享库无关,但在同一CPU上运行。

–akostadinov
20年8月25日在13:48

#3 楼

我发现这些包装系统的性能(CPU +内存)比较有趣。

VLC



LibreOffice


Gimp



来源:
https://verummeum.com/portable-package-formats/

#4 楼

不要忘记主要的东西,是开源吗?
AppImage
开源客户端Open是
开源服务器✅是
Snap
开源客户端✅是
开源服务器✅是
Flatpak
开源客户端✅是
开源服务器✅是