Nixpkgs の発展的な使い方
callPackage, Overriding, Overlays は Nix パッケージのビルド方法をカスタムするために Nix を使用する際に時々使われる手法です。
多くのプログラムには設定するべき多くのビルドパラメータがあります。しかし、他のユーザは異なるビルドパラメータを使用したいということがあるかもしれません。
この点で、Overriding と Overlays が重宝されています。ここで私が今までに遭遇した例について少し説明します。
fcitx5-rime.nix: 標準では、fcitx5-rimeはrime-dataをrimeDataPkgsの値として使用します。ですが、overrideによってこのパラメータをカスタマイズすることができます。vscode/with-extensions.nix: この VS Code パッケージは、vscodeExtensionsの値を書き換えることでカスタマイズすることができます。これによって、カスタムプラグインを VS Code にインストールすることができます。nix-vscode-extensions: これはvscodeExtensionsを上書きすることによって実装された vscode のプラグインマネージャです。
firefox/common.nix: Firefox にも同様に多くのカスタマイズ可能なパラメータがあります。- ...
要するに、callPackage, Overriding, Overlays によって、Nix パッケージのビルドパラメータのカスタマイズをすることができます。