在ruby/rbenv中安装openssl

Kow*_*hik 17 ruby gem openssl rbenv

我需要在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>'
Run Code Online (Sandbox Code Playgroud)

s.m*_*.m. 22

openssl 需要安装在本地计算机上.

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

也许会对你有所帮助.


aid*_*dan 16

乌班图

(以及其他 Linux 发行版)

$ # Display the installation directory:
$ openssl version -d
OPENSSLDIR: "/usr/lib/ssl"

$ # May need to uninstall the previous installation:
$ rbenv uninstall 3.1.2
rbenv: remove /home/aidan/.rbenv/versions/3.1.2? [yN] Y

$ # Then reinstall (using the dir from the first step)
$ RUBY_CONFIGURE_OPTS=--with-openssl-dir=/usr/lib/ssl rbenv install 3.1.2 
Installing ruby-3.1.2...
Installed ruby-3.1.2 to /home/aidan/.rbenv/versions/3.1.2
Run Code Online (Sandbox Code Playgroud)


fgu*_*len 15

对于Mac OSX来说,这就是救了我:

RUBY_CONFIGURE_OPTS=--with-openssl-dir=<openssl install dir> rbenv install
Run Code Online (Sandbox Code Playgroud)

Ruby构建维基

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

$ brew list openssl
/usr/local/Cellar/openssl/1.0.2d_1/bin/c_rehash
/usr/local/Cellar/openssl/1.0.2d_1/bin/openssl
...
Run Code Online (Sandbox Code Playgroud)

那么openssl install目录是:

/usr/local/Cellar/openssl/1.0.2d_1/
Run Code Online (Sandbox Code Playgroud)

ruby安装命令以此结束:

RUBY_CONFIGURE_OPTS=--with-openssl-dir=/usr/local/Cellar/openssl/1.0.2d_1/ rbenv install
Run Code Online (Sandbox Code Playgroud)


小智 8

首先,安装openssl:

sudo apt-get -y install build-essential zlib1g-dev libreadline-dev libssl-dev libcurl4-openssl-dev
Run Code Online (Sandbox Code Playgroud)

然后,重新编译Ruby.

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


Hos*_*Aly 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}
Run Code Online (Sandbox Code Playgroud)