- 更新日: 2015年6月10日
- Ruby
Symbol not found: _SSLv2_client_method (LoadError) エラー
先日、bundle install で表題のエラーがエラーが発生しました。Ruby のバージョンは rbenv で入れていた 2.1.2。
1 2 3 4 5 6 |
$ bundle install /path/to/.rbenv/versions/2.1.2/lib/ruby/2.1.0/openssl.rb:17:in `require': dlopen(/path/to/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin11.0/openssl.bundle, 9): Symbol not found: _SSLv2_client_method (LoadError) Referenced from: /path/to/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin11.0/openssl.bundle Expected in: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib |
— 環境 —
Mac OS X Yosemite 10.10.3
OpenSSL のアップデートが原因
何かの拍子でシステムに入っている OpenSSL のバージョンがアップデートされたのが原因らしい。brew update した時だろうか…。ちょっとこれまた詳細不明。
Ruby が使おうとしている OpenSSL とシステムに入っている OpenSSL のバージョンがずれていると、このエラーが発生するそうです。以下のページなど参考。
[ruby][mac]bundle install時にSymbol not found: _SSLv2_client_method (LoadError) | hello-world.jp.net
OSX – Yosemiteにした時にSymbol not found: _SSLv2_client_method (LoadError)が出たら – Qiita
rubyでSymbol not found: _SSLv2_client_method (LoadError)が出るとき | Lifelog
Ruby を再インストールして解決
解決策としては、Ruby を再インストールが可能な環境であれば、対象バージョンの Ruby を一旦アンインストールして入れなおせばOKです。私の環境では rbenv で Ruby を管理しているので、rbenv で削除してインストールし直しました。
対象の Ruby 2.1.2 を一旦アンインストール。
1 2 3 |
$ rbenv uninstall 2.1.2 |
パーミッションのせいで rm で消せないディレクトリがあったので、sudo でもう一回実行しました。
1 2 3 |
$ sudo rbenv uninstall 2.1.2 |
これで 2.1.2 を消せました。
rbenv で Ruby 2.1.2 を再インストールします。
1 2 3 |
$ CONFIGURE_OPTS="--with-readline-dir=`brew --prefix readline` --with-openssl-dir=`brew --prefix openssl` --with-iconv-dir=`brew --prefix libiconv`" rbenv install 2.1.2 |
これで、表題のエラーが出なくなり解決。
- Ruby の関連記事
- Gemの作り方(Ruby Gem)
- ローカル開発中のgemをGemfileに書いてインストール
- 熊本地震の余震が夜に多いのは本当か?Rubyプログラムで検証してみた
- El Capitanでgemのnative extensionビルド失敗に対応
- Rubyで親クラスから子クラスの定数を参照
- MacabをRubyで使う
- rbenv/ruby-buildでRuby最新バージョンをインストール
- Rubyでクラスインスタンス変数にインスタンスメソッドからアクセス
- 距離1kmあたりの緯度・経度の度数を計算(日本・北緯35度)
- Google Maps Geocoding APIで住所から緯度・経度を取得するRubyコード
Leave Your Message!