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哲学相违背。 –