安装任何gem包时出错::: gem install rails或gem install dashing

时间:2013-10-08 17:44:37

标签: ruby-on-rails ruby rubygems gem suse

安装任何包时收到以下错误,我使用

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

    /usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib64/ruby/ruby.h


Gem files will remain installed in /usr/lib64/ruby/gems/1.8/gems/atomic-1.1.14 for inspection.
Results logged to /usr/lib64/ruby/gems/1.8/gems/atomic-1.1.14/ext/gem_make.out


 # gem -v
2.1.5
 # ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux]

任何人都可以帮忙修复此问题,因为我已经尝试更改导出PATH = $ PATH:/ ruby​​路径并尝试安装ruby-dev但无法在rubygems.com上找到它或通过gems安装ruby-dev或ruby-devel。

1 个答案:

答案 0 :(得分:3)

我遇到同样的问题:

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

/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/ruby.h


Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/atomic-1.1.14 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/atomic-1.1.14/ext/gem_make.out

系统信息:

  [root@server ~]# uname -a
    Linux server.com 2.6.32-358.18.1.el6.x86_64 #1 SMP Wed Aug 28 17:19:38 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
    [root@server ~]# cat /etc/redhat-release 
    CentOS release 6.4 (Final)
    [root@server ~]# ruby -v
    ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]

运行命令后:

yum install ruby-rdoc ruby-devel -y
gem update
gem update --system

我明白了:

[root@server ~]# gem install rails
Building native extensions.  This could take a while...
Successfully installed atomic-1.1.14
Fetching: thread_safe-0.1.3.gem (100%)
Successfully installed thread_safe-0.1.3
Fetching: activesupport-4.0.0.gem (100%)
ERROR:  Error installing rails:
    activesupport requires Ruby version >= 1.9.3.

我认为CentOS 6.4默认的repos不支持rails。 要解决问题,我们需要从源代码安装ruby:

curl -L get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh
rvm requirements
rvm install 1.9.3
rvm use 1.9.3 --default
rvm rubygems current

我们不需要删除默认的ruby-1.8.x. 安装rvm后,只需exec源/etc/profile.d/rvm.sh即可 感谢rvm !!!

记住!要从RVM安装rails,安装完成后需要ruby-1.9.3运行此命令:

gem update --system 1.8.25

我们这样做是为了避免错误:

/script/../config/../vendor/rails/railties/lib/rails/gem_dependency.rb:21:in `add_frozen_gem_path': undefined method `source_index' for Gem:Module (NoMethodError)
    from ./script/../config/boot.rb:60:in `load_initializer'
    from ./script/../config/boot.rb:44:in `run'
    from ./script/../config/boot.rb:17:in `boot!'
    from ./script/../config/boot.rb:123
    from script/server:2:in `require'
    from script/server:2