如何避免Bazel构建中的“没有剩余空间”?

问题描述 投票:0回答:1

在一个接近完整的设备上运行一个冗长的Bazel构建,我遇到了这个错误:

错误:写入操作日志时出现I / O错误:设备上没有剩余空间

但是,我无法释放设备上的一些空间,因此我必须以某种方式操纵缓存和/或临时存储。我注意到Bazel在~/.cache/bazel/myproject/的缓存可能变得非常大,所以我想知道,我可以:

  • 我收到错误后删除那里的一些文件?
  • 把缓存移到其他地方?
  • 完全禁用缓存?

Bazel's User Manual似乎表明--[no]use_action_cache会做第三种选择(尽管我不知道它会有多高效),但它会减慢速度。

至于临时存储,我确实有一个有足够空间的位置,所以我简单地称为export TMPDIR=/path/to/morespace/。因此,如果我可以移动缓存,那就是它的发展方向。

caching build out-of-memory bazel
1个回答
1
投票

您可以使用启动选项--output_base指向存储空间更多的位置。这将告诉Bazel在哪里写出所有输出。

$ bazel --output_base=/path/to/more/space build ...

要避免为每个命令指定此项,请将其添加到项目<project>/.bazelrc或用户~/.bazelrc

startup --output_base=/path/to/more/space
© www.soinside.com 2019 - 2024. All rights reserved.