当前位置: 动力学知识库 > 问答 > 编程问答 >

ruby - Any rvm gem command results in openssl errors

问题描述:

Any time I try to run a gem command, my console spits out several SSL errors and fails to execute properly (for instance gem install xxx).

ssl errors:

[email protected]:~/code/quotr$ gem install bundler

Error loading RubyGems plugin "/home/brandon/.rvm/gems/[email protected]/gems/executable-hooks-1.3.2/lib/rubygems_plugin.rb": /home/brandon/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/x86_64-linux/openssl.so: symbol SSLv2_method, version OPENSSL_1.0.0 not defined in file libssl.so.1.0.0 with link time reference - /home/brandon/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/x86_64-linux/openssl.so (LoadError)

Error loading RubyGems plugin "/home/brandon/.rvm/gems/[email protected]/gems/gem-wrappers-1.2.7/lib/rubygems_plugin.rb": /home/brandon/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/x86_64-linux/openssl.so: symbol SSLv2_method, version OPENSSL_1.0.0 not defined in file libssl.so.1.0.0 with link time reference - /home/brandon/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/x86_64-linux/openssl.so (LoadError)

ERROR: Loading command: install (LoadError)

/home/brandon/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/x86_64-linux/openssl.so: symbol SSLv2_method, version OPENSSL_1.0.0 not defined in file libssl.so.1.0.0 with link time reference - /home/brandon/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/x86_64-linux/openssl.so

ERROR: While executing gem ... (NoMethodError)

undefined method `invoke_with_build_args' for nil:NilClass

rvm info:

ruby-2.3.1:

system:

uname: "Linux ox 3.13.0-101-generic #148-Ubuntu SMP Thu Oct 20 22:08:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux"

system: "debian/jessie_sid/x86_64"

bash: "/bin/bash => GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu)"

zsh: " => not installed"

rvm:

version: "rvm 1.27.0 (master) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]"

updated: "1 day 1 hour 38 minutes 21 seconds ago"

path: "/home/brandon/.rvm"

ruby:

interpreter: "ruby"

version: "2.3.1p112"

date: "2016-04-26"

platform: "x86_64-linux"

patchlevel: "2016-04-26 revision 54768"

full_version: "ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]"

homes:

gem: "/home/brandon/.rvm/gems/ruby-2.3.1"

ruby: "/home/brandon/.rvm/rubies/ruby-2.3.1"

binaries:

ruby: "/home/brandon/.rvm/rubies/ruby-2.3.1/bin/ruby"

irb: "/home/brandon/.rvm/rubies/ruby-2.3.1/bin/irb"

gem: "/home/brandon/.rvm/rubies/ruby-2.3.1/bin/gem"

rake: "/home/brandon/.rvm/rubies/ruby-2.3.1/bin/rake"

environment:

PATH: "/home/brandon/.rvm/bin:/home/brandon/gopath:/home/brandon/gopath/bin:/home/brandon/.rvm/gems/ruby-2.3.1/bin:/home/brandon/.rvm/gems/[email protected]/bin:/home/brandon/.rvm/rubies/ruby-2.3.1/bin:/home/brandon/gopath:/home/brandon/gopath/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/usr/local/bin/aws/bin:/home/brandon/.rvm/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/usr/local/bin/aws/bin"

GEM_HOME: "/home/brandon/.rvm/gems/ruby-2.3.1"

GEM_PATH: "/home/brandon/.rvm/gems/ruby-2.3.1:/home/brandon/.rvm/gems/[email protected]"

MY_RUBY_HOME: "/home/brandon/.rvm/rubies/ruby-2.3.1"

IRBRC: "/home/brandon/.rvm/rubies/ruby-2.3.1/.irbrc"

RUBYOPT: ""

gemset: ""

I even tried upgrading to the latest openssl version in order to fix this problem, but no dice.

[email protected]:~$ openssl version

OpenSSL 1.1.0c 10 Nov 2016

My ruby correctly points to the right one and I have validated the path:

[email protected]:~$ which ruby

/home/brandon/.rvm/rubies/ruby-2.3.1/bin/ruby

[email protected]:~$ cd /home/brandon/.rvm/rubies/ruby-2.3.1/bin

[email protected]:~/.rvm/rubies/ruby-2.3.1/bin$ ls

erb gem irb rake rdoc ri ruby

[email protected]:~/.rvm/rubies/ruby-2.3.1/bin$ ls -la

total 176

drwxrwxr-x 2 brandon brandon 4096 Nov 18 13:31 .

drwxrwxr-x 6 brandon brandon 4096 Nov 18 13:31 ..

-rwxrwxr-x 1 brandon brandon 4842 Nov 18 13:31 erb

-rwxrwxr-x 1 brandon brandon 546 Nov 18 13:31 gem

-rwxrwxr-x 1 brandon brandon 190 Nov 18 13:31 irb

-rwxrwxr-x 1 brandon brandon 487 Nov 18 13:31 rake

-rwxrwxr-x 1 brandon brandon 938 Nov 18 13:31 rdoc

-rwxrwxr-x 1 brandon brandon 188 Nov 18 13:31 ri

-rwxrwxr-x 1 brandon brandon 142504 Nov 18 13:31 ruby

I've been banging my head on this for the past week, so any suggestions would be greatly appreciated. I have successfully run a ruby stack on this OS for several months but had to re-install due to a hard drive failure and I cannot seem to get past this problem.

Is there a way to force rvm to use a different SSL version? It seems like it is pointing to an older version.

网友答案:

Try to reinstall openssl. You should to completely remove the old installation.Run this command:

apt-get autoremove && apt-get autoclean

Then, download and compile:

wget https://www.openssl.org/source/openssl-1.1.0c.tar.gz

If it still doesn't work, try to reinstall rvm.

rvm implode
gem uninstall rvm

rvm implode will uninstall the rvm/ directory and all the rubies built within it.

\curl -sSL https://get.rvm.io | bash -s stable  

Last, reinstall ruby:

rvm install 2.3.1

Hope it helps.

分享给朋友:
您可能感兴趣的文章:
随机阅读: