私は自分のソフトウェアのrcファイルをNix経由で定義したいと思っています。そこで私は、configファイルが含まれますconfig.nix
で新しいパッケージ定義:カスタム設定/ default.nixファイルが定義されている中で次にNix:インストールされたパッケージがユーザー環境変数を設定できますか?
{ pkgs, ... }:
{
packageOverrides = pkgs : with pkgs; {
custom-config = import ./custom-config {
inherit (pkgs) stdenv;
};
};
}
をインライン:
{ stdenv }:
stdenv.mkDerivation rec {
name = "custom-config";
stdenv.mkDerivation {
name = "CustomConfig";
src = builtins.toFile "customrc" ''
# content
'';
};
}
欠けている最後の部分は次のとおりです。ユーザのデフォルトシェルに特定の環境変数を追加します。たとえば、CUSTOM_CONFIG_RC
などです。これは関連するプログラムによって尊重されます。
誰でも私にヒントを教えてもらえますか?私はちょうど言語を理解し始めている。
と表示されます。しかし、 'makeWrapper'を使うとパケット全体のソースから再コンパイルできますが、必要な変更は実行時環境変数と追加ファイルだけです。 2番目のヒント:ええ、それはこれが好きでしたか?味わいませんでした;-)すべての仕様を1つの場所に入れたいですか?それは正しいのですか? 'config.nix'は 'configuration.nix'にある 'environment'変数に影響しませんか? –
1.パッケージを変更する代わりに、再コンパイルの必要を回避するために、ラップされたプログラムを別の派生プログラムにすることができます。 「1つの場所」は、これらのスクリプトのディレクトリであってもよい。 '〜/ .nix-profile/share/rc-scripts/...'とあなたの '.bashrc'は、そのディレクトリを反復してそれらをすべて出力することができます。 3.私はまったくフォローしませんが、あなたが言っていることは正しいと思います。私の知る限りでは、あなたのベース環境をパッケージから設定するための直接的なメカニズムはありません。そして、私の意見では、それはNixの哲学を破るでしょう。 –