nix-shell:如何指定自定义环境变量?

时间:2014-12-30 22:49:48

标签: nixos

我正在学习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"
  '';
 }

2 个答案:

答案 0 :(得分:4)

使用buildPythonPackage函数(使用mkDerivation)。传递任何东西都会在bash shell中设置env变量:

with import <nixpkgs> {};

buildPythonPackage {
  name = "test";

  buildInputs = [ pkgs.python pkgs.libxml2 ];

  src = null;

  PGDATA = "...";
}

答案 1 :(得分:0)

您也可以使用import random test_list1 = [1, 2, 4, 3, 5] test_list2 = [1, 1, 1, 1, 1] print ("The first list is : " + str(test_list1)) print ("The second list is : " + str(test_list2)) test_list1.sort) test_list2.sort() if test_list1 == test_list2: print ("The lists are identical") else : print ("The lists are not identical")

pkgs.stdenv.mkDerivation.shellHook