在ruby / rbenv中安装openssl

wqlqzqxt  于 2023-08-04  发布在  Ruby
关注(0)|答案(7)|浏览(196)

在Ruby中使用OpenSSL我应该如何安装相同的?我已经通过rbenv安装了ruby,现在使用的是ubuntu12.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>'

字符串

kq4fsx7k

kq4fsx7k1#

对于Mac OSX,这是我的救命稻草:

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

字符串
Ruby build 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

2ledvvac

2ledvvac2#

openssl需要安装在本地计算机上。
然后需要编译支持openssl的Ruby,这是通过--with-openssl-dir命令行开关实现的。
this可能会帮助你。

gj3fmq9x

gj3fmq9x3#

Ubuntu

(and其他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

字符串

wj8zmpe1

wj8zmpe14#

首先,安装openssl:

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

字符串
然后重新编译Ruby。
注意:仅修复上面@Nebojsa的评论

kpbpu008

kpbpu0086#

编辑:请注意,这个答案可能已经过时了。issue in question已在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}

字符串

puruo6ea

puruo6ea7#

我在一台M2 Mac上,通过Brew安装了两个版本的OpenSSL(1. 1 & 3)。
我用1.1版的路径为--with-openssl-dir设置了一个env变量。
鱼:

set -gx RUBY_CONFIGURE_OPTS "--with-openssl-dir=/opt/homebrew/opt/openssl@1.1"

字符串
bash/zsh:

export RUBY_CONFIGURE_OPTS="--with-openssl-dir=/opt/homebrew/opt/openssl@1.1"


导出后生成成功。

  • 注意:* 我还为编译器导出了相应的CPPFLAGSLDFLAGS
export LDFLAGS=-L/opt/homebrew/opt/openssl@1.1
export CPPFLAGS=-I/opt/homebrew/opt/openssl@1.1/include

相关问题