21

我需要在 ruby​​ 中使用 openssl。我应该如何安装相同的?我已经通过 rbenv 安装了 ruby​​,并且正在使用 ubuntu 12.04。

kprakasam@ubuntu:~$ ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]

kprakasam@ubuntu:~$ irb
irb(main):001:0> require 'openssl'
LoadError: no such file to load -- openssl
    from /home/kprakasam/.rbenv/versions/1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /home/kprakasam/.rbenv/versions/1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from (irb):1
    from /home/kprakasam/.rbenv/versions/1.9.2-p180/bin/irb:12:in `<main>'
4

5 回答 5

30

对于 Mac OSX,这救了我:

RUBY_CONFIGURE_OPTS=--with-openssl-dir=<openssl install dir> rbenv install

来自Ruby 构建 wiki

但是..如何找到openssl安装目录?:

$ brew list openssl
/usr/local/Cellar/openssl/1.0.2d_1/bin/c_rehash
/usr/local/Cellar/openssl/1.0.2d_1/bin/openssl
...

然后openssl 安装目录是:

/usr/local/Cellar/openssl/1.0.2d_1/

ruby 安装命令如下结束:

RUBY_CONFIGURE_OPTS=--with-openssl-dir=/usr/local/Cellar/openssl/1.0.2d_1/ rbenv install
于 2016-04-05T07:28:36.273 回答
23

openssl需要安装在本地机器上。

然后,您需要使用 openssl 支持编译 Ruby,这是通过--with-openssl-dir命令行开关实现的。

也许会对你有所帮助。

于 2012-06-20T18:51:44.470 回答
11

首先,安装openssl:

sudo apt-get -y install build-essential zlib1g-dev libreadline-dev libssl-dev libcurl4-openssl-dev

之后,重新编译 Ruby。

注意:仅修复上面@Nebojsa 的评论

于 2013-09-17T21:50:16.930 回答
6

这可能会对您有所帮助:Rails:无法加载此类文件 - openssl

于 2012-06-20T19:04:16.523 回答
5

编辑:请注意,此答案可能已过时。有问题的问题已在v0.8.1中解决。


在阅读了这个问题的多个答案后,我设法使用以下命令使其在 macOS 10.15 上运行:

brew install rbenv/tap/openssl@1.0
OPENSSL_1_0_DIR=$(brew --prefix rbenv/tap/openssl@1.0)

export CPPFLAGS=-I${OPENSSL_1_0_DIR}/include
export LDFLAGS=-L${OPENSSL_1_0_DIR}/lib

ruby-install ruby 2.2.10 -- --with-openssl-dir=${OPENSSL_1_0_DIR}
于 2020-05-20T14:34:20.757 回答