Ruby on Rails(Errno :: EACCES)

时间:2014-01-13 16:20:58

标签: ruby-on-rails rspec bundle

每当我在所有rails应用程序上键入任何命令时,我都会收到以下错误。我在云计算虚拟机9。任何想法或指导?

(master) $ bundle exec rspec spec/
/opt/rh/ruby193/root/usr/share/rubygems/rubygems/specification.rb:541:in `read': Permission denied - /usr/libexec/openshift/cartridges/c9-0.1/root/lib/ruby/gems/specifications/multi_json-1.8.4.gemspec (Errno::EACCES)
        from /opt/rh/ruby193/root/usr/share/rubygems/rubygems/specification.rb:541:in `load'
        from /opt/rh/ruby193/root/usr/share/rubygems/rubygems/specification.rb:269:in `block (2 levels) in _all'
        from /opt/rh/ruby193/root/usr/share/rubygems/rubygems/specification.rb:268:in `each'
        from /opt/rh/ruby193/root/usr/share/rubygems/rubygems/specification.rb:268:in `block in _all'
        from /opt/rh/ruby193/root/usr/share/rubygems/rubygems/specification.rb:267:in `each'
        from /opt/rh/ruby193/root/usr/share/rubygems/rubygems/specification.rb:267:in `_all'
        from /opt/rh/ruby193/root/usr/share/rubygems/rubygems/specification.rb:410:in `each'
        from /opt/rh/ruby193/root/usr/share/rubygems/rubygems/dependency.rb:216:in `find_all'
        from /opt/rh/ruby193/root/usr/share/rubygems/rubygems/dependency.rb:216:in `matching_specs'
        from /opt/rh/ruby193/root/usr/share/rubygems/rubygems/dependency.rb:238:in `to_specs'
        from /opt/rh/ruby193/root/usr/share/rubygems/rubygems/dependency.rb:256:in `to_spec'
        from /opt/rh/ruby193/root/usr/share/rubygems/rubygems.rb:1231:in `gem'
        from /usr/libexec/openshift/cartridges/c9-0.1/root/lib/ruby/gems/bin/bundle:22:in `<main>'

1 个答案:

答案 0 :(得分:2)

听起来您的宝石安装了sudo访问权限,您当前的用户(网络跑步者?)缺少正确的权限来查看Ruby安装目录。

我不能完全说明为什么宝石被安装到像/usr/libexec/openshift/cartridges这样的路径 - 也许这是云主机设置的一部分?

  1. 您是否从实例中启动了自己的rails服务器?例如就像你自己安装了Unicorn,nginx等?如果是这样,您可以使用rbenv将ruby和gemset安装到您拥有完全权限控制权的本地路径。
  2. 如果上面没有方案#1,那么主机可能会错误配置设置,您应该打开一张票。