Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ruby-debug install error: failed to build gem native extension

I'm running 1.9.2 with rails 3.

I'm using rvm.

I did:

sudo gem install ruby-gem

and got:

Building native extensions.  This could take a while...
ERROR:  Error installing ruby-debug:
    ERROR: Failed to build gem native extension.

/Users/blankman/.rvm/rubies/ruby-1.9.2-head/bin/ruby extconf.rb
Can't handle 1.9.x yet
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --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


Gem files will remain installed in /Users/blankman/.rvm/gems/ruby-1.9.2-head/gems/linecache-0.43 for inspection.
Results logged to /Users/blankman/.rvm/gems/ruby-1.9.2-head/gems/linecache-0.43/ext/gem_make.out

UPDATE

Added:

gem 'ruby-debug19'

and when running bundle install I get:

Fetching source index for http://rubygems.org/
Using rake (0.8.7) 
Using abstract (1.0.0) 
Using activesupport (3.0.0.rc2) 
Using builder (2.1.2) 
Using i18n (0.4.1) 
Using activemodel (3.0.0.rc2) 
Using erubis (2.6.6) 
Using rack (1.2.1) 
Using rack-mount (0.6.13) 
Using rack-test (0.5.6) 
Using tzinfo (0.3.23) 
Using actionpack (3.0.0.rc2) 
Using mime-types (1.16) 
Using polyglot (0.3.1) 
Using treetop (1.4.8) 
Using mail (2.2.7) 
Using actionmailer (3.0.0.rc2) 
Using arel (1.0.1) 
Using activerecord (3.0.0.rc2) 
Using activeresource (3.0.0.rc2) 
Using archive-tar-minitar (0.5.2) 
Using bundler (1.0.3) 
Using columnize (0.3.1) 
Using ruby_core_source (0.1.4) 
Installing linecache19 (0.5.11) with native extensions /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': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

/Users/blankman/.rvm/rubies/ruby-1.9.2-head/bin/ruby extconf.rb 
checking for vm_core.h... no
checking for vm_core.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --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': 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)
    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 `<main>'
Requesting http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p14.tar.gz


Gem files will remain installed in /Users/blankman/.rvm/gems/ruby-1.9.2-head@hz/gems/linecache19-0.5.11 for inspection.
Results logged to /Users/blankman/.rvm/gems/ruby-1.9.2-head@hz/gems/linecache19-0.5.11/ext/trace_nums/gem_make.out
    from /Users/blankman/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/rubygems/installer.rb:486:in `block in build_extensions'
    from /Users/blankman/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/rubygems/installer.rb:446:in `each'
    from /Users/blankman/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/rubygems/installer.rb:446:in `build_extensions'
    from /Users/blankman/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/rubygems/installer.rb:198:in `install'
    from /Users/blankman/.rvm/gems/ruby-1.9.2-head@global/gems/bundler-1.0.3/lib/bundler/source.rb:100:in `install'
    from /Users/blankman/.rvm/gems/ruby-1.9.2-head@global/gems/bundler-1.0.3/lib/bundler/installer.rb:55:in `block in run'
    from /Users/blankman/.rvm/gems/ruby-1.9.2-head@global/gems/bundler-1.0.3/lib/bundler/spec_set.rb:12:in `block in each'
    from /Users/blankman/.rvm/gems/ruby-1.9.2-head@global/gems/bundler-1.0.3/lib/bundler/spec_set.rb:12:in `each'
    from /Users/blankman/.rvm/gems/ruby-1.9.2-head@global/gems/bundler-1.0.3/lib/bundler/spec_set.rb:12:in `each'
    from /Users/blankman/.rvm/gems/ruby-1.9.2-head@global/gems/bundler-1.0.3/lib/bundler/installer.rb:44:in `run'
    from /Users/blankman/.rvm/gems/ruby-1.9.2-head@global/gems/bundler-1.0.3/lib/bundler/installer.rb:8:in `install'
    from /Users/blankman/.rvm/gems/ruby-1.9.2-head@global/gems/bundler-1.0.3/lib/bundler/cli.rb:221:in `install'
    from /Users/blankman/.rvm/gems/ruby-1.9.2-head@global/gems/bundler-1.0.3/lib/bundler/vendor/thor/task.rb:22:in `run'
    from /Users/blankman/.rvm/gems/ruby-1.9.2-head@global/gems/bundler-1.0.3/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task'
    from /Users/blankman/.rvm/gems/ruby-1.9.2-head@global/gems/bundler-1.0.3/lib/bundler/vendor/thor.rb:246:in `dispatch'
    from /Users/blankman/.rvm/gems/ruby-1.9.2-head@global/gems/bundler-1.0.3/lib/bundler/vendor/thor/base.rb:389:in `start'
    from /Users/blankman/.rvm/gems/ruby-1.9.2-head@global/gems/bundler-1.0.3/bin/bundle:13:in `<top (required)>'
    from /Users/blankman/.rvm/gems/ruby-1.9.2-head@global/bin/bundle:19:in `load'
    from /Users/blankman/.rvm/gems/ruby-1.9.2-head@global/bin/bundle:19:in `<main>'
blankmans-MacBook-Pro:hz blankman$ 
like image 355
Blankman Avatar asked Oct 31 '10 11:10

Blankman


3 Answers

The problem here can be that the install script is going off to get the Ruby Header files over the web (to build the debugger gem against) but doesn't find them for the particular patch-level of Ruby you're after. This is what's going on in the output line

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)

As a solution you can point to your local copy of the Ruby source which rvm has already used to build ruby on your machine. Here goes...

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

Many thanks to Dirk at the following link which helped solve this

  • http://dirk.net/2010/04/17/ruby-debug-with-ruby-19x-and-rails-3-on-rvm/
like image 107
Declan McGrath Avatar answered Sep 29 '22 08:09

Declan McGrath


the ruby-debug gem is not compatible to Ruby 1.9.2. You need use the gem ruby-debug19

So change in your Gemfile to use this one

gem 'ruby-debug19'
like image 39
shingara Avatar answered Sep 29 '22 07:09

shingara


In your gemfile, change your ruby-debug line to this:

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

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

like image 20
Rahil Sondhi Avatar answered Sep 29 '22 08:09

Rahil Sondhi