Ubuntu 22.04安装Ruby 2.6.2时触发__rvm_make -j8错误求助
在Ubuntu 22.04安装Ruby 2.6.2解决
__rvm_make -j8错误的方案 问题描述
- Ubuntu 22.04系统中,通过RVM安装Ruby 2.6.2时触发
Error running '__rvm_make -j8'错误 - 重新安装RVM无法解决问题,系统已正常运行Ruby 3,但必须使用2.6.2版本
- 编译日志核心错误:OpenSSL 3.0中
ERR_get_error_line_data函数被标记为废弃,且编译器将警告当作错误处理
解决方案
方法1:指定兼容的OpenSSL版本编译
Ruby 2.6.2不兼容Ubuntu 22.04默认的OpenSSL 3.0,需用OpenSSL 1.1编译:
- 安装OpenSSL 1.1依赖包:
sudo apt-get install libssl1.1 libssl-dev - 执行RVM安装命令并指定OpenSSL路径:
rvm install 2.6.2 --with-openssl-dir=/usr/lib/ssl
方法2:禁用警告转错误编译
通过环境变量让编译器忽略废弃警告:
- 设置编译参数:
export CFLAGS="-Wno-error=deprecated-declarations" - 重新执行RVM安装:
rvm install 2.6.2
方法3:使用rbenv替代RVM(可选)
若RVM仍有问题,可尝试rbenv:
- 安装rbenv及ruby-build:
sudo apt-get install rbenv ruby-build - 配置rbenv到shell环境:
echo 'eval "$(rbenv init -)"' >> ~/.bashrc source ~/.bashrc - 指定OpenSSL安装Ruby 2.6.2:
RUBY_CONFIGURE_OPTS="--with-openssl-dir=/usr/lib/ssl" rbenv install 2.6.2
错误原因
Ubuntu 22.04预装OpenSSL 3.0,而Ruby 2.6.2的openssl扩展使用了该版本中已废弃的ERR_get_error_line_data函数;同时编译过程默认启用-Werror参数,将所有警告视为错误,最终导致编译中断。
内容的提问来源于stack exchange,提问作者KangarooBoi
相关产品推荐
相关产品推荐

