Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ruby/rbenv中安装openssl_Ruby_Gem_Openssl_Rbenv - Fatal编程技术网

在ruby/rbenv中安装openssl

在ruby/rbenv中安装openssl,ruby,gem,openssl,rbenv,Ruby,Gem,Openssl,Rbenv,我需要在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 -

我需要在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>'
kprakasam@ubuntu:~$ruby-v
ruby 1.9.2p180(2011-02-18修订版30909)[x86_64-linux]
kprakasam@ubuntu:~$irb
irb(主):001:0>要求“openssl”
LoadError:没有要加载的文件--openssl
from/home/kprakasam/.rbenv/versions/1.9.2-p180/lib/ruby/site\u ruby/1.9.1/rubygems/custom\u require.rb:36:in'require'
from/home/kprakasam/.rbenv/versions/1.9.2-p180/lib/ruby/site\u ruby/1.9.1/rubygems/custom\u require.rb:36:in'require'
来自(irb):1
from/home/kprakasam/.rbenv/versions/1.9.2-p180/bin/irb:12:in`'

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

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


可能会帮助您。

这可能会帮助您:。

首先,安装openssl:

sudo apt-get -y install build-essential zlib1g-dev libreadline-dev libssl-dev libcurl4-openssl-dev
然后,重新编译Ruby


注意:只修复了上面@Nebojsa对Mac OSX的评论这是我的救命稻草:

RUBY_CONFIGURE_OPTS=--with-openssl-dir=<openssl install dir> rbenv install
那么openssl安装目录是:

ruby安装命令的结尾如下:

RUBY_CONFIGURE_OPTS=--with-openssl-dir=/usr/local/Cellar/openssl/1.0.2d_1/ rbenv install

编辑:请注意,此答案可能已过时。这个问题在年内得到解决


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

brew安装rbenv/tap/openssl@1.0
OPENSSL_1_0_DIR=$(brew——前缀rbenv/tap/openssl@1.0)
导出CPPFLAGS=-I${OPENSSL\u 1\u 0\u DIR}/include
导出LDFLAGS=-L${OPENSSL\u 1\u 0\u DIR}/lib
ruby安装ruby 2.2.10--with openssl dir=${openssl\u 1\u 0\u dir}

我认为您必须使用openssl编译ruby
sudo apt get-y build sential install zlib1g dev libreadline dev libssl dev libcurl4 openssl dev
然后再使用rbenv安装ruby,您将获得openssl支持如果您使用RVM,这将非常有用。如果使用RBENV,请查看接受的答案。这在我从源代码将ruby-2.0.0-p451安装到Ubuntu Saucy 13.10时起到了作用。我已将Ubuntu升级到版本20.04.1,ruby停止工作。使用这个命令并在我的rbenv上重新安装ruby版本就成功了。谢谢我要补充的是,我在OSX上的编译错误提到了两个版本的openssl,然后我从brew中删除了所有版本的openssl(卸载和删除),并重新安装了openssl。然后使用openssl dir=/usr/local/ceral/openssl/1.0.2o_1/
.Fixes
/tmp/ruby build.20190501225018.25089/ruby-2.6.3/lib/rubygems/core_ext/kernel_require.rb:54:“require”中:libssl.so.1.0.0:无法打开共享对象文件:没有这样的文件或目录-/Debian 9上的tmp/ruby build.20190501225018.25089/ruby-2.6.3/.ext/x86_64-linux/openssl.so(LoadError)
,谢谢!还修复了“无法配置openssl。将不会安装它。”
/usr/local/Cellar/openssl/1.0.2d_1/
RUBY_CONFIGURE_OPTS=--with-openssl-dir=/usr/local/Cellar/openssl/1.0.2d_1/ rbenv install