Clang无法使用。

听了2021冬季会议,打算尝试下Clang,发现连第一步都无法进行。
版本:julia 1.6.4 Clang 0.14.1 (1.7.0也是同样问题)
Win10与linux都出现同样的问题

ERROR: LoadError: InitError: ssl_handshake returned - mbedTLS: (-0x0050) NET - Connection was reset by peer while requesting https://raw.githubusercontent.com/JuliaPackaging/BinaryBuilderBase.jl/master/Artifacts.toml

test Clang 及第一次 using Clang 都会出现这个报错。
初步尝试了梯子和国内镜像都无法解决。
该如何解决呢?

执行后续例子代码 args = get_default_args() 出现报错

ERROR: KeyError: key "GCCBootstrap-x86_64-linux-gnu.v4.8.5.x86_64-linux-musl.unpacked" not found

Yggdrasil.jl包下发现 GCCBootstrap-v4.8.5等组建,该如何安装编译呢?win10该如何?

现有的镜像系统尚未包含 github 上分发的二进制文件。

所以实际上你还是需要科学上网。

看起来似乎单纯是网络的原因导致的… 可能是代理没有被识别到。

又折腾了一会。发现Clang.jl@0.13.0版本test Clang没有报错。
0.14.1及0.15.0第一次执行using Clang.Generators后报错提示的网站确实需要梯子才能访问(为何第二次就不报错了?),手上两个梯子设置成全局代理还是无法解决。后续只能尝试下云服务器了。

https://raw.githubusercontent.com/JuliaPackaging/BinaryBuilderBase.jl/master/Artifacts.toml

这个应该不需要梯子就能访问吧。

因为每次using Clang的时候都会尝试更新最新的Artifacts.toml列表:

这个换源竟然不行吗?@johnnychen94

确实需要梯子,包括测试了国内云服务器。

尝试了以下几个源

  "SUSTech"   => 0.0379419
  "TUNA"      => 0.0313289
  "USTC"      => 0.0124254
  "NJU"       => 0.0114982

NJU源偶尔可以按照20秒0.1%进度下载

(@v1.7) pkg> test Clang
     Testing Clang
      。。。。。。
     Testing Running tests...
    Downloading [==>                                      ]  2.7 % %

是墙漏缝了?还是源的缘故?

我感觉这个只是因为单纯的访问海外服务器慢导致的。那这个GitHub的文件应该可以正常下载吧? BinaryBuilderBase.jl/Artifacts.toml at master · JuliaPackaging/BinaryBuilderBase.jl · GitHub

如果需要,我可以加个环境变量来手动配置JLL_ENV_SHARDS_URL为上述文件的本地路径。

merge!(JLL_ENV_SHARDS, Artifacts.load_artifacts_toml(Downloads.download(JLL_ENV_SHARDS_URL)))

现在加了一个环境变量 JULIA_CLANG_SHARDS_URL 来配置本地的 Artifacts.toml 路径。

测试方法:

  1. 更新并使用master branch
pkg> dev Clang
  1. 下载 BinaryBuilderBase.jl/Artifacts.toml at master · JuliaPackaging/BinaryBuilderBase.jl · GitHub 到本地路径(e.g. xxx/yyy/zzz/Artifacts.toml)

  2. 将环境变量 JULIA_CLANG_SHARDS_URL 设为此路径(e.g. export JULIA_CLANG_SHARDS_URL =xxx/yyy/zzz/Artifacts.toml)

  3. 尝试拉任意一个JLL环境

julia> using Clang.Generators

julia> get_default_args("x86_64-linux-gnu")
[ Info: Downloading artifact(305c8b171016c46dfbb8ca234a543a99b6e3d045) from https://github.com/JuliaPackaging/Yggdrasil/releases/download/GCCBootstrap-v4.8.5+1/GCCBootstrap-x86_64-linux-gnu.v4.8.5.x86_64-linux-musl.unpacked.tar.gz ...
Downloading [==>

如果卡在下载这里,可以通过第三方下载器手动下载上述 Info 中的 https://github.com/JuliaPackaging/Yggdrasil/releases/download/GCCBootstrap-v4.8.5+1/GCCBootstrap-x86_64-linux-gnu.v4.8.5.x86_64-linux-musl.unpacked.tar.gz 部分, 解压之后将文件夹重命名为上述 Info 中的 305c8b171016c46dfbb8ca234a543a99b6e3d045 部分,最后将重命名后的文件夹拷贝到你系统下的 .julia/artifacts 里面。

1 个赞

备案号:京ICP备17009874号-2