2014-01-13 49 views
1

无论何时我在我的所有rails应用程序上键入任何命令,我都会收到以下错误。我在云9中的虚拟机上工作。任何想法或指导?Ruby on Rails(Errno :: EACCES)

(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>' 

回答

2

这听起来像你的宝石用sudo访问安装,它当前的用户(网络亚军?)缺乏正确的烫发看到Ruby的安装目录。

我不太清楚为什么宝石安装到了像/usr/libexec/openshift/cartridges这样的路径 - 也许这是您的云主机设置的一部分?

  1. 你是否从你的实例启动你自己的rails服务器?例如像你自己安装Unicorn,nginx等?如果是这样,您可以使用rbenv将ruby和gemset安装到您拥有完全权限控制的本地路径。

如果您没有上述方案#1,则主机可能会错误地配置安装程序,并且应打开票证。

+1

谢谢你的回复。为了启动一个rails服务器,我使用下面的命令:rails s -p $ PORT -b $ IP。但是,该命令在我所有的应用程序上发生了错误。我会打开一张票,也许他们可以有一个解决方案。 – Loic

+0

由于您启动了自己的服务器,因此应该考虑控制您的ruby和gemset。请参阅安装说明a [rbenv on GitHub](https://github.com/sstephenson/rbenv)。 ***一旦你这样做安装你的错误应该停止*** –

+0

@Loic特赦,但我也可以让你upvote答案?我[我的声誉得分有一个错误](http://meta.stackexchange.com/questions/215953/i-seem-to-have-lost-over-2500-today-could-this-be-on目的),我被告知投票会重置它。以这种方式想一下,一票将会给我2600+的声誉;)如果你觉得这样更公平,你可以低估我 –