nix-shell错误 - mkdir:无法创建目录'/ nix / store / ...':只读文件系统

时间:2015-07-22 09:34:53

标签: nixos

我正在使用nix-shell来调试我的包。 configure脚本如下所示:

configurePhase = ''
  mkdir -p $out
  ...
'';

通过nix-build运行时,此代码没问题,但在使用nix-shell运行时,我无法在运行$out时创建configurePhase目录

mkdir: cannot create directory '/nix/store/...': Read-only file system

我明白为什么会这样,但如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

这是因为$out指向/nix/store/...,它以只读方式挂载。

作为Eelco Dolstra pointed,有两种方法可以解决这个问题:

  • 不要在$out中创建configurePhase,而是在installPhase中执行此操作。

  • $out设置为某个不同的值。

您可以使用

设置$out变量
nix-shell --command "export out=/tmp/foo; return"