2
我想通過Nix來定義我的軟件的rc文件。因此,我定義config.nix
一個新的包將包含一個配置文件:在自定義配置Nix:安裝的軟件包可以設置用戶環境變量嗎?
{ pkgs, ... }:
{
packageOverrides = pkgs : with pkgs; {
custom-config = import ./custom-config {
inherit (pkgs) stdenv;
};
};
}
然後/ default.nix的文件中定義的內聯:
{ stdenv }:
stdenv.mkDerivation rec {
name = "custom-config";
stdenv.mkDerivation {
name = "CustomConfig";
src = builtins.toFile "customrc" ''
# content
'';
};
}
最後一部分缺失的是:將特定的環境變量添加到用戶默認shell,如CUSTOM_CONFIG_RC
,這是相關程序的榮幸。
有人可以給我一個提示嗎?我剛剛開始掌握語言。
好吧,我明白了。但是使用'makeWrapper'會導致從整個數據包的源代碼重新編譯 - 而我需要的唯一更改是運行時環境變量和添加的文件?第二個提示:是的,有這樣的感覺......味道不對;-)希望將所有的規格放在一個地方。是否正確:'config.nix'不能影響'configuration.nix'中的'environment'變量? –
1.不要改變軟件包,你可以將包裝後的程序作爲單獨的派生來避免重新編譯。 2.「一個地方」可以是這些腳本的目錄,例如'〜/ .nix-profile/share/rc-scripts/...'和你的'.bashrc'可以遍歷該目錄,並將它們全部來源。我並不完全遵循,但我認爲你說的是對的。就我所知,沒有直接的機制來設置您的基礎環境,並且我認爲這會與Nix哲學相違背。 –