web-dev-qa-db-fra.com

puma gem - Impossible de créer une extension native de gem

Je recevais l'erreur suivante lors de l'installation de puma gem

 $ gem installer puma 
 Récupération: puma-2.11.2.gem (100%) 
 Construire des extensions natives. Ça pourrait prendre un moment...
 ERREUR: Erreur lors de l'installation de puma: 
 ERREUR: Echec de la création de l'extension native gem .

 Ruby extconf.rb 
 recherche de BIO_read () dans -lcrypto ... no 
 vérification de BIO_read () dans -llibeay32 ... no 
 *** extconf.rb a échoué *** 
23
Amod Pandey

Essayez ce qui suit

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

Vous pouvez également spécifier la version de la gemme, comme suit:

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

Je suis sous OS X 10.12.4 et le commentaire ajouté par @mahi a fonctionné pour moi:

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

J'ai eu le même problème sur OSx El Capitan. Afin de résoudre le problème, je devais faire:

brew install openssl
brew link --force openssl
14
roody

Ce pourrait être une erreur ssl ouverte

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

J'ai rencontré une erreur similaire sous Mac OS X 10.10.

Les détails dans le mkmf.log ont montré que cela était dû à:

L'acceptation de la licence Xcode/iOS nécessite des privilèges d'administrateur, s'il vous plaît réexécutez en tant que root via Sudo.

Ce qui était causé par l'installation d'une nouvelle version de Xcode . Cela a été facilement résolu en acceptant la licence Xcode d'Apple: 

Sudo xcodebuild -license

J'espère que cela pourra aider quelqu'un à l'avenir ;-)

7
Gawin

Lorsque vous utilisez bundler et homebrew:

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

J'ai copié et adapté cette réponse de Lloeki ici: https://stackoverflow.com/a/31516586/704499

5
morgler

l’installation de libssl1.0-dev m’a aidé. Essayer 

apt-get install libssl1.0-dev

et alors 

gem install puma
5
Victor

Je devais le faire auparavant: Sudo apt-get install libgmp3-dev

3
matsko

As-tu essayé 

DISABLE_SSL=true gem install puma

Spécifiez la version si vous avez des exigences spécifiques à la version, telles que:

DISABLE_SSL=true gem install puma -v version_number
3
AkashP

La gemme cherche des bibliothèques ssl. Nous devons donc fournir le chemin vers la bibliothèque contenant la bibliothèque ssl

par exemple./usr/share/openssl

Dans mon cas, la librairie ssl "libcrypto" était dans/usr/local/lib. Passons donc à/usr/local (en excluant lib Word).

Pour gem installer

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

Pour une installation groupée

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

remarquez le nom build. puma . où puma est le nom de la gemme.

La commande build config ajoute ce qui suit à ~/.bundle/config

 --- 
 BUNDLE_BUILD__PUMA: "--with-opt-dir =/usr/local" 
2
Amod Pandey

Exécutez brew info openssl et suivez les instructions. N'essayez pas de relier --force le dernier openssl avec celui fourni avec OSX par défaut. (0.9.8)

Plus précisément, il vous sera demandé d’ajouter la version Homebrew d’openssl (devrait être 1.0.2 à compter de cette date) dans votre $ PATH.
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile

Remarque: Assurez-vous de supprimer toutes les lignes export PATH du bash_profile, car cette ligne ci-dessus l'exporte pour vous en ajoutant le reste de la variable $ PATH à la fin. Pour afficher le profil bash, utilisez vi ~/.bash_profile

Cela corrigeait les problèmes d'installation de gemmes Ruby nécessitant une compilation. (Puma dans ce cas)

0
ykadaru