2016-07-06 5 views
1

は:だからRubyのOpenSSLの:: HTTP

/Users/user_name/.rbenv/versions/1.8.7-p375/lib/ruby/1.8/net/https.rb:124:in `use_ssl=': uninitialized constant Net::HTTP::OpenSSL (NameError)

を、私はhttpsのファイルを開いて、ちょうど何が起こるかを見るために一つのことを変更し、私はこれをしませんでした:

@ssl_context = ::OpenSSL::SSL::SSLContext.new 

あなたがそれを見ることができない場合、私はこの方法でOpenSSL::SSL::SSLContext.new::を追加しました:

def use_ssl=(flag) 

問題は解消されました。私はパッチとして機能するように私のスクリプトの先頭に次を追加しましたので、

今、明らかに私はルビーのLIBSのためのソースコードを直接編集することはできません。

module Net 
    class HTTP 

    def use_ssl=(flag) 
     flag = (flag ? true : false) 
     raise IOError, "use_ssl value changed, but session already started"\ 
      if started? and @use_ssl != flag 
     if flag and not @ssl_context 
     @ssl_context = ::OpenSSL::SSL::SSLContext.new 
     end 
     @use_ssl = flag 
    end 
    end 
end 

私はエラーを取得していますが。

require 'openssl' 

を私のスクリプトの先頭に:行われたにも関わらず

scripts/get_social_data.rb:27:in `use_ssl=': uninitialized constant OpenSSL (NameError)

なぜ私はそれが必要なのにOpenSSLが存在しないのですか?

私は気にいらを欠けているが、私は正直にそれを見ることはできません推測しています。

EDIT:

まあ、私は、OpenSSL(私はこのプロジェクトを維持していますが)gemfileにあったことに気づいた、私はそれをアンインストールしたがそれはまだ働いていない、そこにすることになっていないかなり確信しています。

答えて

1

オクラホマので、インターネットを中心に見ていると私は私の問題の修正プログラムを発見したいろいろなことを試した後、私は、次のコマンドを使用して再インストールルビーに1.8.7-P375を持っていた:

RUBY_CONFIGURE_OPTS=--with-openssl-dir= rbenv install 1.8.7-p375

opensslDirは、少なくともOSX上で、発見され、このような自作をインストールすることができます。

brew list openssl

あなたがちょうどそれらのすべてにありますビットをコピーし、それはこのように気にいらないように見えるかもしれませんが、ディレクトリのの束を取得します:

/usr/local/Cellar/openssl/1.0.2h

関連する問題