为什么`gem install rails`安装失败?

13

作为背景,这是我的环境:

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/

当我尝试运行 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

我使用apt-get安装了Ruby 1.9.3,然后从rubygems.org的tarball中安装了RubyGems。我该怎么做才能让它工作?

2个回答

18

我在Ubuntu 12.10上试过了,这个方法对我有用:

sudo apt-get install ruby
sudo apt-get install ruby-dev
sudo apt-get install rubygems
sudo gem install rails

有趣。你使用的是标准仓库吗? - Vishal Kotcherlakota
RVM 对于有经验的用户来说可能是更好的设置 Rails 的方式。但对于像我这样完全不了解 Rails 的初学者,你期望能够在三行命令中安装 Rails:apt-get install ruby、apt-get install rubygems、gem install rails。我不确定为什么 rubygems 不会自动安装 ruby-dev。 - Michael Bylstra
仓库在12.04版本中有些混乱,这就是我遇到问题的原因。很高兴看到他们已经解决了这个问题! - Vishal Kotcherlakota

9
如在这个Stackoverflow问题中指出的那样,请检查您是否安装了ruby-1.9-dev或ruby-1.9.3-dev软件包。如果缺失,请安装它,然后尝试安装rails。
另外,可以查看RVM以同时安装和管理多个ruby版本。

1
我最终卸载了我的Ruby和RubyGems安装,并通过RVM完成了所有操作...这比我预期的要容易得多。教训是:不要盲目信任Ubuntu的软件源! - Vishal Kotcherlakota

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接