36 votes

Ruby-debug install erreur: échec de la construction de l'extension native gem

Je cours la version 1.9.2 avec rails 3.

J'utilise rvm.

J'ai fait:

sudo gem install ruby-gem

et j'ai obtenu:

Construction d'extensions natives. Cela pourrait prendre un certain temps...
ERREUR : Échec de l'installation de ruby-debug:
    ERREUR : Impossible de construire l'extension native de la gemme.

/Users/blankman/.rvm/rubies/ruby-1.9.2-head/bin/ruby extconf.rb
Impossible de gérer la version 1.9.x
*** extconf.rb a échoué ***
Impossible de créer un Makefile en raison de certaines raisons, probablement un manque de
bibliothèques et/ou en-têtes nécessaires. Vérifiez le fichier mkmf.log pour plus
de détails. Vous pouvez avoir besoin d'options de configuration.

Options de configuration fournies :
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/Users/blankman/.rvm/rubies/ruby-1.9.2-head/bin/ruby

Les fichiers de gemmes resteront installés dans /Users/blankman/.rvm/gems/ruby-1.9.2-head/gems/linecache-0.43 pour inspection.
Résultats enregistrés dans /Users/blankman/.rvm/gems/ruby-1.9.2-head/gems/linecache-0.43/ext/gem_make.out

MISE À JOUR

Ajouté:

gem 'ruby-debug19'

et lors de l'exécution de bundle install j'obtiens:

