macOS下使用asdf安装Ruby 3.0.3因Digest::SHA模块报错无法编译
macOS asdf安装Ruby 3.0.3 Digest::SHA报错解决方案
"$errmsg" is not exported by the Digest::SHA module报错的核心原因是Homebrew安装的Perl版本替换了系统默认Perl环境,导致/usr/local/bin/shasum调用的依赖模块版本不兼容,校验Ruby源码包哈希值失败,最终触发编译流程失败。
修复步骤
先清理之前安装失败的残留文件
asdf uninstall ruby 3.0.3确认shasum调用优先级,执行命令查看所有shasum路径
which -a shasum正常系统默认shasum路径为
/usr/bin/shasum,如果输出的第一个路径是/usr/local/bin/shasum即可确认是Homebrew版本的shasum引发的冲突。可选方案1:临时生效(仅对当前终端会话有效)
执行命令将系统默认shasum优先级提前,再重新安装即可export PATH="/usr/bin:$PATH" asdf install ruby 3.0.3可选方案2:永久生效(不需要保留Homebrew版Perl)
直接卸载Homebrew安装的Perl包,重启终端后即可正常安装brew uninstall perl可选方案3:永久生效(需要保留Homebrew版Perl)
给asdf单独指定使用系统默认shasum,打开你用的shell配置文件(/.zshrc对应Zsh,/.bash_profile对应Bash),新增如下配置export ASDF_RUBY_SHASUM=/usr/bin/shasum重载配置后重新运行安装命令即可
# Zsh用户执行 source ~/.zshrc # Bash用户执行 source ~/.bash_profile asdf install ruby 3.0.3
内容的提问来源于stack exchange,提问作者Fa11enAngel
相关产品推荐
相关产品推荐

