Ruby
Gem
error

gem install の invoke_with_build_args のエラー 対処方法

More than 1 year has passed since last update.

問題

久しぶりにrubyを触ることになり、gem install を行ったところ、下記のエラーが発生。結構はまったので対処方法を簡単に残す。

terminal
ERROR:  Loading command: install (LoadError)
    dlopen(~/.rbenv/versions/2.1.1/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle, 9): Symbol not found: _SSLv2_client_method
  Referenced from: ~/.rbenv/versions/2.1.1/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle
  Expected in: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
 in ~/.rbenv/versions/2.1.1/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle - ~/.rbenv/versions/2.1.1/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle
ERROR:  While executing gem ... (NoMethodError)
undefined method `invoke_with_build_args' for nil:NilClass

解決方法

いろいろと試した結果、下記のリンクコマンドで解決した。

terminal
brew update
brew install openssl
ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/
ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/
ln -s /usr/local/Cellar/openssl/1.0.2j/bin/openssl /usr/local/bin/openssl

opensslがすでにインストールされていたので、
brew uninstall --force --ignore-dependencies openssl
で一旦むりやりをアンイストールして、から再度インストールした。
アンイストールは不要だったかも。
リングコマンド3つめの1.0.2jは各々の環境によって変更する必要あり。

参考

http://qiita.com/YoshiyukiKato/items/e4f67c588d2943c1253d
https://stackoverflow.com/questions/38670295/homebrew-refusing-to-link-openssl