使用RVM安装Ruby 3.2.1时如何修复‘__rvm_make -j4’错误?
解决OEL 6上RVM安装Ruby 3.2.1时的
__rvm_make -j4编译错误 错误原因
编译报错./include/ruby/internal/value.h:128: error: expected declaration specifiers or '...' before numeric constant,核心原因是OEL 6默认的GCC版本(4.4.7)过低。Ruby 3.2.x要求GCC 8.1或更高版本,旧版本GCC不支持Ruby源码中用到的现代C语言特性,导致编译失败。
解决步骤
1. 安装高版本GCC(DevToolset-8)
OEL 6可以通过CentOS的Software Collections仓库安装兼容的高版本GCC:
# 安装SCL仓库 yum install centos-release-scl # 安装GCC 8及配套工具 yum install devtoolset-8-gcc devtoolset-8-gcc-c++
2. 激活高版本GCC环境
临时激活当前shell的GCC 8环境:
scl enable devtoolset-8 bash
验证版本是否生效:
gcc --version
输出应显示gcc (GCC) 8.3.1或类似版本。
3. 清理残留并重新安装Ruby 3.2.1
先清理之前的编译残留和未完成的安装:
rvm remove ruby-3.2.1 rvm cleanup all
然后重新执行安装命令:
rvm install ruby-3.2.1
4. (可选)永久启用高版本GCC
如果需要每次登录shell都自动使用GCC 8,将激活命令添加到用户的bash配置文件:
echo "source scl_source enable devtoolset-8" >> ~/.bashrc
内容的提问来源于stack exchange,提问作者Prabhu U
相关产品推荐
相关产品推荐

