在使用Bazel构建时如何覆盖/ tmp的使用?

时间:2016-03-09 05:25:05

标签: bazel

我正在一个小型文件系统(~8 GB)中使用/tmp在云虚拟机中构建large Bazel project。有时我的构建失败并显示错误Not all outputs were created:包含/tmp的文件系统容量为99%,而/tmp包含许多Bazel构建工件。

如何覆盖Bazel使用的临时目录?我在启动TEMP时尝试设置TMPDIRbazel build环境变量,但这没有帮助。

4 个答案:

答案 0 :(得分:1)

您可以设置--output_base将所有输出放在非默认目录中:

bazel --output_base=/dir/with/more/free/space build //foo

但是,我不认为Bazel在您安装它之后会使用/tmp(默认情况下)(安装程序确实使用了/ tmp),所以也许您正在尝试使用/ {tmp}不同的问题。

答案 1 :(得分:0)

您还可以参考Bazel的手册,其中描述了output directory layout

答案 2 :(得分:0)

如果您使用 configure_make 中的 rules_foreign_cc 规则,很遗憾您无法影响构建的 deps 的存储位置。
https://github.com/bazelbuild/rules_foreign_cc/blob/master/cc_configure_make/def.bzl#L44

#Using Linux cmd
cd pathOfMyDb
nano backupDbRub.sh # backupDBRun is the name of the file that will be called periodically

答案 3 :(得分:0)

我认为您需要 bazel 命令的 --test_tmpdir=<a_path> 命令行参数。

--test_tmpdir=<a path> default: see description
    Specifies the base temporary directory for 'bazel test' to use.