网站搜索

我发现了一个没人提起的 Linux 应用商店,它的软件包比 Flathub 更多


Flathub 是你在 Linux 上能找到的最受欢迎的应用商店之一,有人声称它可能是 Linux 最棒的地方。它干净、简单,而且几乎适用于你能找到的所有发行版。你会发现上面有超过2800个应用,下载量数亿次。这些数字对任何应用商店来说都很不错,但它们不一定能让它更好。

因为在 Linux 的世界里,没有任何单一程序或平台绝对优于其竞争对手。而当你比较包管理器时,Nixpkgs 凭借其超过 140,000 个软件包,能够轻松领先于其他竞争者。

你从未使用过的最大的 Linux 应用商店

什么是 Nixpkgs 以及为什么它的包数量惊人






Nixpkgs 是最大的 Nix 包和 NixOS 模块的仓库,托管在 GitHub 上,由全球开源社区维护,并得到 NixOS 基金会的支持。它不像应用商店,更像是一本巨大的、由社区策划的食谱书。每个条目并不是一个封装好的二进制文件在自己的隔离沙箱中——它是一套可复现的从源代码构建软件的指令,描述了每一个依赖项、每一个构建标志以及所需的每一个补丁。

仅 NixOS 250.05 版本就增加了 7,840 个新软件包,更新了 28,054 个现有软件包,并删除了 1,694 个过时条目,以保持软件集合的整洁、更新和安全。这种维护速度是大多数项目只能梦想的。Nixpkgs 是你能找到的最大、更新最频繁的软件包仓库之一。

大多数 Linux 用户从未听说过它

为什么 Nix 的生态系统仍然出奇地小众

你之所以从未听说过 Nixpkgs,尤其是在比较软件包管理器时,主要原因是它存在于 Linux 世界的一个完全不同的部分:NixOS。NixOS 是一个完全围绕 Nix 包管理器及其声明式配置模型构建的 Linux 发行版。如果你从未使用过 NixOS,你也很可能从未接触过 Nixpkgs。相比之下,Flathub 几乎可以在今天你能下载的任何 Linux 发行版上通过一条命令使用。

还有学习曲线。NixOS 强迫我声明我的操作系统而不是构建它,这是我们使用计算机方式的一个根本性差异。Nix 还使用自己的配置设置来定义软件包和系统状态。与在 Flathub 页面上点击安装相比,编写 Nix 表达式要复杂得多,更不用说它仅兼容终端了。

这为新用户带来了大量的入门摩擦,他们必须改变对应用程序如何在自己系统上安装和工作的整体理解。然而,回报是巨大的。作为对初始复杂性的交换,你将获得完全可重现的环境、原子升级、轻松回滚的能力,以及运行同一软件多个版本而不会产生依赖冲突的能力。一旦你理解并适应了 Nix 的做事方式,就很难回到以前的方式。

你不需要 NixOS 也能受益

将 Nix 软件包带到几乎所有的 Linux 发行版

如果你喜欢 Nixpkgs 的理念,但又不想切换到 NixOS 使用它,你完全不必这样做。你可以在任何 Linux 发行版上安装 Nix 包管理器,就像使用 Flathub 一样。一条 curl 命令就能让 Nix 在你的系统上运行,从那时起,你可以安装软件包而无需它们接触系统的原生包管理器。所有内容都存放在 /nix/store,完全隔离,所以与 apt 或其他包管理器不会产生任何冲突。

curl --proto '=https' --tlsv1.2 -L https://nixos.org/nix/install --daemon

然而,更好的方法是使用 Home Manager,这是一款工具,可以让你在任何 Linux 系统上使用 Nix 以声明式的方式管理用户环境。你声明你想要的内容——软件包、配置文件、环境变量——Home Manager 会构建它。你还可以使用 nix shell nixpkgs#package-name 启动带有所需软件包的临时 Shell,进行测试,然后离开而不会让系统变得杂乱。

包裹数量并不是真正的重点

可重复性和一致性才是实际的优势

Nixpkgs 的规模令人印象深刻,但真正的优势不在于你得到的软件包数量。由于每个软件包都是用相同的通用 Nix 语言定义的,任何贡献者都可以审核和更新任何软件包,即使是他们自己不维护的。这就是该仓库能够以这种方式扩展的原因。有成千上万的贡献者在保持超过 140,000 个软件包的最新状态。没有其他 Linux 打包生态系统能够接近。

因为 Nix 在完全隔离的环境中构建包,从每个依赖项、源文件和构建指令计算唯一的哈希值,所以安装或升级一个包实际上不会破坏另一个包。这是大多数包管理器无法保证的。你还可以在每个层级使用内置的回滚功能,因此如果升级导致问题,回退只需一个命令,而不是恢复备份。

Flathub 是一个很好的应用商店,并且它会继续做好它擅长的事情。但如果你想在一个地方获取真正广泛的 Linux 软件——被极度维护、不断更新,并且可在你当前的发行版上使用——Nixpkgs 是最佳选择。刚开始使用可能会有些棘手,但它将 Linux 软件世界掌握在你的手中,没有任何问题。

相关文章