Mac系统git svn clone报错SVN::_Core模块加载失败怎么解决?
git svn clone执行失败(SVN模块加载报错)解决方案
错误详情
完整报错日志如下:
Can't load '/usr/local/opt/subversion/lib/perl5/site_perl/5.30.3/darwin-thread-multi-2level/auto/SVN/_Core/_Core.bundle' for module SVN::_Core: dlopen(/usr/local/opt/subversion/lib/perl5/site_perl/5.30.3/darwin-thread-multi-2level/auto/SVN/_Core/_Core.bundle, 0x0001): Symbol not found: _apr_crypto_block_cleanup Referenced from: /usr/local/Cellar/subversion/1.14.1_4/lib/libsvn_subr-1.0.dylib Expected in: /usr/lib/libaprutil-1.0.dylib at /System/Library/Perl/5.30/darwin-thread-multi-2level/DynaLoader.pm line 197. at /usr/local/opt/subversion/lib/perl5/site_perl/5.30.3/darwin-thread-multi-2level/SVN/Base.pm line 59. BEGIN failed--compilation aborted at /usr/local/opt/subversion/lib/perl5/site_perl/5.30.3/darwin-thread-multi-2level/SVN/Core.pm line 5. Compilation failed in require at /usr/local/opt/git/share/perl5/Git/SVN/Utils.pm line 6. BEGIN failed--compilation aborted at /usr/local/opt/git/share/perl5/Git/SVN/Utils.pm line 6. Compilation failed in require at /usr/local/opt/git/share/perl5/Git/SVN.pm line 25. BEGIN failed--compilation aborted at /usr/local/opt/git/share/perl5/Git/SVN.pm line 32. Compilation failed in require at /usr/local/bin/git-svn line 23. BEGIN failed--compilation aborted at /usr/local/bin/git-svn line 23.
该错误核心原因是Homebrew安装的subversion依赖的apr-util库和系统自带版本不匹配,subversion需要的_apr_crypto_block_cleanup符号在系统自带的/usr/lib/libaprutil-1.0.dylib中不存在,导致SVN的Perl模块加载失败,进而git-svn无法运行。
修复步骤
- 第一步:卸载现有Homebrew安装的相关包,消除版本冲突
brew uninstall --force git subversion apr apr-util
- 第二步:清理Homebrew残留缓存和未使用的依赖
brew cleanup && brew autoremove
- 第三步:按顺序重新安装依赖
# 先安装apr和apr-util依赖 brew install apr apr-util # 安装subversion brew install subversion # 安装git和git-svn组件 brew install git git-svn
- 第四步(仅M系列芯片Mac需要执行):将Homebrew的Perl路径加入环境变量,避免调用系统版本Perl导致冲突
打开~/.zshrc(zsh用户)或者~/.bashrc(bash用户),添加如下内容:
export PATH="/opt/homebrew/opt/perl/bin:$PATH"
保存后执行source ~/.zshrc或者source ~/.bashrc使配置生效。
验证修复结果
执行以下命令,正常输出版本信息即说明修复完成:
git svn --version
之后即可正常执行git svn clone操作。
内容的提问来源于stack exchange,提问作者Chetan
相关产品推荐
相关产品推荐

