问题描述
我最近从学生那里得到了这个问题,虽然我有很多信息要提供,但我找不到一个可以指示人们可以阅读更新答案的来源(我发现了很多错误的信息和过时的信息) )。因此,在通用包装系统的演变过程中,我对包装格式(如snap,appimage,flatpak等)的一些问题是:
-
谁创建了包格式?
-
它提供什么功能?
-
它的独特之处是什么? (其他人还没有)
-
谁支持它?
-
什么发行版使用它?
-
这个包有什么重点? (适用于桌面,云端,移动等..)
-
哪些更积极发展?
最佳解决思路
以下是AppImage与Snap与Flatpak功能的长表格比较。它来自AppImage Wiki on GitHub:
次佳解决思路
快照由Canonical为Ubuntu创建。快照的主要优点是:
-
独立于依赖 – 所有库和依赖项都包含在包中。这也允许具有相同程序的更多版本。
-
沙盒 – 快照使用修改后的AppArmor来沙箱应用程序
-
增量更新 – 快照还应允许增量更新
快照的主要缺点是软件只能使用其包中包含的库。这是一个潜在的安全风险,因为程序包的作者需要对所有库进行修补和更新。
Snaps目前可以在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开发。与Snap或Flatpak一样,该软件包包含运行该程序所需的所有库。 AppImage程序不是沙盒,它们不需要root权限来运行。根据该项目的网站,AppImages应该在Arch Linux,Centos,Debian,Fedora,OpenSUSE,Red Hat Linux和Ubuntu上运行。