Fedora 34工作站使用rbenv安装2.3以下版本Ruby编译失败求助
Fedora 34安装Ruby 2.2.6编译失败的解决方案
问题根因
Fedora 34默认搭载的系统组件版本较高,与早已结束生命周期的Ruby 2.2.x版本存在两处核心兼容性冲突:
- 系统默认的OpenSSL 1.1/3.0版本不满足Ruby 2.2.x要求的OpenSSL 1.0.x依赖
- 高版本GCC的默认编译优化策略与旧版Ruby源码不兼容
解决步骤
- 安装兼容依赖包
首先安装旧版OpenSSL和基础编译依赖:sudo dnf install gcc make openssl1.0 openssl1.0-devel libyaml-devel readline-devel zlib-devel - 带参数执行rbenv安装
安装时指定OpenSSL路径并添加兼容编译参数:RUBY_CONFIGURE_OPTS="--with-openssl-dir=/usr/lib64/openssl1.0" CFLAGS="-fno-tree-dse" rbenv install 2.2.6 - 验证安装
安装完成后执行命令确认版本正常:rbenv global 2.2.6 && ruby -v
注意事项
Ruby 2.2.x已停止维护多年,不再接收任何安全补丁与功能更新,仅建议用于临时兼容旧项目的场景,生产环境请尽量升级到官方仍在支持的Ruby版本。
内容的提问来源于stack exchange,提问作者Ben Bagley
相关产品推荐
相关产品推荐

