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

Puma gem - Не удалось создать собственное расширение gem

При установке puma gem я получал следующую ошибку:

    $ gem install puma
    Fetching: puma-2.11.2.gem (100%)
    Building native extensions.  This could take a while...
    ERROR:  Error installing puma:
    ERROR: Failed to build gem native extension.

    ruby extconf.rb
    checking for BIO_read() in -lcrypto... no
    checking for BIO_read() in -llibeay32... no
    *** extconf.rb failed ***
4b9b3361

Ответ 1

Попробуйте выполнить

gem install puma -- --with-cppflags=-I/usr/local/opt/openssl/include
bundle install

Вы также можете указать версию gem, например:

gem install puma -v '2.11.3' -- --with-cppflags=-I/usr/local/opt/openssl/include

Ответ 2

Я на OS X 10.12.4, и добавленный комментарий @mahi работал у меня:

gem install puma -v '3.6.0' -- --with-opt-dir=/usr/local/opt/openssl

Ответ 3

У меня была аналогичная проблема с OSx El Capitan. Чтобы решить проблему, я должен был сделать:

brew install openssl
brew link --force openssl

Ответ 4

Я столкнулся с аналогичной ошибкой в ​​Mac OS X 10.10.

Подробности в mkmf.log показали, что это произошло из-за:

Согласие на лицензию Xcode/iOS требует привилегий администратора, пожалуйста повторите запуск с правами root через sudo.

Это было вызвано установкой новой версии Xcode. Это легко решить, приняв лицензию Xcode от Apple:

sudo xcodebuild -license

Надеюсь, это может помочь кому-то в будущем; -)

Ответ 5

Это может быть открытая ошибка ssl

gem install puma -v 2.11.2 -- --with-opt-dir=/usr/local/opt/openssl

Ответ 6

Установка libssl1.0-dev помогла мне. Попробуйте

apt-get install libssl1.0-dev

а затем

gem install puma

Ответ 7

При использовании bundler и homebrew:

$ bundle config build.puma --with-cppflags=-I$(brew --prefix openssl)/include
$ bundle install

Я скопировал и адаптировал этот ответ от Lloeki здесь: fooobar.com/questions/26798/...

Ответ 8

Я должен был сделать это заранее: sudo apt-get install libgmp3-dev

Ответ 9

Ты пытался

DISABLE_SSL=true gem install puma

Укажите версию, если у вас есть требование к конкретной версии, например:

DISABLE_SSL=true gem install puma -v version_number

Ответ 10

Драгоценный камень ищет библиотеки SSL. Поэтому мы должны указать путь к библиотеке, содержащей библиотеку ssl.

например, /usr/share/openssl

В моем случае ssl lib "libcrypto" находился в /usr/local/lib. Так что давайте передадим /usr/local к нему (исключая lib lib).

Для установки драгоценного камня

gem install puma -- --with-opt-dir=/usr/local

Для комплекта установки

bundle config build.puma --with-opt-dir=/usr/local
bundle install

обратите внимание на название сборки. пума где пума это название драгоценного камня.

Команда build config добавляет следующее в ~/.bundle/config

---
BUNDLE_BUILD__PUMA: "--with-opt-dir=/usr/local"

Ответ 11

Запустите brew info openssl и следуйте инструкциям. Не пытайтесь --force связывать последнюю версию openssl с той, которая поставляется с OSX по умолчанию. (0.9.8)

В частности, он попросит вас добавить версию opensl в формате Homebrew (должен быть 1.0.2 на эту дату) в ваш $PATH.
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile

Примечание. Обязательно удалите строки export PATH из файла bash_profile, так как эта строка выше экспортирует его для добавления в конец оставшейся переменной $PATH. Для просмотра профиля bash используйте vi ~/.bash_profile

Это фиксировало проблемы для установки рубиновых камней, требующих компиляции. (Puma в этом случае)

Ответ 12

Установите эти пакеты.

apt-get установить openssl ruby-openssl libssl-dev