AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 866511
Accepted
Luis Alvarado
Luis Alvarado
Asked: 2017-01-01 07:10:15 +0800 CST2017-01-01 07:10:15 +0800 CST 2017-01-01 07:10:15 +0800 CST

snaps、appimage、flatpak等有什么区别?

  • 772

我最近从学生那里收到了这个问题,虽然我有很多信息可以提供,但我还没有找到一个可以让人们指向他们可以阅读更新答案的来源(我发现了很多错误信息和过时的信息)。因此,在通用打包系统的演变过程中,我对 snap、appimage、flatpak 等包格式的一些问题是:

  • 谁创建了包格式?
  • 它提供了哪些功能?
  • 它有哪些独特的功能?(其他人还没有)
  • 谁支持它?
  • 哪些发行版使用它?
  • 包有什么重点?(适用于桌面、云、移动设备等。)
  • 哪些发展更积极?
snap
  • 5 5 个回答
  • 135991 Views

5 个回答

  • Voted
  1. Best Answer
    Kurt Pfeifle
    2018-02-24T06:57:08+08:002018-02-24T06:57:08+08:00

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

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

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

    一般的

    特征 应用图像 折断 平板包装
    打包桌面 GUI 应用程序 ✅ 是的 ✅ 是的 ✅ 是的
    打包终端 CLI 工具 ✅ 是的 ✅ 是的 ✅ 是(如果您编辑 PATH,则使用 App ID 别名)[ 1 ]
    包服务器进程 ✅ 是的 ✅ 是的 ⚠️ 可能但不是主要目标 [ 1 ]
    打包系统服务 ❌没有 ✅ 是的 [ 1 ] ❌没有
    包内核 ❌没有 ✅ 是的 [ 1 ] ❌没有
    正确的应用程序主题 ✅ 是(如果做得正确) ✅ 是(如果当前系统主题已被 Snapped)[ 1 ] ✅ 是(如果当前系统主题已被 Flatpak'ed)[ 1 ] [ 2 ] [ 3 ]
    使用库和依赖项 从基本系统或与 appimage 捆绑 来自基本系统、基本 snap、平台 snap(KDE、GNOME、Wine等)或与 Snap 捆绑 来自 Freedesktop、GNOME、KDE ​​主要运行时或与 Flatpak 捆绑
    企业支持 ❌ 否(社区项目) ✅ 是(规范) ✅ 是(无尽,红帽)

    采用

    特征 应用图像 折断 平板包装
    总店申请数量 1126(2020-08-14[ 1 ]历史) +6400 (2020-08-06 [ 1 ]) ~1100 (2020-08-14)
    使用该格式的品牌商业应用程序供应商 Adobe , IBM , KDAB ,微软, Prusa , Ultimaker , ... 微软,Spotify,Slack,JetBrains,Skype,nodesource,... Xamarin、Codethink、伊加利亚、...
    内置于第三方应用程序开发工具中 电子生成器 电子生成器,GNOME 生成器 GNOME 生成器

    可用性

    AppImage 从站点下载,然后将文件管理器中的单个文件拖放到所需的安装位置。 通过分发应用程序商店(在 Ubuntu、Zorin OS、KDE ​​Neon 上支持开箱即用)或通过 CLI 进行拖放 Snap安装:

    $ snap install gimp
    

    Flatpak 通过分发应用商店安装(在 Fedora、EndlessOS 上支持开箱即用)或通过 CLI:

    $ flatpak install --user flathub org.gimp.GIMP
    

    沙盒/禁闭

    特征 应用图像 折断 平板包装
    无需沙盒即可运行 ✅ 是(不是必需的。包装商可选。) ✅ 是(如果 snap 被构建并被批准使用“经典”限制)[ 1 ] [ 2 ] ❌ 否(通过设计限制应用程序访问)
    可以与不同的沙箱一起使用 ✅ 是(例如Firejail [ 1 ]、AppArmor [ 2 ]、Bubblewrap) ❌ 否(与AppArmor紧密耦合) ❌ 否(与Bubblewrap紧密耦合)

    应用程序安装/执行

    特征 应用图像 折断 平板包装
    无需安装即可运行 ✅ 是(设置可执行位后) ❌ 否(需要通过 snapd 安装) ❌ 否(需要通过 Flatpak 客户端工具安装)
    可以在没有root访问权限的情况下运行 ✅ 是的 ⚠️ 仅在安装后 ⚠️ 仅在安装后
    从压缩源运行而不是解压缩 ✅ 是的 ✅ 是的 ❌没有
    应用程序作者可以将可下载文件放在 .exe (Windows) 和 .dmg (macOS) 旁边,用户可以将其安装在离线系统上 ✅ 是(.appimage - 包含在离线系统上运行应用程序所需的所有内容) ❌ 否(.snap - 需要安装 snapd,如果需要额外的 snap,系统必须在线) ❌ 否(.flatpakref 文件需要 Internet,.flatpak 包需要安装运行时)
    允许应用程序作者自托管应用程序而不会丢失功能 ✅ 是的 ❌没有 ✅ 是的 [ 1 ]
    适合/优化气隙(离线)机器(Ed Snowden 使用的那种) ✅ 是的 ✅ 是(您可以离线加载应用程序和更新) ✅ 是(P2P 支持允许离线安装和更新)
    可以存储和运行来自网络共享、CD-ROM 等非标准位置的应用程序。 ✅ 是的 待定 ✅ 是(需要配置)[ 1 ]

    应用程序分发

    特征 应用图像 折断 平板包装
    中央回购/目录 AppImageHub 快照商店 平面集线器
    完全去中心化,没有中央看门人 ✅ 是的 ❌ 否(一个占主导地位的应用商店)[ 1 ] ✅ 是的
    单个应用程序存储库 ❌ 否(不存储在存储库中) ❌ 否(每台设备只能有一个 repo) ✅ 是的
    可以并行有多个版本(包括历史版本) ✅ 是(无限数量的任意版本) ✅ 是(每个频道一个) ✅ 是(OSTree 中可用的任何版本都可以并行安装)
    安装应用程序后,仍然可以轻松地将其复制到另一台机器(例如,在本地与朋友共享) ✅ 是(一个应用程序=一个文件;没有“安装”,因此应用程序始终处于相同的形式) ✅ 是(但还需要复制它取决于的快照) ✅ 是(您可以flatpak create-usb用来复制到 U 盘)

    应用程序更新

    特征 应用图像 折断 平板包装
    更新机制 应用图像更新 从回购 从回购
    二进制增量更新 ✅ 是(使用 zsync 无需提前生成增量) ✅ 是(仅当使用需要生成增量的私有服务器端服务时) ✅ 是(使用 OSTree 提供原子更新)
    应用程序可以自我更新 ✅ 是(使用嵌入信息) ✅ 是的 ✅ 是的

    Linux 发行版支持

    特征 应用图像 折断 平板包装
    支持最早的 Ubuntu Ubuntu 10.04 Ubuntu 14.04 Ubuntu 16.04
    支持最早的 OpenSUSE OpenSUSE 11.3 飞跃 42.2 飞跃 42.1
    支持最早的 Fedora 软呢帽 12 软呢帽 24 软呢帽 23
    支持最早的 Debian Debian 6 Debian 9 Debian 9
    支持最早的 CentOS 中央操作系统 6 CentOS 7.6 CentOS 7
    开箱即用地在 Ubuntu 上运行 ✅ 是的 ✅ 是的 ❌没有
    开箱即用地在 OpenSUSE 上运行 ✅ 是的 ❌没有 待定
    在 Fedora 上开箱即用 ✅ 是的 ❌没有 ✅ 是的
    开箱即用在 Debian 上运行 ✅ 是的 ❌没有 待定
    开箱即用在 CentOS 上运行 ✅ 是的 ❌没有 ✅ 是的
    Live 系统(例如 Live ISO、Live USB、Live CD、Live 网络启动) ✅ 满 ⚠️ 部分(从 18.04 开始,但它受到内核限制和“使用起来很痛苦,我们花费几乎零时间”根据 Canonical 开发人员) ⚠️部分(必须重新启动会话才能提取导出)
    可以在 Chrome OS (Crostini) 上运行 ✅ 是(Chrome OS 73) ✅ 是(Chrome OS 73) ✅ 是的

    目标和治理

    特征 应用图像 折断 平板包装
    独立于任何特定的分销商 ✅ 是(一个社区项目) ❌ 否(规范倡议) ✅ 是(一个社区项目)
    与任何主导公司的商业案例无关 ✅ 是的 ❌ 否(Canonical 业务的核心) ❌没有
    旨在减少发行版作为中央看门人对桌面 Linux 生态系统的影响 ✅ 是的 ❌没有 ✅ 是的(每个人都可以托管他/她自己的仓库)
    旨在为应用程序开发人员和最终用户提供支持 ✅ 是的 ✅ 是的 [ 1 ] ✅ 是的 [ 1 ]
    努力统一桌面 Linux 平台,而不是继续将用户群分成不同的分发生态系统 ✅ 是(通过指出需要一起解决的核心问题) ❌ 否(有效地将另一个发行版的基本快照放在底层发行版上) ❌ 否(有效地将 Yocto 分布置于任何基础分布之上)

    应用程序大小

    特征 应用图像 折断 平板包装
    磁盘上的应用程序存储始终保持压缩状态 ✅是的 ✅是的 ❌ 否(服务器端已压缩,客户端未压缩)[ 1 ]
    应用程序使用的磁盘空间比“传统安装”的少得多 ✅是的 ✅是的 待定
    示例: LibreOffice 下载大小(来源) ~248 兆字节 463 MByte [2020 年 7 月更新] 543 兆字节
    下载之前,确切知道要下载和存储在磁盘上的大小 ✅ 是(一个应用程序 = 一个文件) ❌否[不考虑平台快照[ 1 ]] ❌由于去重,只能估计最坏的情况

    执行速度

    特征 应用图像 折断 平板包装
    LibreOffice 开始时间(来源) 3 秒 13 秒 7 秒

    包装格式

    特征 应用图像 折断 平板包装
    文件格式通过官方标准机构标准化 ❌ 否(但格式稳定后感兴趣) ✅ 是(由 Snap 格式 TOB[ 1 ] 创建) ❌ 否(尽管存在实验性 OCI 支持)
    概念灵感来自 .dmg内的macOS .app(追溯到 NeXT);Rox 应用程序目录 单击(Ubuntu Touch 软件包) klik(AppImage 的旧名称)

    项目代码库

    特征 应用图像 折断 平板包装
    贡献者无需签署 CLA ✅ 是的 ❌没有 ✅ 是的
    自开发以来 2004 年(当时称为klik) 2010(前身为 Click Packages) 2013(前身称为Glick Glick2和xdg-app)
    • 172
  2. Magma
    2017-01-01T13:11:43+08:002017-01-01T13:11:43+08:00

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

    • 依赖项的独立性——所有库和依赖项都包含在包中。这也允许拥有相同程序的更多版本。
    • 沙盒 - 快照使用修改后的 AppArmor 对应用程序进行沙盒处理
    • 增量更新——快照也应该允许增量更新

    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 上运行。

    • 88
  3. pktiuk
    2020-04-28T09:42:36+08:002020-04-28T09:42:36+08:00

    我为这些打包系统找到了一个有趣的性能(CPU+内存)比较。

    VLC

    VLC

    自由办公室 在此处输入图像描述

    瘸子

    在此处输入图像描述

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

    • 24
  4. user64103
    2020-09-08T22:50:45+08:002020-09-08T22:50:45+08:00

    不要忘记主要的事情,它是开源的吗?

    应用图像

    开源客户端 ✅ 是
    开源服务器 ✅ 是

    折断

    开源客户端✅是
    开源服务器❌否

    平板包装

    开源客户端 ✅ 是
    开源服务器 ✅ 是

    • 22
  5. Timo Noko
    2022-05-13T00:43:31+08:002022-05-13T00:43:31+08:00

    如果您有多个 flatpak 正在运行,则文件系统无法正常工作。例如,如果我打开了 Openscad 和 Flashprint,我可以从 Openscad 写入磁盘,但不能从 Flashprint 写入。在 Snap 中似乎没有任何问题。

    • 0

相关问题

  • 如何运行 snapcraft 网络聊天示例?

  • Ubuntu可以在哪里快照写入数据?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve