Bazel 在代理后面构建

Bazel build behind proxy

我想按照 tensorflow 示例构建 generate_streaming_test_wav 以生成测试 wav。我的 bazel 版本是 0.16.1.

问题是当我使用命令 bazel run tensorflow/examples/speech_commands:generate_streaming_test_wav 时,出现以下错误消息:

xxx@xxx:~/kws/tensorflow-0911$ bazel run tensorflow/examples/speech_commands:generate_streaming_test_wav
Starting local Bazel server and connecting to it...
ERROR: error loading package '': Encountered error while reading extension file 'closure/defs.bzl': no such package '@io_bazel_rules_closure//closure': Error downloading [https://mirror.bazel.build/github.com/bazelbuild/rules_closure/archive/dbb96841cc0a5fb2664c37822803b06dab20c7d1.tar.gz, https://github.com/bazelbuild/rules_closure/archive/dbb96841cc0a5fb2664c37822803b06dab20c7d1.tar.gz] to /home/janet/.cache/bazel/_bazel_janet/2d14dc1ff5782da202e00efcc3cd86bc/external/io_bazel_rules_closure/dbb96841cc0a5fb2664c37822803b06dab20c7d1.tar.gz: All mirrors are down: []
ERROR: error loading package '': Encountered error while reading extension file 'closure/defs.bzl': no such package '@io_bazel_rules_closure//closure': Error downloading [https://mirror.bazel.build/github.com/bazelbuild/rules_closure/archive/dbb96841cc0a5fb2664c37822803b06dab20c7d1.tar.gz, https://github.com/bazelbuild/rules_closure/archive/dbb96841cc0a5fb2664c37822803b06dab20c7d1.tar.gz] to /home/janet/.cache/bazel/_bazel_janet/2d14dc1ff5782da202e00efcc3cd86bc/external/io_bazel_rules_closure/dbb96841cc0a5fb2664c37822803b06dab20c7d1.tar.gz: All mirrors are down: []
INFO: Elapsed time: 57.573s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (0 packages loaded)
FAILED: Build did NOT complete successfully (0 packages loaded)

不过,我可以使用wget下载那两个包。 1.https://mirror.bazel.build/github.com/bazelbuild/rules_closure/archive/dbb96841cc0a5fb2664c37822803b06dab20c7d1.tar.gz 2.https://github.com/bazelbuild/rules_closure/archive/dbb96841cc0a5fb2664c37822803b06dab20c7d1.tar.gz 我想我的网络应该没问题。我不知道为什么它不能下载这些文件。

如有任何想法或建议,我们将不胜感激!

如果您知道您的代理服务器,您应该能够设置:

export HTTPS_PROXY=http://me:mypassword@myproxyserver.domain.com:myport
export HTTP_PROXY=http://me:mypassword@myproxyserver.domain.com:myport

和运行 再次构建边框。

如果您不知道 wget 使用的代理服务器,请检查 /etc/wgetrc 或 ~/.wgetrc

我看到关于 HTTPS_PROXY 和 HTTP_PROXY 是大写还是小写的相互矛盾的说法,因此您可以尝试同时设置两者。 (有些人使用 unset 删除小写设置。参见:https://github.com/bazelbuild/bazel/issues/587#issuecomment-412531604

这可能是 Bazel 存储库规则中的错误。如果你对 file a bug 这么好,那就太好了!

作为解决方法,将下载的存档解压缩到某处,并将 WORKSPACE 文件中的 io_bazel_rules_closure 规则替换为指向您解压缩存档的目录的 local_repository 规则。

创建文件夹说 'dist'。

现在 URL bazel 无法下载。 在该文件夹中执行 wget。 ( wget 通常适用于大多数代理)

然后 运行

'bazel build ...... --distdir  dist'

它将从 dist 获取包并开始编译。