在 NixOS 上,我尝试编译没有 Gnome 的系统。例如,network-manager/openconnect 有一个 withGnome 选项:
{ stdenv, fetchurl, openconnect, intltool, pkgconfig, networkmanager, libsecret
, withGnome ? true, gnome3, procps, kmod }:
我想将其设置为 false;但是虽然我可以使用覆盖来做到这一点,但我不清楚如何将 withGnome 设置为 false全部作为系统的一部分构建的包。
在 nixos 手册 6.1.1 中,内容如下;但这似乎是关于覆盖单个包以使所有依赖项受益,而不是用单个选项覆盖所有包。
上面显示的覆盖不是全局的。它们不会影响原始包;Nixpkgs 中的其他包继续依赖于原始包而不是自定义包。这意味着,如果系统中的另一个包依赖于原始包,您最终会得到该包的两个实例。如果您希望让所有内容都依赖于您的自定义实例,则可以按如下方式应用全局覆盖:
任何帮助都非常感谢。
答案1
在 Nixpkgs 中,软件包选项在软件包之间没有共同的含义,因此可能很难摆脱对 Gnome 的所有依赖。您可能需要为此编写大量覆盖。nix why-depends
可以在这里提供很大帮助。
尽管如此模块选项称为environment.noXlibs
,这会关闭withGnome
我在 Nixpkgs 中找到的所有软件包选项的使用。那么也许有一种简单的方法?