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