我正在使用nix-shell
来调试我的包。
configure脚本如下所示:
configurePhase = ''
mkdir -p $out
...
'';
通过nix-build
运行时,此代码没问题,但在使用nix-shell
运行时,我无法在运行$out
时创建configurePhase
目录
mkdir: cannot create directory '/nix/store/...': Read-only file system
我明白为什么会这样,但如何解决这个问题?
答案 0 :(得分:4)
这是因为$out
指向/nix/store/...
,它以只读方式挂载。
作为Eelco Dolstra pointed,有两种方法可以解决这个问题:
不要在$out
中创建configurePhase
,而是在installPhase
中执行此操作。
将$out
设置为某个不同的值。
您可以使用
设置$out
变量
nix-shell --command "export out=/tmp/foo; return"