一个Nix flake统领所有flakes

One Nix flake to rule them all

一个Nix flake统领所有flakes

我始终认为Nix flakes虽然流行但体验繁琐,每次添加新依赖都要手动处理url和follows。为了解决这个问题,我创建了omniflake,它通过一个输入就能访问近12000个Nix flakes。利用Nix语言的惰性求值特性,omniflake只在真正需要时才获取和评估特定flakes,避免了传统方式中重复锁定和评估的开销。这个项目让我既能享受去中心化联邦的优势,又能获得集中式管理的简洁体验。

我热爱去中心化的理念,但我更想要集中化的简洁体验。
  1. jchw

    我不太确定这本身是不是个好主意,但话说回来,如果你不能把所有东西都做得足够惰性,那把一切都做得惰性又有什么意义呢?就我个人而言,我在大型系统配置中 routinely 使用 20 到 30 个 flake 输入,从来也没觉得这有什么问题。我真正担心的只有一点:为了去重而覆盖 Nixpkgs 偶尔会出问题,因为某些依赖可能还没准备好适配最新的 Nixpkgs。不过到目前为止,这种情况只在我使用 nix-vim 时遇到过,而 nix-vim 按理说本就该以某种形式包含在 Nixpkgs 里(虽然我已经很久没用了,不太清楚现在的状况)。

    既然必须这么做,我搜了一下,发现我的至少一个 flake 确实被收录了,就是 nix-binary-ninja,这是一个为专有反汇编/反编译工具 Binary Ninja 编写的 Nix flake。挺酷的。(顺便提一句,虽然我用了它,但我不确定是否真的推荐大家用;它为了能让 binja 更好地使用系统库进行集成,做了一些很恶心的操作,这导致目前某些扩展无法正常工作。唉,没办法……)

  2. wredcoll

    我第一次接触 NixOS 时,觉得这是个超级酷的想法,只要世界上其他所有软件和程序员都转过来用它,它就会变得极其有用。

    从那以后,我还没见过什么能改变我想法的东西。

  3. digdugdirk

    这太棒了,也凸显了使用 NixOS 那种既精彩又糟糕的有趣体验。

    另外,这位作者最近真是势如破竹!发表了这么多有趣的文章,我真不知道他是怎么在撰写技术文章的同时,还能兼顾在 CNN 主持一档常规政治节目的。

同日更多故事

2026-08-30