gem install: Échec de la construction de l’extension native gem (impossible de trouver les fichiers d’en-tête)

J’utilise Fedora 14 et MySQL et MySQL 5.1.42 sont installés et en cours d’exécution. Maintenant, j’ai essayé de faire cela en tant qu’utilisateur root:

gem install mysql 

Mais j’ai cette erreur:

 Building native extensions. This could take a while... ERROR: Error installing mysql: ERROR: Failed to build gem native extension. /usr/bin/ruby extconf.rb mkmf.rb can't find header files for ruby at /usr/lib/ruby/ruby.h Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/mysql-2.8.1 for inspection. Results logged to /usr/lib/ruby/gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out 

Qu’est-ce qui ne va pas ici? Dans ruby ​​installé 1.8.7. et les derniers rubygems 1.3.7.

Pour ceux qui pourraient être déroutés par la réponse acceptée, comme pour moi, vous devez également avoir les en-têtes ruby ​​installés [ ruby-devel ].

L’article qui a sauvé ma peau est ici .

Et voici la solution révisée (notez que je suis sur Fedora 13):

 yum -y install gcc mysql-devel ruby-devel rubygems gem install -y mysql -- --with-mysql-config=/usr/bin/mysql_config 

Pour Debian et d’autres dissortingbutions utilisant le style Debian, les en-têtes de développement ruby ​​sont installés par:

 sudo apt-get install ruby-dev 

Pour Ubuntu, les en-têtes de développement ruby ​​sont installés par:

 sudo apt-get install ruby-all-dev 

Si vous utilisez une version antérieure de ruby ​​(telle que 2.2), vous devrez exécuter:

 sudo apt-get install ruby2.2-dev 

(où 2.2 est la version Ruby souhaitée)

Red Hat, Fedora:

 yum -y install gcc mysql-devel ruby-devel rubygems gem install -y mysql -- --with-mysql-config=/usr/bin/mysql_config 

Debian, Ubuntu:

 apt-get install libmysqlclient-dev ruby-dev gem install mysql 

Arch Linux:

 pacman -S libmariadbclient gem install mysql 

Pour ceux qui liront ceci en 2015: si vous avez installé le paquet ruby2.0 , vous devez installer le ruby2.0-dev pour obtenir les en-têtes Ruby appropriés. La même chose vaut pour ruby2.1 et ruby2.2 , etc. Par exemple:

 $ sudo apt-get install ruby2.2-dev 

il semble que le

 yum install ruby-devel 

était suffisant pour moi de jouer

 gem install datamapper 

ensuite.

Il est possible que vous deviez installer d’autres packages:

 yum install gcc gcc-c++ 

être capable de construire des extensions natives

J’ai trouvé la solution ici .

 # yum install mysql-devel gcc make # gem install mysql -- --with-mysql-config=/usr/bin/mysql_config 

Ce poste m’a aidé. Merci beaucoup.

Sur Linux (Ubuntu 12.10), je devais exécuter

 sudo apt-get install ruby sudo apt-get install rubygems sudo apt-get install ruby-dev 

avant que je puisse courir avec succès

 sudo gem install jekyll 

Si vous avez installé gem et ruby ​​et pas en mesure d’installer des rails. Ensuite, installez ruby ​​dev lib.

 sudo apt-get install ruby-dev 

Ça marche pour moi. J’ai essayé la solution différente.

Les utilisateurs de MAC peuvent être confrontés à ce problème lorsque les outils xcode ne sont pas installés correctement. Voici la commande pour se débarrasser du problème.

 xcode-select --install 

Red Hat, Fedora:

 sudo dnf -y install gcc-c++ redhat-rpm-config ruby-devel gcc mysql-devel rubygems 

Ma solution initiale consistait à résoudre les erreurs ci-dessus en installant ruby-devel , patch et rubygems .

Mon problème était un peu différent car bcrypt 3.1.11 avait encore des problèmes à comstackr et à installer sur Fedora 23. J’avais besoin de paquets supplémentaires. Donc, après m’être assuré d’avoir installé ce qui précède, j’avais toujours des problèmes:

gcc: error: conftest.c: No such file or directory

gcc: error: /usr/lib/rpm/redhat/redhat-hardened-cc1: No such file or directory

De là, je devais faire ce qui suit:

  • Je me suis assuré que je ne sudo dnf group install "C Development Tools and Libraries" aucun outil de compilation C sudo dnf group install "C Development Tools and Libraries"

  • Ensuite, j’ai lancé sudo dnf install redhat-rpm-config pour résoudre le problème gcc répertorié ci-dessus.

Vous pouvez trouver une écriture ici sur le projet Fedore . Vous pouvez également trouver des réponses à d’autres besoins.

 sudo apt-get install ruby-dev 

Cette commande a résolu le problème pour moi!

Pour ceux qui rencontrent toujours des problèmes, comme moi (j’utilise Ubuntu 16.04), j’ai dû mettre les commandes suivantes pour obtenir des gems comme bcrypt, pg et d’autres installés. Ils sont tous similaires à ceux ci-dessus sauf un.

 sudo apt-get install ruby-dev -y sudo apt-get install libpq-dev -y sudo apt-get install libmysqlclient-dev sudo apt-get install build-essential patch -y 

Cela m’a permis d’installer des gemmes comme PG, bcrypt et recaptcha.

dans openSUSE:

 zypper in ruby-devel 

Travaille pour moi 🙂

Il est nécessaire d’installer redhat-rpm-config dans. Je suppose que ça résout votre problème!

Cela a fonctionné pour moi:

 yum -y install gcc mysql-devel ruby-devel rubygems 

Juste pour append un chemin au fichier ruby.h dans mon PATH
par exemple:

export PATH = $ PATH: / usr / src / ruby-xxxxxx