web-dev-qa-db-fra.com

installation gem: Échec de la création de l'extension native gem (impossible de trouver les fichiers d'en-tête)

J'utilise Fedora 14 et j'ai MySQL et le serveur 5.1.42 installé et en cours d'exécution.

gem install mysql

Mais je reçois 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

Quel est le problème ici? Dans installé Ruby 1.8.7. et les derniers rubygems 1.3.7.

340
Tim

Pour ceux qui peuvent être déroutés par la réponse acceptée, comme je l'étais, vous devez également installer les en-têtes Ruby [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 les autres distributions utilisant un packaging de 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 la version 2.2), vous devrez exécuter:

Sudo apt-get install Ruby2.2-dev

(où 2.2 est votre version de Ruby souhaitée)

738
Brian Lacy

Chapeau rouge, 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
87
Nowaker

Pour ceux qui liront ceci en 2015: s'il vous est arrivé d'installer le paquet Ruby2.0, vous devez installer le Ruby2.0-dev correspondant pour obtenir les en-têtes Ruby appropriés. Il en va de même pour Ruby2.1 et Ruby2.2, etc. Par exemple:

$ Sudo apt-get install Ruby2.2-dev
50
Dror S.

il semble que le

yum install Ruby-devel

était suffisant pour moi d'effectuer

gem install datamapper

ensuite.

Il est possible que vous deviez installer un autre paquet:

yum install gcc gcc-c++

être capable de construire des extensions natives

24
andrej

Ce post m'a aidé. Merci beaucoup.

Sous 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
8
qkrijger

J'ai trouvé la solution ici .

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

Les utilisateurs de MAC peuvent être confrontés à ce problème lorsque les outils xcode ne sont pas installés correctement.

xcode-select --install
5
Ajit Singh

Si vous avez installé Gem et Ruby et ne pouvez pas installer Rails. Ensuite, installez Ruby dev lib.

Sudo apt-get install Ruby-dev

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

4
Hafiz Shehbaz Ali

Red Hat, Fedora:

Sudo dnf -y install gcc-c++ redhat-rpm-config Ruby-devel gcc mysql-devel rubygems
2
mkungla
Sudo apt-get install Ruby-dev

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

1

Pour ceux qui rencontrent encore des problèmes, comme je l’ai fait (j’utilise Ubuntu 16.04), je devais entrer les commandes suivantes pour pouvoir installer des gemmes comme bcrypt, pg et d’autres. 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 telles que, PG, bcrypt et recaptcha.

1
Mike

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 toujours des problèmes de compilation et d’installation sur Fedora 23. J’avais besoin de paquets supplémentaires. Donc, après m'être assuré de l'installation de ce qui précède, je rencontrais 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 les outils du compilateur C ne manquaient pas Sudo dnf group install "C Development Tools and Libraries"

  • Ensuite, j'ai exécuté Sudo dnf install redhat-rpm-config pour résoudre le problème de gcc indiqué ci-dessus.

Vous pouvez trouver une écriture ici sur Fedore Project . Vous pouvez également trouver des réponses à d'autres besoins.

1
Andrew Lobban

Il est nécessaire d'installer redhat-rpm-config sur. Je suppose que cela résout ton problème!

0
user3645907

Cela a fonctionné pour moi:

yum -y install gcc mysql-devel Ruby-devel rubygems
0
Shveta Sachdeva

dans openSUSE:

zypper in Ruby-devel

Fonctionne pour moi :)

0
Raul Libório

Vous devez installer les packages suivants:

  • Ruby-dev

  • gcc

  • libffi-dev

  • make

Voici la commande pour la distribution debian:

 Sudo apt install gcc Ruby-dev rubygems libgmp-dev libgmp3-dev make 
0
rmpestano