在 CentOS 6.5 上构建 bazel 时出现错误 F_SETLK

Error F_SETLK when building bazel on CentOS 6.5

我正在我所在机构的集群计算机上构建和安装 tensorflow,它是 运行ning CentOS 6.5。

显然,第一步是构建和安装 bazel。构建工作正常,但是当我尝试 运行 bazel 二进制文件时,出现以下错误:

Error: unexpected result from F_SETLK: Function not implemented

gcc 版本为 4.7.2

java版本为jdk1.8.0_65

编辑:我也试过编译 gcc 4.9.4 并用这个版本构建,我也试过构建最新的 bazel 和 git 仓库中的 0.3.1。所有变体都会出现相同的错误。

如果 Bazel 尝试自行安装(解压其嵌入式工具)的文件系统不支持锁定,就会发生这种情况。

解决方法 (until the relevant issue is resolved) 是为 --output_user_root 在本地可写(和文件可锁定)文件系统上指定路径,例如:

bazel --output_user_root=/usr/local/$USER/bazelout build <targets>