macOS High Sierra 10.13.4下RVM安装Ruby 2.5.1失败求助
解决macOS High Sierra 10.13.4下RVM安装Ruby 2.5.1的编译错误
我之前在老Mac上折腾Ruby安装时也碰到过几乎一模一样的问题,根源就是**/usr/local/include/Block.h**这个第三方残留文件和系统头文件冲突了——里面的CloogState、CloogStatement这些陌生类型,都是旧版编译器工具链(比如早年的MacPorts或老版本brew包)留下的垃圾,干扰了Ruby的编译流程。
下面是亲测有效的解决步骤:
- 先备份出问题的头文件,避免直接删错东西:
sudo mv /usr/local/include/Block.h /usr/local/include/Block.h.old - 清理RVM的编译缓存,把之前失败的残留文件清干净:
rvm cleanup all - 重新尝试安装Ruby 2.5.1。如果之前的OpenSSL路径不对,其实High Sierra自带的OpenSSL足够用,先试试默认命令:
如果还是遇到OpenSSL相关报错,建议用brew装个最新的OpenSSL再指定路径:rvm install 2.5.1brew install openssl rvm install 2.5.1 --with-openssl-dir=$(brew --prefix openssl) - 安装成功后,要是没有其他软件依赖那个旧的Block.h,就把备份文件留着就行;如果之后有软件报错,再把
Block.h.old改回原名称。
简单说下原因:/usr/local/include是第三方工具的优先加载目录,系统自带的Block.h本来在/usr/include里,但这个残留的旧文件抢在了前面,导致编译器读到了错误的类型定义,直接炸锅。
内容的提问来源于stack exchange,提问作者Tim Sullivan
相关产品推荐
相关产品推荐

