2017-06-08 21 views
1

私はNix式を書くことを学ぼうとしています。私は非常にシンプルな "Hello World!" (伝統と同じように)。nix-build:bashパーミッションが拒否されました

だから私はこれだけdefault.nixファイルと私のDIRています。ここ

{pkgs ? import <nixpkgs> {}}: 
derivation { 
    system = "x86_64-linux"; 
    name = "simple-bash-derivation-helloworld"; 
    builder = pkgs.bash; 
    args = [ "-c" "echo 'Hello World' > $out" ]; 
} 

は、私はそれを構築しようとすると、私が得るものです:args行を削除する

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 

は同じ問題を生み出します。

許可の問題が発生するのはなぜですか? bash echoを実行するだけで、簡単な導出を行う正しい方法は何でしょうか?

これは学習の練習であることに注意してください。たとえば、ここではstdenv.mkDerivationは使用しません。

私はnix-env (Nix) 1.11.9をUbuntu 16.04システムで実行しています。

ありがとうございます。

答えて

2

/nix/store/wb34dgkpmnssjkq7yj4qbjqxpnapq0lw-bash-4.4-p12lsコマンドを実行してみてください、あなたはそれがディレクトリではなく、実行可能ファイル(pkgs.bash導出の$outを指している)ですが表示されます。 bashバイナリを参照したい場合は、

builder = "${pkgs.bash}/bin/bash";                                           
+0

本当にありがとうございます。 このようなことが記録されている場所がありますか? 何らかのオートコンプリートを持つnix IDEがあったらいいですか? – HectorJ

+0

http://nixos.org/nix/manual/ –

+0

@DavidGraysonこのマニュアルでは、パッケージ内容の詳細は記載されていません。 – HectorJ

関連する問題