Pour le contexte, il sur un serveur distant qui a un pare-feu. Je configure mon environnement via un proxy. J'ai Ruby 1.8.7
. Quand j'essaye d'installer gem ..
Sudo gem install --http-proxy <Host address>:<port> json
Je reçois l'erreur suivante:
Building native extensions. This could take a while...
ERROR: Error installing json:
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/lib64/Ruby/gems/1.8/gems/json-1.8.1 for inspection.
Results logged to /usr/lib64/Ruby/gems/1.8/gems/json-1.8.1/ext/json/ext/generator/gem_make.out
Comme je ne savais pas quel était le problème, j'ai cherché sur Google et trouvé ces
gem install: Échec de la création de l'extension native de gem (impossible de trouver les fichiers d'en-tête) - les instructions fournies ici semblent être spécifiques à la gem en cours d'installation.
Comment installer json gem - Échec de la création de l'extension native de gem Cela semble être une erreur légèrement différente.
Des allusions? Merci!
Mise à jour de l'ère moderne, comme déclaré par mimoralea :
Si vous utilisez Ruby 2.0 ou 2.2 (merci @ patrick-davey).
Sudo apt-get install Ruby-dev Sudo apt-get install Ruby2.0-dev Sudo apt-get install Ruby2.2-dev Sudo apt-get install Ruby2.3-dev
ou de manière générique:
Sudo apt-get install Ruby`ruby -e 'puts Ruby_VERSION[/\d+\.\d+/]'`-dev
Le premier lien que vous avez posté correspond exactement à votre cas: aucun environnement de développement Ruby n'est installé. Development env est nécessaire pour compiler Ruby extensions, qui sont pour la plupart écrites en C
. Le proxy n'a rien à voir avec le problème: tout est bien téléchargé, seule la compilation échoue.
Je vous suggèrerais d'installer le paquet Ruby-dev
(Ruby-devel
pour les distributions basées sur le nombre de tours/minute) sur votre machine cible. Le package gcc
pourrait également être nécessaire.
Essayer:
$ Sudo apt-get install Ruby-dev
Ou, pour la distribution Redhat:
$ Sudo yum install Ruby-devel
Ou, pour [ouvrir] SuSE:
$ Sudo zypper install Ruby-devel
Si vous utilisez Ruby 2.0 ou 2.2 (merci @ patrick-davey) ou 2.3 (merci @juanitofatas).
Sudo apt-get install Ruby-dev
Sudo apt-get install Ruby2.0-dev
Sudo apt-get install Ruby2.2-dev
Sudo apt-get install Ruby2.3-dev
Et vous obtenez le modèle ici ...
J'ai aussi rencontré ce problème parce que je installer Ruby sur Ubuntu via brightbox , et je pensais que Ruby-dev était la malle de Ruby. Donc je n'ai pas installé. Installer Ruby2.3-dev le corrige:
Sudo apt-get install Ruby2.3-dev
Pour ceux qui l'obtiennent sous Mac OS X, vous devrez peut-être exécuter la commande suivante pour installer les outils de ligne de commande XCode, même si XCode est déjà installé:
Sudo xcode-select --install
Vous devez également accepter les conditions générales de XCode en exécutant la commande suivante:
Sudo xcodebuild -license
J'ai eu un problème similaire en utilisant cygwin pour exécuter la commande suivante:
$ gem install rerun
Je l'ai résolu en installant les packages cygwin suivants:
La solution la plus votée ne fonctionnait pas sur ma machine (linux 18/03). Après un regard attentif, j'ai trouvé que g ++ était manquant. Résolu avec
Sudo apt-get install g ++
si vous utilisez SUSE
Sudo yast2 -i Ruby-devel
Dans Fedora 21 et versions ultérieures, il vous suffit d'ouvrir un terminal et d'installer les fichiers de développement Ruby en tant que root.
dnf install Ruby-devel
Vous devrez peut-être installer gcc après avoir installé Ruby-devel