我正在学习有关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/

10-13 05:16