在macOS 10.13(High Sierra)安装Ruby 1.9.2遇gcc兼容问题求解决
在macOS 10.13上安装Ruby 1.9.2的可行方案
我之前帮朋友处理过旧Rails应用维护的类似问题,在macOS 10.13上装Ruby 1.9.2确实会因为官方apple-gcc42配方不支持高版本系统卡壳,下面给你几个经过验证的解决思路:
方案一:使用osx-cross的gcc49替代官方gcc42
官方Homebrew Core的apple-gcc42只支持到macOS 10.9,我们可以用第三方tap提供的gcc49,它对高版本macOS兼容性更好:
- 先添加对应的Homebrew tap:
brew tap osx-cross/homebrew-gcc - 安装gcc49:
brew install gcc49 - 用rbenv安装Ruby 1.9.2时指定这个编译器(替换成你需要的具体patch版本,比如p330):
CC=gcc-4.9 rbenv install 1.9.2-p330
方案二:用LLVM Clang替代GCC
如果gcc49安装遇到问题,试试用LLVM的clang编译器,步骤如下:
- 安装LLVM:
brew install llvm - 设置环境变量指定clang路径:
export CC=/usr/local/opt/llvm/bin/clang - 执行rbenv安装命令:
rbenv install 1.9.2-p330
关键注意事项
- 你提到的Ruby <2.0不支持
with-readline-dir参数这点很重要,如果需要指定readline依赖,一定要用with-opt-dir,比如:CC=gcc-4.9 rbenv install 1.9.2-p330 --with-opt-dir=$(brew --prefix readline) - 安装前建议先更新rbenv和ruby-build工具,避免旧版本带来的兼容问题:
brew update && brew upgrade rbenv ruby-build - 如果安装过程中碰到readline相关错误,先单独安装readline:
brew install readline,再用上面的参数指定路径。
内容的提问来源于stack exchange,提问作者Olivier Lacan
相关产品推荐
相关产品推荐

