jekyll
をインストールしようとしていますが、エラーが発生しました。 Mac OS X 10.11.4(El Capitan)を実行しています。
$gem install jekyll
ERROR : While executing gem ... (Gem::Exception)
Unable to require openssl, install OpenSSL and rebuild Ruby (preferred) or use non-HTTPS sources
$gem source -l
https://Ruby.taobao.org
$which openssl
/usr/local/bin/openssl
このエラーを解決する方法を提案してください。
OSXの新しいバージョンではopenSSLが廃止され、多くの依存関係が壊れています。 Rubyを再インストールする必要がありますが、openSSLライブラリの場所を正確に指定してください。 rvm
を使用している場合、次のようになります。
rvm reinstall 2.3.0 --with-openssl-dir=/usr/local/opt/openssl
Homebrewを使用している場合、ライブラリの場所への簡単なショートカットは次のとおりです。
brew install openssl
rvm reinstall 2.3.0 --with-openssl-dir=`brew --prefix openssl`
ターミナル(OSX)でこれらすべてのコマンドを入力して、すべてを完了したことを確認してください。
rvm get stable
brew update
brew doctor
brew install openssl
rvm install Ruby-2.4 (or whatever version)
rvm use Ruby-2.4 (or whatever version)
rvm gemset create jekyll
gem install jekyll
最後に、Jekyll(または他のgem)をインストールする前にRubyをコンパイルする前にOpenSSLをインストールする必要があります!
OSXの新しいバージョンはopenSSLを非推奨にしました。
Rubyを再インストールする必要があります!
rvm reinstall 2.3.0 --with-openssl-dir=/usr/local/opt/openssl
rvm get stable
rvm reinstall Ruby-2.3.0
brew install openssl
rvm reinstall 2.3.0 --with-openssl-dir=`brew --prefix openssl`
このenv変数を設定するだけで、コンパイラがopensslライブラリの正しいパスを取得できます(macOSでHomebrewを使用している場合は、brew info openssl
を試してこの情報を確認してください)。
$ export LDFLAGS=-L/usr/local/opt/openssl/lib
$ export CPPFLAGS=-I/usr/local/opt/openssl/include
# For pkg-config to find this software you may need to set:
$ export PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig
次に、Ruby(rvm reinstall Ruby-version
)を再インストールします
brew install openssl
brew info openssl # do the suggested options
$ export LDFLAGS=-L/usr/local/opt/openssl/lib
$ export CPPFLAGS=-I/usr/local/opt/openssl/include
# For pkg-config to find this software you may need to set:
$ export PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig
rvm reinstall <version> --with-openssl-dir=`brew --prefix openssl`
Opensslに関連する他の回答を考慮すると、場合によっては、次のようにスーパーユーザーとして実行しようとすると同じエラーが表示されます。
filipe@FILIPE:~$ Sudo gem install bundler
ERROR: While executing gem ... (Gem::Exception)
Unable to require openssl, install OpenSSL and rebuild Ruby (preferred) or use non-HTTPS sources
スーパーユーザーのアクセス許可がない場合、次のように異なる動作、成功した動作を確認できます。
filipe@FILIPE:~$ gem install bundler
Fetching: bundler-1.14.6.gem (100%)
Successfully installed bundler-1.14.6
Parsing documentation for bundler-1.14.6
Installing ri documentation for bundler-1.14.6
Done installing documentation for bundler after 4 seconds
1 gem installed