Windows系统下运行git svn命令报错查找Unix风格Perl库如何解决
Windows环境安装Git for Windows 2.33.0.2版本后,执行git svn命令会返回如下报错:
Can't load '/usr/lib/perl5/vendor_perl/auto/SVN/_Core/_Core.dll' for module SVN::_Core: No such file or directory at /usr/lib/perl5/core_perl/DynaLoader.pm line 193. at /usr/lib/perl5/vendor_perl/SVN/Base.pm line 59. BEGIN failed--compilation aborted at /usr/lib/perl5/vendor_perl/SVN/Core.pm line 5. Compilation failed in require at C:/Program Files/Git/mingw64/share/perl5/Git/SVN/Utils.pm line 6. BEGIN failed--compilation aborted at C:/Program Files/Git/mingw64/share/perl5/Git/SVN/Utils.pm line 6. Compilation failed in require at C:/Program Files/Git/mingw64/share/perl5/Git/SVN.pm line 32. BEGIN failed--compilation aborted at C:/Program Files/Git/mingw64/share/perl5/Git/SVN.pm line 32. Compilation failed in require at C:/Program Files/Git/mingw64/libexec/git-core\git-svn line 64. BEGIN failed--compilation aborted at C:/Program Files/Git/mingw64/libexec/git-core\git-svn line 64.
该问题是Git for Windows 2.33.0.2版本的已知缺陷,内置Perl环境的路径配置错误,会错误指向Unix风格的库路径,无法找到SVN相关的Perl依赖库。
- 方案1:升级Git for Windows版本
该问题在后续版本迭代中已被官方修复,直接下载安装2.34.0及以上版本的Git for Windows安装包覆盖安装即可,无需额外配置。 - 方案2:临时修复当前版本的路径配置
若暂时无法升级版本,可手动修改Perl的库路径环境变量:- 打开Git Bash终端,执行以下命令临时设置PERL5LIB变量:
export PERL5LIB=/mingw64/share/perl5/site_perl:/mingw64/share/perl5/vendor_perl:/mingw64/lib/perl5/core_perl - 配置生效后再执行
git svn相关命令即可正常运行 - 如需永久生效,将上述export命令添加到Git Bash的用户配置文件
~/.bashrc中,重启Git Bash后自动生效
- 打开Git Bash终端,执行以下命令临时设置PERL5LIB变量:
- 方案3:使用独立的SVN+Perl环境
若上述方案均不适用,可单独安装ActivePerl或Strawberry Perl,以及对应版本的SVN客户端,安装完成后将Perl和SVN的bin目录添加到系统环境变量PATH的最顶部,优先调用系统独立安装的Perl而不是Git内置的Perl。
配置完成后在Git Bash执行git svn --version,正常输出版本信息即为修复成功。
内容的提问来源于stack exchange,提问作者Dipankar Dey

