Jeroen De Dauw Jeroen De Dauw - 6 months ago 12
Ruby Question

Installing gems results in error

ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]

gem 2.0.3

sudo gem install travis
Building native extensions. This could take a while...
ERROR: Error installing travis:
ERROR: Failed to build gem native extension.

/usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from extconf.rb:4:in `<main>'


Gem files will remain installed in /var/lib/gems/1.9.1/gems/ffi-1.9.0 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/ffi-1.9.0/ext/ffi_c/gem_make.out


Also encountering this when trying to install other gems. I'm not a Ruby user, and googling the error did not get me any working solution.

I installed Ruby 2.0 using RVM: "curl -L https://get.rvm.io | bash -s stable --ruby".

If I do "sudo ruby -v" I get "ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]".

Answer

It looks like you're using Ruby 1.9.1 installed via the system. In order to fix that error, you should install the ruby-dev package.

In Debian/Ubuntu,

sudo apt-get install ruby1.9.1-dev.

Since the gem uses native extensions, you should also do a

sudo apt-get install build-essentials

before that.

However, I would strongly recommend using RVM and using the RVM ruby, since it pulls all most of the dev dependencies for your system and you don't have native extension problems so often.