Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why does `gem install rails` fail?

As a background, here's my environment:

vishal@dishDell:~$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.24
  - RUBY VERSION: 1.9.3 (2011-10-30 patchlevel 0) [x86_64-linux]
  - INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.9.1
  - RUBY EXECUTABLE: /usr/bin/ruby1.9.1
  - EXECUTABLE DIRECTORY: /usr/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /usr/lib/ruby/gems/1.9.1
     - /home/vishal/.gem/ruby/1.9.1
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

This is what happens when I try running gem install rails.

vishal@dishDell:~$ sudo gem install rails
[sudo] password for vishal: 
Building native extensions.  This could take a while...
ERROR:  Error installing rails:
    ERROR: Failed to build gem native extension.

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


Gem files will remain installed in /usr/lib/ruby/gems/1.9.1/gems/json-1.7.3 for inspection.
Results logged to /usr/lib/ruby/gems/1.9.1/gems/json-1.7.3/ext/json/ext/parser/gem_make.out

I installed Ruby 1.9.3 using apt-get, and I installed RubyGems from a tarball at rubygems.org. What should I do to get this to work?

like image 839
Vishal Kotcherlakota Avatar asked Jul 14 '12 04:07

Vishal Kotcherlakota


People also ask

Where are gems installed rails?

Most commonly, it will be https://rubyrems.org but it could also be other sources like GitHub. Now anybody opening your application just needs to run the command bundle install (assuming they have the bundler gem installed) and every single gem in the Gemfile will be installed or updated to the correct version.

How does gem install work?

What does gem install do? gem install , in its simplest form, does something kind of like this. It grabs the gem and puts its files into a special directory on your system. You can see where gem install will install your gems if you run gem environment (look for the INSTALLATION DIRECTORY: line):


2 Answers

this worked for me with Ubuntu 12.10:

sudo apt-get install ruby
sudo apt-get install ruby-dev
sudo apt-get install rubygems
sudo gem install rails
like image 193
Michael Bylstra Avatar answered Oct 11 '22 11:10

Michael Bylstra


As pointed out in this other Stackoverflow question, check if you have ruby-1.9-dev or ruby-1.9.3-dev package. Install it if missing and then try install rails.

Also, have a look at RVM to install and manage multiple ruby versions at the same time.

like image 45
Kulbir Saini Avatar answered Oct 11 '22 12:10

Kulbir Saini