我想知道我是否应该选择使用 apt 和 .deb 文件安装应用程序,而不是通过 snap 获取它们。我听说 snap 比 apt/.deb 更安全,但速度更慢。我应该选择哪个?
答案1
没有明确的规则,我们只能给你一些提示。
snap 和 .deb 软件包之间的主要区别在于 snap沙盒化和自给自足,而 .deb 包则不是。
沙盒意味着(在某种程度上)与系统的其余部分隔离;例如,Snap 通常无法访问主目录之外的文件,除非专门配置为这样做。因此,如果应用程序执行的工作相对独立于整个系统,则应安装该应用程序的 snap 版本 - 例如用于视频编辑或数值计算的软件或游戏。与系统紧密集成的所有内容(例如屏幕截图实用程序或替代文件管理器)最适合使用 .deb 软件包。
自包含意味着 snap 包包含运行应用程序所需的一切 - 不仅是应用程序本身,还包括它所需的所有库。这些库可能与系统中已有的库版本不同(甚至有冲突)。.deb 包则不是这种情况;通常应用程序的 .deb 包只包含应用程序,并且它依靠依赖于多个其他包含所需库的 .deb 包,这些库是单独安装的(这些其他包通常称为“依赖项”,我们经常说 .deb 包在安装时“引入依赖项”)。但是,通过 .deb 包安装的库只有一个,供所有通过 .deb 包安装的应用程序使用,并且您不能有两个相互冲突的库版本。
由于以下两点:
- snap 通常比 .deb 包占用更多磁盘空间
- snap 应用程序可能比以 .deb 包形式安装的应用程序占用更多 RAM
- snap 应用程序的启动时间可能比以 .deb 包形式安装的应用程序慢(区别仅在于启动时间;一旦启动,速度就没有差别)
- 当你卸载 snap 应用程序时,它会连同它“拉入”的所有库一起被卸载;当你卸载 .deb 应用程序时,它“拉入”的所有依赖项仍然保留;你可以手动卸载它们,但你必须知道如何识别它们
Snaps 还确保您始终拥有最新版本的应用程序,而 .deb 包可能并非如此,尤其是 LTS Ubuntu 版本(大多数应用程序的版本在系统发布时处于“冻结”状态,通常只提供安全更新 - 没有新功能 - 而上游应用程序可能已经发展了相当多的版本)。
我个人认为 Snapchat 有以下好处:
- 测试您不确定是否要使用的未知软件;能够轻松卸载而不会弄乱系统
- 安装一个应用程序,它会引入大量可能与当前系统冲突或不受支持的依赖项;例如为不同的桌面环境编写的应用程序(如在 GNOME 下安装 KDE 应用程序)
- 安装比 Ubuntu 版本中包含的 .deb 版本更新的应用程序版本
除此之外,我更喜欢 .deb 软件包。但这只是我的偏好。