Snap与APT哪一个更好?介绍
与其他主流操作系统相比,Linux 采用了不同的软件管理方法。Linux 中的软件传统上组织在存储库中。存储库包含应用程序和运行它们所需的所有依赖项。
尽管出于多种原因使用存储库很方便,但它通常会给不精通技术的用户带来障碍。在过去的几年里,已经创建了几个替代的打包系统,以使 Linux 体验更加用户友好。
Snap与APT有什么区别?在这篇对比文章中,你将了解 Snap 打包系统和 APT 包管理器之间的差异。
什么是Snap?
Snap 是一个软件包和部署系统,它使用称为 snaps 的自包含软件包将软件交付给用户。Snaps 将程序所需的所有依赖项打包在一个包中。通过这种方式,该应用程序与系统无关,这意味着它可以在任何支持 Snap 的 Linux 发行版上本地运行。
虽然 APT 主要从发行版的官方存储库中获取软件包,但 Snap 使开发人员能够通过 Snap Store 将他们的应用程序直接交付给用户。开发人员还可以直接在他们的网站上发布Snap。
Snap与APT有哪些不同?Snap管理工具称为snapd。它是一个守护进程,使系统能够运行snap 包。用户使用snap
客户端与 snapd 交互。
以下是使用以下snap
命令安装 Thunderbird 的示例:
什么是 APT?
APT(高级软件包工具)是一个软件包管理器,用于在基于 Debian 的系统上安装和删除软件包。APT 使检索、配置、升级、安装和删除包的过程自动化。APT 是 Debian 基础包管理系统dpkg的前端。
APT 的主要好处之一是它处理软件依赖性的方式。在用户发出安装包的命令后,APT 会在存储库中搜索包的依赖项,并安装系统上尚未安装的依赖项。
Snap与APT哪一个更好?APT主要用来与用户交互的工具是apt
. 该实用程序提供了最流行的apt-get和apt-cache
命令,它们被认为不太方便用户使用。
屏幕截图演示了使用apt
以下命令安装 Thunderbird :
注意:有关 APT 的更多信息,请参阅How to Use APT Package Manager on Ubuntu Linux and APT Vs APT-GET。
Snap与APT有什么区别:差异综合概述
在详细了解 Snap 和 APT 之间的差异之前,有必要了解我们可以比较它们的级别。
Snap与APT有哪些不同?下表解释了术语并提供了主要比较点:
Snap | APT | |
---|---|---|
包装类型 | .snap | .deb |
工具名称 | Snapd | APT |
命令行工具 | snap | apt |
格式 | SquashFS 存档 | 存档 |
可在 | Snap Store | Debian 存储库 |
安装尺寸 | 更大 | 较小 |
依赖关系 | 包含在包装中 | 共享 |
更新 | 自动的 | 手动的 |
安全禁闭 | 受限 | 有限的约束 |
多次安装 | 可能的 | 不可能 |
多版本安装 | 可能的 | 不可能 |
Snap与APT有什么区别?封装格式
Snap使用.snap
文件,可在 Snap Store 或其开发者网站上下载。该.snap
文件包含应用程序、其依赖项以及 SquashFS 压缩文件系统中的元数据。
Snap 应用程序是容器化的,类似于 Docker 打包其容器的方式。但是,与Docker 容器不同,Snap应用程序对主机系统的访问权限有限,主要用于存储配置文件和使用系统的 I/O。
APT.deb
为每个支持它们的 Linux 发行版使用来自在线软件存储库的文件。一个.deb
文件是一个 Unix 档案,它包括两个 tar 档案。一个存档包含控制信息,而另一个包含用于软件包安装的文件。
打包大小
Snap是自包含的,这导致.snap
文件相对较大。当用户安装 snap 包时,该文件被解压并作为只读环回设备挂载在主目录中。
通过APT安装的应用程序比它的 snap应用程序更小,因为它不需要捆绑包依赖项。
依赖关系
Snap与APT有哪些不同?Snap捆绑包内的包依赖项。虽然这种方法会对包的大小产生负面影响,但主要的好处是用户始终拥有受支持和测试的包版本。
APT使用共享依赖项方法。当用户发出apt install
命令时,APT 读取依赖项列表,检查系统是否已经安装了某些软件包,并安装缺少的软件包。该技术保持较小的内存占用。
便于使用
Snap与APT哪一个更好?最终用户的易用性差异并不显着。Snap应用程序是通用的,对于开发人员维护更实用,发布更新是更改单个包的直接过程。
另一方面,APT检查存储库以查找更新。当更新准备好时,存储库系统需要为每个发行版(Ubuntu、Linux Mint、Pop! OS 等)和每个发行版(Ubuntu 18.04、Ubuntu 20.04等)提供一个单独的版本。这种方法很耗时,有时会导致某些分发的延迟。
速度
Snap 的启动时间比APT 长,因为操作系统在第一次使用时会解压缩 snap 以节省磁盘空间。然而,snaps 仅在第一次运行时更慢——差异在第二次启动时减少或完全消失。
更新
Snap与APT有什么区别?该Snap更新过程是自动的。用户无法阻止Snap应用程序更新,只能延迟该过程。Snap 开发人员在发布更新的时间方面不受限制。
APT授予用户对更新过程的完全控制权。然而,当一个发行版削减一个发布时,它通常会冻结 debs 并且不会在发布期间更新它们。因此,对于喜欢最新应用程序版本的用户来说,Snap 是更好的解决方案。
图形用户界面集成
Snap设计为通用的。因此,它们不能与各种发行版的 GUI 完美集成。
Snap 社区最近在主题集成方面取得了一些进展。它包括引入一个后台服务,用于监视主题更改并为用户提供调整其应用程序以符合操作系统主题的功能。然而,这是一项正在进行的工作,Snap仍然没有完全集成到主机操作系统中。
另一方面,APT.deb
使用的文件是特定于发行版和版本的,这导致在主题集成方面提供默认的 Linux 体验。
安全
Snap与APT有哪些不同?Snaps支持签名验证,并且鉴于其局限性,被认为是应用程序部署的安全解决方案。但是,由于发布者直接向用户提供应用程序,因此用户需要信任发布者。不进行外部审查。
另一方面,每个 Linux 发行版都会审查其存储库中包含的 deb。因此,APT用户可以确定该应用程序来自受信任的来源。这不适用于发布商网站上提供的 3rd 方存储库或 deb。
Snap与APT哪一个更好:选择哪一个?
在以下情况下选择Snap:
- 你不希望将不必要的软件包集成到你的系统中。使用 Snaps,包裹仍被限制在
.snap
包裹中。 - 你想确保你拥有最新版本的应用程序。Snap 自动连续更新,不会因特定发行版而冻结功能。
- 你想隔离一个应用程序。
在以下情况下选择APT:
- 你希望应用程序由你使用的发行版进行审核。
- 你担心节省存储空间。APT 安装的应用程序共享它们的依赖项。
- 你希望应用程序正确集成到GUI 环境中。
注意:如果你对使用 Snap 感兴趣,请查看我们关于如何在 Ubuntu上安装 Snap 的指南。
结论
Snap与APT有什么区别?这篇对比文章总结了使用 Snap 打包系统和 APT 包管理器的区别。了解 Snap 和 APT 如何比较应该可以帮助你决定你喜欢哪种安装方法。