Как я могу nix-env установить деривацию из файла выражения nix? - PullRequest
2 голосов
/ 08 июля 2019

У меня есть 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 Ответ

2 голосов
/ 08 июля 2019

В буквальном смысле мое первоначальное предположение (спасибо @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-defxpr.

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

распакован во временное место. Тарбол должен включать один каталог верхнего уровня, содержащий как минимум файл с именем default.nix.

...