nix表达式“ <nixpkgs>”是什么?

时间:2019-07-12 20:19:33

标签: nix nixos nixpkgs

查询黑客程序包时,the manual建议使用以下命令:

$ nix-env -f "<nixpkgs>" -qaP -A haskellPackages

因此,在搜索Haskell软件包时,我们将“活动Nix表达式”定义为“ ”。

此表达式“ ”是什么意思,它在哪里定义? 我没有该名称的频道,也没有在/etc/nixos/configuration.nix文件中看到它。

1 个答案:

答案 0 :(得分:2)

来自man nix-env(可能还有其他来源):

   NIX_PATH
       A colon-separated list of directories used to look up Nix
       expressions enclosed in angle brackets (i.e., <path>). For
       instance, the value

           /home/eelco/Dev:/etc/nixos

       will cause Nix to look for paths relative to /home/eelco/Dev and
       /etc/nixos, in that order. It is also possible to match paths
       against a prefix. For example, the value

           nixpkgs=/home/eelco/Dev/nixpkgs-branch:/etc/nixos

       will cause Nix to search for <nixpkgs/path> in
       /home/eelco/Dev/nixpkgs-branch/path and /etc/nixos/nixpkgs/path.

在我的计算机上,NIX_PATHnixpkgs=/Users/me/.nix-defexpr/channels/nixpkgs,所以<nixpkgs>指的是我已订阅的nixpkgs频道。

通常,<...>导致路径不按字面意义处理,而是在NIX_PATH指定的某个目录中找到。