NixOS: パッケージ構成をグローバルに設定する (すべてのパッケージに対して)

NixOS: パッケージ構成をグローバルに設定する (すべてのパッケージに対して)

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 内の他のパッケージは、カスタマイズされたパッケージではなく、元のパッケージに依存し続けます。つまり、システム内の別のパッケージが元のパッケージに依存している場合、パッケージのインスタンスが 2 つ存在することになります。すべてをカスタマイズされたインスタンスに依存させたい場合は、次のようにグローバル オーバーライドを適用できます。

ご協力いただければ幸いです。

答え1

Nixpkgs では、パッケージ オプションはパッケージ間で共通の意味を持たないため、Gnome への依存関係をすべて取り除くのは難しいかもしれません。そのためには、かなり多くのオーバーライドを記述する必要がある可能性があります。nix why-dependsここで大いに役立ちます。

それでも、モジュールオプションと呼ばれるenvironment.noXlibswithGnome、これはNixpkgs で見つかったパッケージ オプションの使用をすべて無効にします。 簡単な方法があるのでしょうか?

関連情報