Libffi 更新失败解决方案

今天惯例进入 Julia 执行 ]up 但是一直遇到以下错误

(@v1.6) pkg> up
    Updating registry at `~/.julia/registries/General`
  Downloaded artifact: Libffi
  Downloaded artifact: Libffi
ERROR: Unable to automatically install 'Libffi' from '/home/sukanka/.julia/packages/Libffi_jll/42HjQ/Artifacts.toml'
Stacktrace:

刚开始以为是网络不稳,重试一遍还是这样。于是打开 /home/sukanka/.julia/packages/Libffi_jll/42HjQ/Artifacts.toml 查看,定位到我的配置

[[Libffi]]
arch = "x86_64"
git-tree-sha1 = "f1a54fe617cfa5997fa86c2cb15b93ac1d8c4c24"
libc = "glibc"
os = "linux"

    [[Libffi.download]]
    sha256 = "a24ceaea67a15d2f9559754954516c6ddafff00c07f5827e18cb6ffd7137919f"
    url = "https://github.com/JuliaBinaryWrappers/Libffi_jll.jl/releases/download/Libffi-v3.2.2+0/Libffi.v3.2.2.x86_64-linux-gnu.tar.gz"

尝试打开下载链接,结果直接 404 not found.
于是只进入 release 页面,去复制下载链接,发现链接是

-url = "https://github.com/JuliaBinaryWrappers/Libffi_jll.jl/releases/download/Libffi-v3.2.2+0/Libffi.v3.2.2.x86_64-linux-gnu.tar.gz"
+url = "https://github.com/JuliaBinaryWrappers/Libffi_jll.jl/releases/download/Libffi-v3.2.2%2B0/Libffi.v3.2.2.x86_64-linux-gnu.tar.gz"

更正 /home/sukanka/.julia/packages/Libffi_jll/42HjQ/Artifacts.toml 里面的下载链接后,重新 up 下就好了。

总结

以后遇到类似于下载失败的错误,可以直接定位到出问题的部分,如 /home/UserName/.julia/packages/Pkgname_jll/42HjQ/Artifacts.toml,打开文件,找到对应于自己的配置,更换下载链接,如果 Github 访问不畅通,可以考虑用 fastgit 代理的链接,更新后重新 add 或者 up 就可以了。

话说,这里的 artifact 应该在镜像里备份了的吧? @johnnychen94

这看起来是个Pkg下载的问题,没有正确转译 +。不过所有 jll 包的 Artifacts 都是这样写的,其他的包也没问题的样子…

话说,这里的 artifact 应该在镜像里备份了的吧

有的,$server/artifact/$sha,比如说 BFSU 下是:
https://mirrors.bfsu.edu.cn/julia/artifact/f1a54fe617cfa5997fa86c2cb15b93ac1d8c4c24

1 个赞