首页 > 解决方案 > 编译 bazel,但主机在 SQUID 代理后面

问题描述

我想在 Fedora28 上编译一个最近的 bazel,所以我git clone从guthub.com repo 中做了一个。Bazel 需要 bazel 进行编译,我已经从 Fedora/Copr 存储库安装了一个 bazel 0.22 作为“bazel bootstrap”。我运行了compile.sh告诉运行的脚本(形成 bazel 源代码树)bazel build //src:bazel。到目前为止,一切都很好。正如这个问题的标题中所说,我的机器位于 SQUID 代理后面(在端口 1080 上的另一台机器上运行,没有身份验证),并且我有http_proxy+https_proxy指向该代理,并且no_proxy=localhost,127.0.0.1(它们在里面,/etc/environment所以每个人都可以得到它)。看来 bazel 根本不喜欢代理,因为我有以下结果(请参阅下面的输出副本,地址 10.200.255.254:1080 是我的代理)。

我不明白为什么 bazel 无法下载文件,因为它可以与 wget、dnf 的 curl 一起正常工作。

例如:`bazel 0.22 表示无法下载https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-linux_x64-minimal- 90755145cb6e6418584d8603cd5fa9afbb30aecc-1549209948.tar.gz,但是wget其实可以下载(我试过了,效果很好)。

看来 bazel 并不关心我的代理环境变量。我应该怎么办 ?

Extract from the command-line (error message)
$ bazel build //src:bazel
INFO: Invocation ID: 7f267cd1-51f6-4d91-85db-afc797b1323b
ERROR: /home/denielp/bazel/src/BUILD:219:1: no such package '@openjdk_linux_minimal//file': java.io.IOException: Error downloading [https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-linux_x64-minimal-90755145cb6e6418584d8603cd5fa9afbb30aecc-1549209948.tar.gz] to /home/denielp/.cache/bazel/_bazel_denielp/4884ab1c8a85fee5e1fa7c3b610b7efb/external/openjdk_linux_minimal/file/zulu-linux-minimal.tar.gz: Proxy address 10.200.255.254:1080 is not a valid URL and referenced by '//src:embedded_jdk_minimal_cached'
ERROR: Analysis of target '//src:bazel' failed; build aborted: Analysis failed
INFO: Elapsed time: 12.851s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (1 packages loaded, 1 target configured)
currently loading: tools/build_defs/repo
Fetching @openjdk_linux_minimal; fetching 12s
Fetching @remotejdk_linux; fetching 12s
Fetching @bazel_skylib; fetching 12s
Fetching @desugar_jdk_libs; fetching 12s

标签: proxycompilationbazelhttp-proxysquid

解决方案


推荐阅读