Подтвердить что ты не робот

Невозможно потребовать openssl, установить OpenSSL и перестроить рубин (желательно) или использовать источники без HTTPS

Я пытаюсь установить 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

Я приветствую ваши предложения по устранению этой ошибки.

4b9b3361

Ответ 1

Возможно ли, что /usr/local/ не является папкой, в которой он ищет заголовки и библиотеки (он ищет в /user/). Apple решила удалить openssl под OS X (в 10.11 (SDK) библиотека все еще существует, но не заголовки).

Ответ 2

Более новые версии 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'

Ответ 3

Способ 1 (установить 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

Наконец, вам нужно установить OpenSSL перед тем, как вы скомпилируете Ruby, прежде чем устанавливать Jekyll (или другие гемы)!

Способ 2 (переустановка Ruby)

Более новые версии OSX устарели openSSL.

Вам необходимо переустановить Ruby!

RVM с OpenSSL

rvm reinstall 2.3.0 --with-openssl-dir=/usr/local/opt/openssl

С последней версией RVM

rvm get stable
rvm reinstall ruby-2.3.0

доморощенный и OpenSSL

brew install openssl
rvm reinstall 2.3.0 --with-openssl-dir='brew --prefix openssl'

Ответ 4

Вам просто нужно установить эти переменные env, чтобы у вашего компилятора был правильный путь для opensl libs (если вы используете Homebrew на macOS, попробуйте 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

Затем переустановите рубин (rvm reinstall ruby-version)

Ответ 5

Учитывая другие ответы, связанные с openssl, мы можем видеть ту же ошибку, но когда мы пытаемся выполнить как суперпользователь в некоторых случаях, следующим образом:

[email protected]:~$ 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

Без прав суперпользователя мы можем видеть другое поведение, успешное, следующим образом:

[email protected]:~$  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

Ответ 6

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'