Я пытаюсь научиться писать выражения Nix, и я подумал о том, чтобы написать свое очень простое "Hello World!" (по традиции).
Итак, у меня есть каталог только с этим default.nix
файлом:
{pkgs ? import <nixpkgs> {}}:
derivation {
system = "x86_64-linux";
name = "simple-bash-derivation-helloworld";
builder = pkgs.bash;
args = [ "-c" "echo 'Hello World' > $out" ];
}
Вот что я получаю, когда пытаюсь его построить:
nix-build
these derivations will be built:
/nix/store/3grmahx3ih4c50asj84p7xnpqpj32n5s-simple-bash-derivation-helloworld.drv
building path(s) ‘/nix/store/6psl3rc92311w37c1n6nj0a6jac16hv1-simple-bash-derivation-helloworld’
while setting up the build environment: executing ‘/nix/store/wb34dgkpmnssjkq7yj4qbjqxpnapq0lw-bash-4.4-p12’: Permission denied
builder for ‘/nix/store/3grmahx3ih4c50asj84p7xnpqpj32n5s-simple-bash-derivation-helloworld.drv’ failed with exit code 1
error: build of ‘/nix/store/3grmahx3ih4c50asj84p7xnpqpj32n5s-simple-bash-derivation-helloworld.drv’ failed
Удаление строки args
приводит к той же проблеме.
Почему у меня проблема с разрешением? Каким будет правильный способ сделать простой вывод, просто выполняя bash echo?
Обратите внимание, что это обучающее упражнение: я не хочу использовать здесь, например, stdenv.mkDerivation
.
Я использую nix-env (Nix) 1.11.9
в системе Ubuntu 16.04.
Заранее спасибо.