2014-01-18 7 views
25

Ich habe openssl in meiner virtuellen Maschine ubuntu12.04lts installiert.Konnte nicht erfordern openssl in Ruby

Wenn ich den Gem-Befehl ausführen, gibt es einen Fehler.

Error: while executing gem (Gem::Exception) 
    Unable to require openssl. install openSSL and rebuilt ruby (preferred) or use non HTTPs sources 

Und ich benötige auch openssl im irb-Modus. gibt es Fehler.

Loaderror: cannot load such file --openssl 
from /usr/local/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55 `require' 

Ich habe openssl

$openssl version 
OpenSSL 1.0.1 14 mar 2012 

Wie um den Fehler zu beheben?

+0

Welche Version von Ruby verwenden Sie und wie haben Sie es installiert? Sie müssen wahrscheinlich Ruby neu erstellen, wie es in der Fehlermeldung heißt. –

+0

Hallo David Ich benutze Ruby2.1.0p0 von Ruby. Ich habe es installiert, indem ich seine Quelle gebaut habe. –

+0

Das Problem sieht wie der Dateiname aus: '--openssl' vs nur' openssl' (es sei denn, Ruby die Bindestriche bei Fehlerausgabe vorangestellt). Wird 'openssl' versehentlich als Schalter formatiert? – jww

Antwort

-2

Verwenden Sie RVM?

Wenn nicht, versuchen Sie es zu benutzen und sehen Sie, ob es Ihr Problem behebt.

+0

Ich habe Ruby bereits von seiner Quelle installiert.So wie du gesagt hast, um rvm zu installieren. Wie es geht. Ob ich Ruby entfernen möchte ich bereits installiert und Ruby mit Hilfe von Rvm installieren. Ich habe keine klare Idee, wenn Sie es mir sagen können. Welcher Unterschied zwischen der Installation von Ruby von der Quelle und der Installation durch rvm. Bitte lassen Sie mich wissen, ich brauche eine gute Referenz. Danke :) –

+0

Versuchen Sie diesen Link: https://rvm.io/rvm/install – TonyTK9

+0

Ich benutze rvm und suche nach Dokumentation auf SSL-Installationssupport. Ich werde dem Rat von @notaceo folgen: – nf071590

3

Wahrscheinlich haben Sie Ruby vor der Installation von OpenSSL aus der Quelle erstellt. Stellen Sie sicher, dass Sie es installieren und versuchen Sie dann, Ruby neu zu konfigurieren und neu zu erstellen.

13

stellen Sie sicher, libssl-dev installiert haben:

dpkg -s libssl-dev 

wenn nicht, installieren Sie es:

sudo apt-get -y install libssl-dev 
4

ich auf zukünftige Googler diese Antwort als Referenz verlasse:

Typ alle diese Befehle in Ihrem Terminal (OSX), nur um extra sicher zu sein, dass Sie alles gemacht haben (das ist, was schließlich für mich funktionierte)

rvm get stable 
brew update 
brew doctor 
brew install openssl 
rvm install ruby-2.1 (or whatever version) 
rvm use (ruby version here) i.e. rvm use ruby-2.1 
rvm gemset create NAME i.e. rvm gemset create rails41 
gem install rails -v 4.1 

Endlich ...

Wie viele Kommentatoren haben darauf hingewiesen - Sie OpenSSL installiert, bevor Sie Rubin kompilieren, bevor Sie Schienen (oder andere Edelsteine) installieren

22

Hinweis: Anrufe sind veraltet rubygems.org - mit Vorsicht fortfahren!

Ich hatte das gleiche Problem auf Mac OSX nach dem Erstellen von ruby2.1.0p0 aus der Quelle. Ich hatte bereits openssl installiert. Es scheint, dass die Referenz in Edelsteinen erfrischt werden musste. Ich lief:

gem source -r https://rubygems.org/ zu

entfernen

gefolgt von

gem source -a https://rubygems.org/

Danach lesen konnte ich gems install bundler erfolgreich auszuführen.

Wenn weitere Fehler auftreten, können Sie versuchen, ./configure --with-openssl-dir=/usr/local/ssl in Ihrem Ruby heruntergeladen Verzeichnis /.

+2

Aufrufe an http://rubygems.org sind veraltet, das wird nicht mehr lange funktionieren. – Anthony

+0

Danke für die Köpfe hoch! Ich möchte darauf hinweisen, dass diese Lösung veraltet ist, da die Antwort jetzt alt ist. – jspacek

+1

danke. Ich hatte gerade das gleiche Problem nach der Installation von Ruby 2.2 auf Linux von Quellen auch. Ihr Fix hat funktioniert – Nasser

15

Ich habe diesen Fehler bei der Verwendung von Debian, wo OpenSSL war in/usr/bin.

Vorschlag von jspacek Linien I rekonfiguriert Rubin mit:

./configure --with-openssl-dir=/usr/bin 

Nach make und sudo make install ich in der Lage war Schienen zu installieren.

+0

Dies ist das Problem mit meinem Raspberry Pi mit Raspbian/Debian –

+0

Das hilft wirklich! –

+1

Für Homebrew Benutzer: 'brauen installieren openssl; rvm reinstall 2.3.0 --with-openssl-dir = 'brew --prefix openssl'' –

1

Der Wiederaufbau von Ruby nach dem Ausführen von sudo apt-get install libssl-dev libreadline-dev libgdbm-dev kann dieses Problem lösen.

Ich fand diese Lösung here.

0

Ich bekam diesen Fehler bei der Installation von Ruby mit RVM. Nichts hat geklappt. Ich wechselte zu rbenv. Problem gelöst!

3

Falls jemand anderes hat dieses Problem, versuchen Sie Ihr Ruby-Version mit openssl Neuinstallation enthalten

brew install openssl 
rvm reinstall 2.4.0 --with-openssl-dir=`brew --prefix openssl` 

Sie könnten bereits openssl - so dass Sie den ersten Schritt ignorieren. Das hat mir geholfen.

+2

Sie sparen meinen Tag, danke! – Netsu

0

Diese Schritte für mich gearbeitet:

  1. Fest Rubin installieren:

    Gebräu Upgrade OpenSSL; openssldir = which openssl rvm neu installieren rubin 2.4.2 --with-openssldir = $ openssldir

  2. entfernt und Quellen für Edelsteine ​​

    gem Quellen -r https://rubygems.org/ gem Quellen erneut hinzugefügt --add https://rubygems.org/