为什么 Rails 只有在我是 root 的时候才能工作?



我在Mac OSX 10.7.4上。所以我在成为root用户时安装了RubyGem的rails。

当我是根时,rails -v会产生这个:

bash-3.2# rails -v
Rails 3.2.8

但是当我不是根时,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

为什么会这样?

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

您是否正在使用 rbenv 或 rvm 之类的东西?这两个工具都是为每个用户而不是每个系统设置红宝石。因此,当您以自己身份登录时,将一组 gem 作为根是不够的。

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

相关内容

  • 没有找到相关文章

最新更新