Search code examples
ruby-on-railsjsonrubygemslinux-mint

ERROR: Failed to build gem native extension message (Linux) installing rubygems


I'm going through the rails tutorial atm. (I'm a beginner so bear with me.)

As you can see below, when I try and install the rubygems using 'bundle install', I get the error message saying that I need to make sure 'gem install json -v '1.8.1' succeeds before I try again.

But when I try and sudo gem install json -v '1.8.1', I get the


.

If I'm asking a stupid question, or if I've left out any necessary info, just let me know. I'm new to this -- CodeAcademy & RailsForZombies are the extent of my knowledge.

ben@ben-X551CA ~/first_rails_project/bens_first_app $ bundle install
Fetching gem metadata from https://rubygems.org/..........
Resolving dependencies...
Using rake 10.3.2
Using i18n 0.6.11
Using minitest 4.7.5
Using multi_json 1.10.1
Using thread_safe 0.3.4
Using tzinfo 0.3.41
Using activesupport 4.0.8
Using builder 3.1.4
Using erubis 2.7.0
Using rack 1.5.2
Using rack-test 0.6.2
Using actionpack 4.0.8
Using mime-types 1.25.1
Using polyglot 0.3.5
Using treetop 1.4.15
Using mail 2.5.4
Using actionmailer 4.0.8
Using activemodel 4.0.8
Using activerecord-deprecated_finders 1.0.3
Using arel 4.0.2
Using activerecord 4.0.8
Using bundler 1.7.2
Using coffee-script-source 1.8.0
Using execjs 2.2.1
Using coffee-script 2.3.0
Using thor 0.19.1
Using railties 4.0.8
Using coffee-rails 4.0.1
Using hike 1.2.3
Using jbuilder 1.0.2
Using jquery-rails 3.0.4

Your user account isn't allowed to install to the system Rubygems. You can cancel this installation and run:

bundle install --path vendor/bundle

to install the gems into ./vendor/bundle/, or you can enter your password and install the bundled gems to Rubygems using sudo.

Password:

Gem::Installer::ExtensionBuildError: 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:inrequire' from extconf.rb:1:in `'

Gem files will remain installed in /tmp/bundler20140908-2757-18q0kfn/json-1.8.1/gems/json-1.8.1 for inspection. Results logged to /tmp/bundler20140908-2757-18q0kfn/json-1.8.1/gems/json-1.8.1/ext/json/ext/generator/gem_make.out An error occurred while installing json (1.8.1), and Bundler cannot continue. Make sure that gem install json -v '1.8.1' succeeds before bundling.

ben@ben-X551CA ~/first_rails_project/bens_first_app $ gem install json -v '1.8.1' ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions into the /var/lib/gems/1.9.1 directory. ben@ben-X551CA ~/first_rails_project/bens_first_app $ sudo gem install json -v '1.8.1' Building native extensions. This could take a while... ERROR: Error installing json: 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:inrequire' from extconf.rb:1:in `'

Gem files will remain installed in /var/lib/gems/1.9.1/gems/json-1.8.1 for inspection. Results logged to /var/lib/gems/1.9.1/gems/json-1.8.1/ext/json/ext/generator/gem_make.out ben@ben-X551CA ~/first_rails_project/bens_first_app $


Solution

  • So running this worked for me:

    sudo apt-get install ruby1.9.1-dev
    

    Suppose the -dev package was needed?