我最近从学生那里收到了这个问题,虽然我有很多信息可以提供,但我还没有找到一个可以让人们指向他们可以阅读更新答案的来源(我发现了很多错误信息和过时的信息)。因此,在通用打包系统的演变过程中,我对 snap、appimage、flatpak 等包格式的一些问题是:
- 谁创建了包格式?
- 它提供了哪些功能?
- 它有哪些独特的功能?(其他人还没有)
- 谁支持它?
- 哪些发行版使用它?
- 包有什么重点?(适用于桌面、云、移动设备等。)
- 哪些发展更积极?
我最近从学生那里收到了这个问题,虽然我有很多信息可以提供,但我还没有找到一个可以让人们指向他们可以阅读更新答案的来源(我发现了很多错误信息和过时的信息)。因此,在通用打包系统的演变过程中,我对 snap、appimage、flatpak 等包格式的一些问题是:
这是 AppImage 与 Snap 与 Flatpak 功能的长表格比较。它来自GitHub 上的 AppImage Wiki:
请注意,这种比较主要是从 AppImage 的角度来看的,尽管它试图公平地代表每个项目。
一般的
采用
可用性
AppImage 从站点下载,然后将文件管理器中的单个文件拖放到所需的安装位置。 通过分发应用程序商店(在 Ubuntu、Zorin OS、KDE Neon 上支持开箱即用)或通过 CLI 进行 Snap安装:
Flatpak 通过分发应用商店安装(在 Fedora、EndlessOS 上支持开箱即用)或通过 CLI:
沙盒/禁闭
应用程序安装/执行
应用程序分发
flatpak create-usb
用来复制到 U 盘)应用程序更新
Linux 发行版支持
目标和治理
应用程序大小
执行速度
包装格式
项目代码库
快照是由 Canonical 为 Ubuntu 创建的。快照的主要优点是:
snaps 的主要缺点是软件只能使用其软件包中包含的库。这是一个潜在的安全风险,因为包的作者需要保持所有库的补丁和更新。
Snaps 目前可以在 Ubuntu、Arch Linux、Fedora、Linux Mint、CentOS 和 Gentoo 中运行。它们也用于 Ubuntu Touch。它们专为台式机、服务器、电话、物联网和路由器而设计。
Flatpak具有与 snaps 相同的优点。但是,它使用命名空间而不是 AppArmour 进行沙盒。主要区别在于 Flatpak 既可以使用包中包含的库,也可以使用来自另一个 Flatpak 的共享库。
Flatpak 的开发者是 Red Hat 员工 Alexander Larsson。Flatpak 软件目前可用于 Arch Linux、Debian、Fedora、Mageia、Solus 和 Ubuntu。它仅专注于台式机。
AppImages由 Simon Peter 开发。与 snaps 或 Flatpak 一样,该软件包包括运行程序所需的所有库。AppImage 程序未经过沙盒处理,并且它们不需要 root 权限即可运行。根据该项目的网站,AppImages 应该在 Arch Linux、Centos、Debian、Fedora、OpenSUSE、Red Hat Linux 和 Ubuntu 上运行。
我为这些打包系统找到了一个有趣的性能(CPU+内存)比较。
VLC
自由办公室
瘸子
来源: https ://verummeum.com/portable-package-formats/
不要忘记主要的事情,它是开源的吗?
应用图像
开源客户端 ✅ 是
开源服务器 ✅ 是
折断
开源客户端✅是
开源服务器❌否
平板包装
开源客户端 ✅ 是
开源服务器 ✅ 是
如果您有多个 flatpak 正在运行,则文件系统无法正常工作。例如,如果我打开了 Openscad 和 Flashprint,我可以从 Openscad 写入磁盘,但不能从 Flashprint 写入。在 Snap 中似乎没有任何问题。