RubyOnRails/OSX:没有要加载的文件——openssl

Posted

技术标签:

【中文标题】RubyOnRails/OSX:没有要加载的文件——openssl【英文标题】:RubyOnRails/OSX: no such file to load -- openssl 【发布时间】:2011-06-26 09:09:15 【问题描述】:

我在尝试打开页面时收到“没有要加载的文件--openssl”错误!

我已经用谷歌搜索了几个小时,但我发现没有一个解决方案对我有用:(

我在 OSX (10.6.6) 上运行 ruby​​ 1.9.2p136(通过 rvm 安装(多用户安装))

这是我的本地宝石列表:

*** 当地宝石 *** 摘要 (1.0.0) actionmailer (3.0.4, 3.0.3) 动作包(3.0.4、3.0.3) 活动模型(3.0.4、3.0.3) 活动记录(3.0.4、3.0.3) 活动资​​源(3.0.4、3.0.3) 主动支持(3.0.4、3.0.3) 阿雷尔(2.0.8、2.0.7、2.0.4) bcrypt-ruby (2.1.4) 生成器(3.0.0、2.1.2) 捆绑器 (1.0.10) 设计(1.1.5、1.1.4) 厄鲁比斯 (2.6.6) 哈姆 (3.0.25) i18n (0.5.0, 0.4.2) 邮件(2.2.15、2.2.10) 哑剧类型 (1.16) openssl 扩展 (1.1.0) 多语言 (0.3.1) 机架 (1.2.1) 机架式 (0.6.13) 机架测试(0.5.7、0.5.6) 导轨(3.0.4、3.0.3) 铁轨(3.0.4、3.0.3) 耙子 (0.8.7) sqlite3 (1.3.3) sqlite3-ruby (1.3.3, 1.3.2) 雷神 (0.14.6) 树梢 (1.4.9) tzinfo (0.3.24, 0.3.23) 典狱长 (1.0.3)

请帮助...我是 ruby​​ on rails 的新手,在这里完全迷失了 :(

谢谢

马蒂亚斯

更新: 我尝试手动重新编译 openssl(作为 root 用户):

cd /usr/local/rvm/src/ruby-1.9.2-p136/ext/openssl 红宝石 extconf.rb 制作 须藤使安装

但是 ruby​​ extconf.rb 输出错误:

=== Ruby 配置器的 OpenSSL === === 检查系统相关的东西... === 检查 -lnsl 中的 t_open() ... 否 检查 -lsocket 中的 socket()... 否 检查assert.h ...是的 === 正在检查所需的东西... === 检查 openssl/ssl.h... 否 === 检查所需内容失败。 === 未创建 Makefile。修复上面的错误。

我该怎么办?

更新 2: 现在通过自制软件安装 openssl:

冲泡安装openssl sudo brew 链接 openssl

一切正常,没有错误!

然后执行以下操作:

rvm 删除 1.9.2 rvm install 1.9.2 --with-openssl-dir=/usr/local/etc

最后一个输出这个:

/usr/local/rvm/rubies/ruby-1.9.2-p136,这可能需要一段时间,具体取决于您的 CPU... ruby-1.9.2-p136 - #fetching ruby-1.9.2-p136 - #extracting ruby​​-1.9.2-p136 到 /usr/local/rvm/src/ruby-1.9.2-p136 ruby-1.9.2-p136 - #提取到 /usr/local/rvm/src/ruby-1.9.2-p136 ruby-1.9.2-p136 - #configuring ruby-1.9.2-p136 - #编译 运行“make”时出错,请阅读/usr/local/rvm/log/ruby-1.9.2-p136/make.log 运行 make 时出现错误。停止安装。 root@MatthiasMacBookPro~$ 运行“make”时出错,请阅读 /usr/local/rvm/log/ruby-1.9.2-p136/make.log 错误:只需要 0 或 1 个参数

在此处获取 make.log:http://matthias-ptx4s.posterous.com/private/kksnjfiJoB

更新 3:

当我通过 rvm 切换到 ruby​​ 1.8.5 时,一切正常。那么为什么当我切换到 1.9.2-head 时它不呢!?

解决方案:

Openssl 以某种方式编译为 32 位。我通过删除所有 openssl 版本并通过 mac 端口重新安装来修复它:

sudo 端口安装 openssl +universal

mac ports 默认安装 openssl 在 /opt/local,所以安装 ruby​​ 时需要添加这个路径:

sudo rvm install 1.9.2 --with-openssl-dir=/opt/local

瞧 :)

【问题讨论】:

【参考方案1】:

删除了我的 useless 评论,因为 Matthias 找到了解决方案。

【讨论】:

以上是关于RubyOnRails/OSX:没有要加载的文件——openssl的主要内容,如果未能解决你的问题,请参考以下文章

`require': 没有要加载的文件 -- mkmf (LoadError)

Jruby - 创建 jar,没有要加载的文件

Rails 3 - 没有要加载的文件 - openssl

在“要求”中:没有要加载的文件 -- active_record (LoadError)

无法在 Rails 控制台中加载 Ruby EventMachine - 没有要加载的文件

rails 服务器/控制台错误 - 没有要加载的文件 - 咖啡脚本(LoadError)