我正在学习有关nixos和nix表达式的信息。在项目文件夹中,我创建了一个shell.nix,当我运行nix-shell
时,我希望它为我预设一个环境变量。
例如设置PGDATA env var。
我知道有几种写nix表达式文件的方法(我还不习惯大多数方法)。这是我的示例:
shell.nix
let
pkgs = import <nixpkgs> {};
name = "test";
in pkgs.myEnvFun {
buildInputs = [
pkgs.python
pkgs.libxml2
];
inherit name;
extraCmds = ''
export TEST="ABC"
'';
}
最佳答案
使用buildPythonPackage函数(使用mkDerivation)。传递任何东西都会在bash shell中设置env变量:
with import <nixpkgs> {};
buildPythonPackage {
name = "test";
buildInputs = [ pkgs.python pkgs.libxml2 ];
src = null;
PGDATA = "...";
}
关于nixos - nix-shell : how to specify a custom environment variable?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27713707/