libgit2报invalid version 0 on git_proxy_options错误的原因及解决方案
错误触发原因
该错误由git2 crate 0.13.23版本和系统动态链接的高版本libgit2不兼容导致:
git20.13.23绑定的是libgit2 1.1.x版本,该版本初始化git_proxy_options结构体时默认version字段值为0- Fedora 34后续推送的libgit2更新版本抬高了结构体版本校验阈值,要求
git_proxy_options的version字段最低为1 - 近期重新编译时,
git2crate默认优先动态链接系统的更新版libgit2,哪怕你未配置代理,libgit2初始化远程连接时仍会默认校验代理选项结构体的版本,因此抛出该错误。
修复&规避方案
你可以任选以下一种方案解决问题:
- 强制
git2静态编译内置的匹配版本libgit2:修改Cargo.toml中git2的依赖配置,开启vendored特性:
该方案不会影响系统其他组件,是优先推荐的固定方案。git2 = { version = "0.13.23", features = ["vendored"] } - 临时降级系统libgit2版本:执行命令
sudo dnf downgrade libgit2回退到1.1.x版本,若要防止后续自动更新,可在/etc/dnf/dnf.conf中添加exclude=libgit2配置。 - 升级
git2crate版本:将依赖升级到0.14.0及以上版本,该版本已修复代理选项结构体的版本字段初始化逻辑,可兼容新版系统libgit2。
内容的提问来源于stack exchange,提问作者Martin Ellison
相关产品推荐
相关产品推荐

