为什么Rails仅在我生根时才有效?

时间:2012-11-13 09:28:31

标签: ruby-on-rails macos bash

我在Mac OSX 10.7.4上。所以我在使用RubyGem的时候安装了rails。

当我是root用户时,rails -v会产生这个:

bash-3.2# rails -v
Rails 3.2.8

但是当我不是root,rails -v时,产生这个:

Sreejiths-MacBook-Pro:~ sreejith$ rails -v
/opt/local/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:247:in `to_specs': Could not find railties (>= 0) amongst [bundler-1.2.1, rake-0.9.2.2, rubygems-bundler-1.1.0, rvm-1.11.3.5] (Gem::LoadError)
    from /opt/local/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:256:in `to_spec'
    from /opt/local/lib/ruby/site_ruby/1.8/rubygems.rb:1231:in `gem'
    from /opt/local/bin/rails:22

为什么会这样?

1 个答案:

答案 0 :(得分:2)

当作为root终端时,gems的加载路径是什么。你可以通过进入irb并输入$LOAD_PATH来找到它。 $LOAD_PATH您可以访问的内容是什么?宝石是否已安装到root的主目录(或子目录)中?

您使用的是rbenv或rvm吗?这两个工具都为每个用户设置了红宝石,而不是每个系统。因此,当你以你的身份登录时,将一组宝石作为root就不够了。

最后,您可以随时尝试sudo gem install bundler重新安装捆绑包,然后bundle install重新安装您的宝石。