1

我在 Mac OSX 10.7.4 上。所以我在 root 时用 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

为什么会这样?

4

1 回答 1

2

当以 root 身份在终端时,gem 的加载路径是什么。您可以通过进入 irb 并键入 来找到它$LOAD_PATH。是$LOAD_PATH您可以访问的东西吗?宝石是否安装到根目录的主目录(或子目录)中?

您使用的是 rbenv 或 rvm 之类的东西吗?这两个工具都为每个用户而不是每个系统设置 rubies。因此,当您以您的身份登录时,以 root 身份拥有一组 gem 是不够的。

最后,您总是可以尝试sudo gem install bundler重新安装 bundler,然后bundle install重新安装您的 gem。

于 2012-11-13T09:37:51.263 回答