.png)
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.noXlibs
withGnome
、これはNixpkgs で見つかったパッケージ オプションの使用をすべて無効にします。 簡単な方法があるのでしょうか?