求助:无法通过RVM安装Ruby 1.8.7,执行__rvm_make -j4出错
解决RVM安装Ruby 1.8.7时
__rvm_make -j4执行错误的方案 嘿,我之前帮不少开发者搞定过RVM安装老版本Ruby的坑,尤其是Ruby 1.8.7这种年代比较久的版本,遇到__rvm_make -j4报错,大概率是依赖缺失、编译器不兼容或者RVM缓存的问题,给你几个实用的排查和解决步骤:
1. 先补全系统依赖
老版本Ruby对系统库的要求比较严格,先确保所有必要的编译依赖都装齐了:
- Debian/Ubuntu 系系统:
sudo apt update sudo apt install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion pkg-config - CentOS/RHEL 系系统:
sudo yum groupinstall "Development Tools" sudo yum install openssl-devel readline-devel zlib-devel libyaml-devel libxml2-devel libxslt-devel sqlite-devel
2. 解决编译器兼容性问题
Ruby 1.8.7不兼容新版本的GCC(比如GCC 8及以上),如果你的系统编译器版本太高,需要临时指定低版本编译器来编译:
- 先检查当前GCC版本:
gcc --version - 如果版本高于7,以Ubuntu为例安装低版本GCC:
sudo apt install gcc-6 g++-6 - 用指定的编译器重新安装Ruby:
CC=gcc-6 CXX=g++-6 rvm install 1.8.7
3. 更新RVM并清理缓存
有时候RVM本身的旧缓存或者版本问题会导致安装失败,先更新RVM到稳定版,再清理缓存:
rvm get stable rvm cleanup all
之后再重新尝试安装:
rvm install 1.8.7
4. 指定具体的补丁版本安装
Ruby 1.8.7有多个补丁版本,最后一个稳定补丁是p374,指定这个版本安装可能会解决一些已知的编译问题:
rvm install 1.8.7-p374
同样可以配合指定编译器:
CC=gcc-6 CXX=g++-6 rvm install 1.8.7-p374
5. M1/M2 Mac用户额外注意
如果是苹果ARM芯片的Mac,老版本Ruby不支持原生ARM架构,需要通过Rosetta转译:
- 右键终端→「显示简介」→勾选「使用Rosetta打开」
- 重新打开终端,先安装Xcode命令行工具:
xcode-select --install - 再按照前面的步骤尝试安装,必要时配合指定编译器。
内容的提问来源于stack exchange,提问作者Neeraj Amoli
相关产品推荐
相关产品推荐

