办公防火墙下Julia Pkg.update()及LibGit2证书验证问题求助
解决Julia 0.6.2办公防火墙下Pkg操作的Git证书验证问题
我之前也碰到过类似的办公防火墙环境下Julia包管理卡壳的情况,尤其是0.6.x版本的LibGit2模块,有时候确实不会自动读取全局.gitconfig里的sslVerify=false配置,导致Pkg操作失败。给你几个亲测有效的解决思路:
1. 直接在Julia中配置LibGit2参数
打开Julia REPL,执行以下代码,直接给LibGit2的全局配置注入所需的代理和SSL验证设置:
using LibGit2 # 禁用SSL证书验证 LibGit2.set_config(LibGit2.GlobalConfig(), "http.sslVerify", "false") # 设置代理地址 LibGit2.set_config(LibGit2.GlobalConfig(), "http.proxy", "127.0.0.1:3128") # 替换git://协议为https:// LibGit2.set_config(LibGit2.GlobalConfig(), "url.https://.insteadOf", "git://")
执行完这些后,再尝试Pkg.update()或者Pkg.add(),应该能绕过证书验证的问题。
2. 让Julia启动时自动加载配置
如果不想每次启动Julia都手动输一遍上面的代码,可以把配置加到Julia的启动脚本里:
- 找到用户目录下的
.juliarc.jl文件(如果没有就新建一个) - 在文件中添加以下内容:
using LibGit2 LibGit2.set_config(LibGit2.GlobalConfig(), "http.sslVerify", "false") LibGit2.set_config(LibGit2.GlobalConfig(), "http.proxy", "127.0.0.1:3128") LibGit2.set_config(LibGit2.GlobalConfig(), "url.https://.insteadOf", "git://")
这样每次启动Julia,这些配置都会自动生效。
3. 给Julia包仓库单独设置Git配置
Julia的包都存放在~/.julia/v0.6目录下,我们可以直接给这个目录下的Git仓库单独配置参数:
打开终端,执行以下命令:
cd ~/.julia/v0.6 # 禁用当前仓库的SSL验证 git config http.sslVerify false # 设置代理 git config http.proxy 127.0.0.1:3128 # 替换协议 git config url.https://.insteadOf git://
这个方法相当于直接给Julia包管理的核心仓库设置Git规则,能确保Pkg操作时使用正确的配置。
4. 检查代理环境变量是否传递给Julia
有时候Julia进程没拿到代理环境变量也会出问题,你可以先在终端设置环境变量,再启动Julia:
export http_proxy=http://127.0.0.1:3128 export https_proxy=http://127.0.0.1:3128 export NO_PROXY=localhost,127.0.0.1 # 启动Julia julia
之后再尝试Pkg操作,配合前面的SSL验证设置,应该能解决问题。
另外提一句,Julia 0.6.2确实比较老旧了,LibGit2的集成存在一些已知问题,如果后续环境允许,升级到1.6.x这类LTS版本会减少很多这类兼容性问题。
内容的提问来源于stack exchange,提问作者branden_burger
相关产品推荐
相关产品推荐

