You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 18.04编译安装Ruby 1.8.7-p374时OpenSSL编译出错求助

解决Ruby 1.8.7-p374编译时OpenSSL扩展失败的问题

我之前在编译老版本Ruby的时候也碰到过一模一样的OpenSSL编译失败问题,结合你给出的操作步骤,给你几个针对性的解决方法:

1. 先安装OpenSSL的开发依赖包

编译Ruby的OpenSSL扩展需要系统提供对应的头文件和库文件,你可能之前没装,先执行这个命令补全依赖:

sudo apt-get install libssl-dev openssl

如果你的系统是比较老的Debian/Ubuntu版本(比如Ubuntu 12.04之类的),可能需要安装libssl0.9.8-dev来匹配Ruby 1.8.7的兼容性。

2. 重新配置Ruby时指定OpenSSL路径

有时候默认的./configure会找不到OpenSSL的正确位置,你可以在配置阶段手动指定路径:

cd ruby-1.8.7-p374
./configure --with-openssl-dir=/usr

这里/usr是OpenSSL默认的安装路径,如果你的系统里OpenSSL在其他目录(比如/usr/local/ssl),替换成对应的路径即可。

3. 调整gcc-4.4的编译参数

Ruby 1.8.7和gcc-4.4的兼容性存在一些小问题,你可以在make的时候加上特定的CFLAGS来规避编译错误:

make CC=gcc-4.4 CFLAGS="-O2 -fno-tree-dce -fno-optimize-sibling-calls"

这个参数是专门解决老版本gcc编译Ruby 1.8时常见的优化导致的错误。

4. 单独编译OpenSSL扩展再整体编译

如果上面的方法还是不行,可以尝试单独编译OpenSSL扩展,确认没问题后再编译整个Ruby:

# 进入OpenSSL扩展目录
cd ruby-1.8.7-p374/ext/openssl
# 生成扩展的Makefile
ruby extconf.rb --with-openssl-dir=/usr
# 单独编译这个扩展
make CC=gcc-4.4
# 回到Ruby根目录继续整体编译
cd ../..
make CC=gcc-4.4

额外提醒

Ruby 1.8.7已经停止安全更新很多年了,如果不是项目强制要求必须用这个版本,强烈建议你升级到Ruby 2.7及以上的维护版本,避免后续遇到更多兼容性和安全问题。

内容的提问来源于stack exchange,提问作者김다희

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:13:26