在一个接近完整的设备上运行一个冗长的Bazel构建,我遇到了这个错误:
错误:写入操作日志时出现I / O错误:设备上没有剩余空间
但是,我无法释放设备上的一些空间,因此我必须以某种方式操纵缓存和/或临时存储。我注意到Bazel在~/.cache/bazel/myproject/
的缓存可能变得非常大,所以我想知道,我可以:
Bazel's User Manual似乎表明--[no]use_action_cache
会做第三种选择(尽管我不知道它会有多高效),但它会减慢速度。
至于临时存储,我确实有一个有足够空间的位置,所以我简单地称为export TMPDIR=/path/to/morespace/
。因此,如果我可以移动缓存,那就是它的发展方向。
您可以使用启动选项--output_base
指向存储空间更多的位置。这将告诉Bazel在哪里写出所有输出。
$ bazel --output_base=/path/to/more/space build ...
要避免为每个命令指定此项,请将其添加到项目<project>/.bazelrc
或用户~/.bazelrc
:
startup --output_base=/path/to/more/space