2014-01-18 25 views
25

我在我的虛擬機ubuntu12.04lts中安裝了openssl。無法在ruby中需要openssl

當我運行gem命令時會給出錯誤。

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

而且我也在irb模式下測試需要openssl。 它給出了錯誤。

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

我有OpenSSL的

$openssl version 
OpenSSL 1.0.1 14 mar 2012 

如何修正這個錯誤?

+0

您使用的是什麼版本的Ruby,以及您是如何安裝它的?您可能必須按照錯誤消息中所述重新構建Ruby。 –

+0

嗨大衛我正在使用ruby2.1.0p0的紅寶石。我通過構建它的源代碼來安裝它。 –

+0

這個問題看起來像文件名:'--openssl'相對於'openssl'(除非Ruby在錯誤輸出中預先加上破折號)。 'openssl'意外地被格式化爲一個開關? – jww

回答

-2

你使用RVM嗎?

如果不是,請嘗試使用它並查看它是否修復了您的問題。

+0

我已經從源代碼安裝了紅寶石。正如你所說的那樣安裝rvm。怎麼做。無論我想刪除已安裝紅寶石,並在rvm的幫助下安裝紅寶石。如果你能告訴我,我不清楚。從源代碼安裝紅寶石和由rvm安裝有什麼區別。請讓我知道我需要一些很好的參考。謝謝:) –

+0

嘗試此鏈接:https://rvm.io/rvm/install – TonyTK9

+0

我正在使用rvm並搜索有關SSL安裝支持的文檔。我將遵循@notaceo的建議 – nf071590

3

您可能在安裝OpenSSL之前從源代碼構建了Ruby。確保你安裝了它,然後嘗試重新配置和重建Ruby。

13

確保你已經安裝的libssl-dev的:

dpkg -s libssl-dev 

如果沒有,安裝:

sudo apt-get -y install libssl-dev 
4

我要離開這個答案以供參考未來的Google:

類型在終端(OSX)所有這些命令只是要額外確保你所做的一切(這是什麼最終爲我工作)

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 

最後...

正如許多評論者所指出的 - 你需要在編譯之前紅寶石安裝導軌(或其他寶石)

22

注意之前安裝了OpenSSL:調用rubygems.org已被棄用 - 謹慎行事!

在從源代碼構建ruby2.1.0p0之後,我在Mac OSX上遇到了同樣的問題。我已經安裝了openssl。看起來,寶石中的參考需要令人耳目一新。我跑:

gem source -r https://rubygems.org/刪除

其次

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

在此之後,我能夠成功運行gems install bundler

如果遇到進一步的錯誤,你可以嘗試./configure --with-openssl-dir=/usr/local/ssl在Ruby下載的目錄/。

+2

對http://rubygems.org的調用已被棄用,所以這將無法工作更長的時間。 – Anthony

+0

感謝您的領導!我會注意到這個解決方案已被棄用,因爲答案現在已經很老了。 – jspacek

+1

謝謝。從源代碼安裝Ruby on Rails 2.2之後,我也遇到了同樣的問題。您的修復工作 – Nasser

15

我同時使用Debian OpenSSL的地方是在/ usr/bin中得到這個錯誤。

繼jspacek的建議,我重新使用紅寶石:

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

後品牌和須藤使安裝我能夠安裝導軌。

+0

這是我的Raspberry Pi運行Raspbian/Debian的問題 –

+0

這真的有幫助! –

+1

對於自制用戶:'brew install openssl; rvm重新安裝2.3.0 --with-openssl-dir ='brew --prefix openssl'' –

1

運行後重建紅寶石sudo apt-get install libssl-dev libreadline-dev libgdbm-dev可以解決這個問題。

我發現這個解決方案here

0

我得到這個錯誤安裝與RVM的Ruby。沒有工作。我切換到rbenv。問題解決了!

3

萬一別人有這個問題,嘗試使用OpenSSL重新安裝你的Ruby版本包括

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

您可能已經有OpenSSL的 - 這樣你就可以忽略的第一步。 這幫了我。

+2

您節省了我的一天,謝謝! – Netsu

0

這些步驟爲我工作:

  1. 固定紅寶石安裝:

    釀造OpenSSL升級; openssldir = which openssl RVM重新安裝紅寶石2.4.2 --with-openssldir = $ openssldir

  2. 移除並重新添加源寶石

    寶石來源-r https://rubygems.org/ 寶石來源--add https://rubygems.org/