• home > OS > Linux > fundamental >

    为什么抛弃snap转头APT或DNF,推荐使用DNF

    Author:zhoulujun Date:

    Snap是由Canonical公司开发的一种软件包和环境管理系统,本身的性能问题也是能接受。但是带私货太对,不能忍!所以我还是推荐使用DNF,像Mint一样,禁止安装!

    Snap是由Canonical公司开发的一种软件包和环境管理系统,它允许用户在各种Linux发行版上安装和运行应用程序。

    Snap的全称是Snappy Ubuntu Core,它是一个简化的Ubuntu版本,专门用于运行Snappy所提供的应用程序。

    使用层面,看官方文档就够了:https://snapcraft.io/docs/installing-snap-on-centos

    • 安装snap:dnf install snapd/apt install snapd

    • 查找snap包:snap search <package_name>

    • 安装snap包:snap install firefox

    • 列出已安装的Snap包:snap list

    • 卸载Snap包:snap remove firefox

    Snap与APT/DNF/YUM的区别

    Snap包是自包含的,包含了应用程序所需的所有依赖项。这意味着Snap包可以在任何支持Snap的Linux发行版上运行,而无需担心依赖问题。

    Snap的一个重要的特点是应用程序中包含了所有的依赖库和资源,以确保应用能够正常运行,而不受系统的影响。使用Snap软件包安装的应用程序不仅具有独立性和可移植性,同时还可以使用最新的软件版本,无需等待官方软件包库更新

    但较明显的缺点是性能相对较差,软件包的体积大,中心化的软件商店,不透明的运行机制等,但最关键的一个点在于:

    它违背了Linux操作系统的理念与精神

    Redhat这样的商业巨头,它的YUM包管理,也是开源与自由的,并不只属于Redhat。比如CentOS可以建立自己的YUM软件仓库。

    但Ubuntu的Snap越过了这个界线,虽然它有一部分是开源的,但事实上,Snap是一个中心化的包管理,它有一个类似App Store这样的中心存在,当然是由Canonical来维护管理的。

    而除了Canonical以外,其它都无法复制或运营一个自己的Snap软件管理中心,也就是你只能使用Canonical的这个。因为它有一些专有实现在其中。

    但APT等的包依赖于系统的库和依赖项。如果缺少某些依赖项,可能会导致安装失败或应用程序无法正常运行。

    Redhat明显非常克制,它一直都是非常遵守自由与开源的理念,Redhat通过售卖专业的服务来赚取利润,而在过往的十多年中,Redhat始终是Linux内核的最大贡献商业公司。REHL也是原始的Linux发行版本,类似CentOS这样的,是REHL开源的受益者。


    而相比之下,Canonical的Ubuntu本身是基于Debian基础之上的再发行版本,Linux内核的贡献也远远比不上Redhat,还整出了Snap这种专有的中心化的专有包软件管理,步伐迈的有点过大了。

    由于 Snap 应用程序自带所有依赖,当启动这些应用时,可能需要加载更多的资源到内存中,这可能导致启动时间稍长以及更高的内存占用。

    相对来说,通过 DNF 安装的应用程序依赖于系统的共享库,因此它们通常启动更快且使用的内存更少。

    基于此,我个人推荐使用DNF



    转载本站文章《为什么抛弃snap转头APT或DNF,推荐使用DNF》,
    请注明出处:https://www.zhoulujun.cn/html/OS/Linux/LinuxDevops/9378.html