nix-env如何安装来自nix表达式文件的派生文件?

时间:2019-07-08 11:50:32

标签: nix nixos

我有一个default.nix文件,该文件建立了派生关系(至少是我的理解)。

{ nixpkgs ? import <nixpkgs> {}, compiler ? "ghc864" } :
nixpkgs.pkgs.haskell.packages.${compiler}.callCabal2nix "bhoogle" (./.) {}

我可以成功nix-build这样做。有什么方法可以直接通过nix-env将其安装到用户配置文件中吗?例如nix-env -i -f default.nix

否则,我需要在系统配置文件中定义一个类似于以下内容的包:

  example = pkgs.callPackage /home/chris/example/default.nix {};

1 个答案:

答案 0 :(得分:2)

从字面上看我的最初猜测(感谢@Robert):

nix-env -i -f default.nix

记录在nix --help中:

   --file / -f path
       Specifies the Nix expression (designated below as the active Nix expression) used by the --install, --upgrade, and --query
     

-可获得的可用操作              派生。默认值为〜/ .nix-defexpr。

       If the argument starts with http:// or https://, it is interpreted as the URL of a tarball that will be downloaded and
     

打开包装到一个临时位置。压缩包              必须包含一个顶层目录,该目录至少包含一个名为default.nix的文件。