Récupération de l'index source pour http://rubygems.org/
Utilisation de rake (0.8.7) 
Utilisation de abstract (1.0.0) 
Utilisation de activesupport (3.0.0.rc2) 
Utilisation de builder (2.1.2) 
Utilisation de i18n (0.4.1) 
Utilisation de activemodel (3.0.0.rc2) 
Utilisation de erubis (2.6.6) 
Utilisation de rack (1.2.1) 
Utilisation de rack-mount (0.6.13) 
Utilisation de rack-test (0.5.6) 
Utilisation de tzinfo (0.3.23) 
Utilisation de actionpack (3.0.0.rc2) 
Utilisation de mime-types (1.16) 
Utilisation de polyglot (0.3.1) 
Utilisation de treetop (1.4.8) 
Utilisation de mail (2.2.7) 
Utilisation de actionmailer (3.0.0.rc2) 
Utilisation de arel (1.0.1) 
Utilisation de activerecord (3.0.0.rc2) 
Utilisation de activeresource (3.0.0.rc2) 
Utilisation de archive-tar-minitar (0.5.2) 
Utilisation de bundler (1.0.3) 
Utilisation de columnize (0.3.1) 
Utilisation de ruby_core_source (0.1.4) 
Installation de linecache19 (0.5.11) avec des extensions natives /Users/blankman/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/rubygems/installer.rb:483:in `rescue in block in build_extensions': ERREUR : Échec de la construction de l'extension native de la gemme. (Gem::Installer::ExtensionBuildError)

/Users/blankman/.rvm/rubies/ruby-1.9.2-head/bin/ruby extconf.rb 
vérification de vm_core.h... non
vérification de vm_core.h... non
*** extconf.rb a échoué ***
Impossible de créer un Makefile en raison de certaines raisons, probablement un manque de
bibliothèques et/ou en-têtes nécessaires. Vérifiez le fichier mkmf.log pour plus
de détails. Vous pouvez avoir besoin d'options de configuration.

Options de configuration fournies :
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/Users/blankman/.rvm/rubies/ruby-1.9.2-head/bin/ruby
    --with-ruby-dir
    --without-ruby-dir
    --with-ruby-include
    --without-ruby-include=${ruby-dir}/include
    --with-ruby-lib
    --without-ruby-lib=${ruby-dir}/lib
/Users/blankman/.rvm/gems/ruby-1.9.2-head@hz/gems/ruby_core_source-0.1.4/lib/contrib/uri_ext.rb:268:in `block (2 levels) in read': Recherche de http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p14.tar.gz et tout ce que j'ai eu était un 404! (URI::NotFoundError)
    from /Users/blankman/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/net/http.rb:1186:in `block in transport_request'
    from /Users/blankman/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/net/http.rb:2334:in `reading_body'
    from /Users/blankman/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/net/http.rb:1185:in `transport_request'
    from /Users/blankman/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/net/http.rb:1169:in `request'
    from /Users/blankman/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/net/http.rb:1162:in `block in request'
    from /Users/blankman/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/net/http.rb:627:in `start'
    from /Users/blankman/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/net/http.rb:1160:in `request'
    from /Users/blankman/.rvm/gems/ruby-1.9.2-head@hz/gems/ruby_core_source-0.1.4/lib/contrib/uri_ext.rb:239:in `block in read'
    from /Users/blankman/.rvm/gems/ruby-1.9.2-head@hz/gems/ruby_core_source-0.1.4/lib/contrib/uri_ext.rb:286:in `connect'
    from /Users/blankman/.rvm/gems/ruby-1.9.2-head@hz/gems/ruby_core_source-0.1.4/lib/contrib/uri_ext.rb:234:in `read'
    from /Users/blankman/.rvm/gems/ruby-1.9.2-head@hz/gems/ruby_core_source-0.1.4/lib/contrib/uri_ext.rb:128:in `download'
    from /Users/blankman/.rvm/gems/ruby-1.9.2-head@hz/gems/ruby_core_source-0.1.4/lib/ruby_core_source.rb:55:in `block in create_makefile_with_core'
    from /Users/blankman/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/tempfile.rb:320:in `open'
    from /Users/blankman/.rvm/gems/ruby-1.9.2-head@hz/gems/ruby_core_source-0.1.4/lib/ruby_core_source.rb:51:in `create_makefile_with_core'
    from extconf.rb:20:in `

50voto

Declan McGrath Points 717

Le problème ici peut être que le script d'installation part chercher les fichiers d'en-tête Ruby sur le web (pour construire le gem debugger) mais ne les trouve pas pour le niveau de correctif particulier de Ruby que vous recherchez. C'est ce qui se passe dans la ligne de sortie

Looking for http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p14.tar.gz and all I got was a 404! (URI::NotFoundError)

Comme solution, vous pouvez indiquer votre copie locale de la source Ruby que rvm a déjà utilisée pour construire Ruby sur votre machine. Voici comment faire...

gem install ruby-debug19 -- --with-ruby-include=$rvm_path/src/ruby-1.9.2-head/

Un grand merci à Dirk sur le lien suivant qui a aidé à résoudre ce problème

14voto

shingara Points 26980

La gemme ruby-debug n'est pas compatible avec Ruby 1.9.2. Vous devez utiliser la gemme ruby-debug19

Donc changez votre Gemfile pour utiliser celle-ci

gem 'ruby-debug19'

3voto

Rahil Sondhi Points 385

Dans votre gemfile, changez votre ligne ruby-debug en ceci :

gem 'ruby-debug19', :require => 'ruby-debug'

Ma source est http://dirk.net/2010/04/17/ruby-debug-with-ruby-19x-and-rails-3-on-rvm/

0voto

Grimmo Points 575

J'ai eu un problème similaire (compilation des extensions natives) en travaillant en VPN derrière le pare-feu et en ayant l'environnement http_proxy défini. Dans ce cas, l'installeur n'a pas pu récupérer le fichier tar de Ruby. J'ai fermé le VPN et désactivé la variable http_proxy, puis j'ai pu installer avec succès la gemme. Je pense que --with-ruby-include est une alternative.

0voto

user1936638 Points 1

L'installation de la gemme ruby-debug-base19x a également échoué en raison de problèmes de connexion en utilisant un proxy cntlm et "--with-ruby-include" n'a pas fonctionné pour moi. L'installation de la gemme sans proxy s'est déroulée sans problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X