【发布时间】:2017-02-19 09:22:13
【问题描述】:
我使用 rbenv 安装了 ruby 2.3.0。安装 ruby 后使用不同的 openssl,然后是我在我的操作系统中使用的。我该如何解决这个问题?
[cp@cloud pkgconfig]$ ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'
OpenSSL 1.0.1e 11 Feb 2013
[cp@cloud pkgconfig]$ openssl version
OpenSSL 1.0.2k 26 Jan 2017
我尝试使用 openssl 选项重新安装 ruby,但出现以下错误
在 openssl dir 选项中提供可执行路径:
which openssl
/usr/bin/openssl
RUBY_CONFIGURE_OPTS="--with-openssl-dir=/usr/bin/openssl” rbenv install 2.3.1
BUILD FAILED (CentOS release 6.8 (Final) using ruby-build 20160913-13-g8ef0c34)
Inspect or clean up the working tree at /tmp/ruby-build.20170219080937.10731
Results logged to /tmp/ruby-build.20170219080937.10731.log
日志文件
linking shared-object digest/bubblebabble.so
make[2]: Leaving directory `/tmp/ruby-build.20170219073346.517/ruby-2.3.1/ext/digest/bubblebabble'
make[2]: Entering directory `/tmp/ruby-build.20170219073346.517/ruby-2.3.1/ext/digest/md5'
compiling md5init.c
cc1: error: /usr/bin/openssl/include: Not a directory
make[2]: *** [md5init.o] Error 1
make[2]: Leaving directory `/tmp/ruby-build.20170219073346.517/ruby-2.3.1/ext/digest/md5'
make[1]: *** [ext/digest/md5/all] Error 2
make[1]: Leaving directory `/tmp/ruby-build.20170219073346.517/ruby-2.3.1'
make: *** [build-ext] Error 2
给出源目录路径
RUBY_CONFIGURE_OPTS=--with-openssl-dir=/usr/local/src/openssl-1.0.2k rbenv install 2.3.1
构建失败(使用 ruby-build 20170201-7-g5d62e84 的 CentOS 版本 6.8(最终版))
Inspect or clean up the working tree at /tmp/ruby-build.20170219084345.1062
Results logged to /tmp/ruby-build.20170219084345.1062.log
Last 10 log lines:
from /tmp/ruby-build.20170219084345.1062/ruby-2.3.1/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
from /tmp/ruby-build.20170219084345.1062/ruby-2.3.1/lib/rubygems/package.rb:44:in `<top (required)>'
from /tmp/ruby-build.20170219084345.1062/ruby-2.3.1/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
from /tmp/ruby-build.20170219084345.1062/ruby-2.3.1/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
from /tmp/ruby-build.20170219084345.1062/ruby-2.3.1/lib/rubygems/installer.rb:10:in `<top (required)>'
from /tmp/ruby-build.20170219084345.1062/ruby-2.3.1/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
from /tmp/ruby-build.20170219084345.1062/ruby-2.3.1/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
from ./tool/rbinstall.rb:657:in `<module:RbInstall>'
from ./tool/rbinstall.rb:585:in `<main>'
日志文件
generating x86_64-linux-fake.rb
x86_64-linux-fake.rb updated
./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems -r./x86_64-linux-fake ./tool/rbinstall.rb --make="make" --dest-dir="" --extout=".ext" --mflags="" --make-flags="" --data-mode=0644 --prog-mode=0755 --installed-list .installed.list --mantype="doc" --install=all --rdoc-output=".ext/rdoc"
/tmp/ruby-build.20170219084345.1062/ruby-2.3.1/lib/rubygems/core_ext/kernel_require.rb:55:in `require': /tmp/ruby-build.20170219084345.1062/ruby-2.3.1/.ext/x86_64-linux/openssl.so: undefined symbol: EC_GROUP_new_curve_GF2m - /tmp/ruby-build.20170219084345.1062/ruby-2.3.1/.ext/x86_64-linux/openssl.so (LoadError)
from /tmp/ruby-build.20170219084345.1062/ruby-2.3.1/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
from /tmp/ruby-build.20170219084345.1062/ruby-2.3.1/.ext/common/openssl.rb:13:in `<top (required)>'
from /tmp/ruby-build.20170219084345.1062/ruby-2.3.1/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
from /tmp/ruby-build.20170219084345.1062/ruby-2.3.1/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
from /tmp/ruby-build.20170219084345.1062/ruby-2.3.1/lib/rubygems/security.rb:12:in `<top (required)>'
from /tmp/ruby-build.20170219084345.1062/ruby-2.3.1/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
from /tmp/ruby-build.20170219084345.1062/ruby-2.3.1/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
from /tmp/ruby-build.20170219084345.1062/ruby-2.3.1/lib/rubygems/package.rb:44:in `<top (required)>'
from /tmp/ruby-build.20170219084345.1062/ruby-2.3.1/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
from /tmp/ruby-build.20170219084345.1062/ruby-2.3.1/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
from /tmp/ruby-build.20170219084345.1062/ruby-2.3.1/lib/rubygems/installer.rb:10:in `<top (required)>'
from /tmp/ruby-build.20170219084345.1062/ruby-2.3.1/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
from /tmp/ruby-build.20170219084345.1062/ruby-2.3.1/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
from ./tool/rbinstall.rb:657:in `<module:RbInstall>'
from ./tool/rbinstall.rb:585:in `<main>'
make: *** [do-install-all] Error 1
【问题讨论】:
-
OpenSSL::OPENSSL_VERSION是 Ruby 构建 的版本,不一定是它当前使用的版本。OpenSSL::OPENSSL_LIBRARY_VERSION的值是多少? -
2.3.0 :073 > OpenSSL::OPENSSL_LIBRARY_VERSION => "OpenSSL 1.0.1e-fips 2013 年 2 月 11 日"
-
您需要将您的评论发送给@matt——否则他不太可能看到它。
标签: ruby-on-rails ruby openssl rbenv