Ruby on Rails - Errno :: EACCES(Mac 10.9.1)

时间:2014-07-28 04:10:13

标签: ruby-on-rails ruby macos rubygems rvm

我安装了Ruby(v.2.1.2)和Rails(v.4.1.4)。当我尝试启动服务器(使用命令rails s)时出现错误:

`Could not find columnize-0.8.9 in any of the sources
Run `bundle install` to install missing gems.`

当我运行bundle install时,我得到:

`...Errno::EACCES: Permission denied @ rb_sysopen - /Users/BBB/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/columnize-0.8.9/.gitignore 
An error occurred while installing columnize (0.8.9), and Bundler cannot continue.
Make sure that gem install columnize -v '0.8.9' succeeds before bundling.`

然后我尝试gem install columnize -v '0.8.9' 我被许可拒绝了〜

`ERROR:While executing gem ... (Errno::EACCES)
Permission denied @ rb_sysopen - /Users/BBB/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/columnize-0.8.9/.gitignore`

有没有人有任何想法?

2 个答案:

答案 0 :(得分:0)

/Users/bor-shyangsheu/.rvm/是用户主目录中的目录,它是用户的本地路径(即/ Users / bor-shyangsheu /),它应该真正属于' bor-shyangsheu'用户。

因此,使用sudo安装东西没有任何意义。

而且,我猜设置或gem安装之前是错误的(您可能会在之前意外使用sudo gem install等),这导致您稍后会遇到权限问题(包括此问题)

我认为你现在应该做的是。

  1. 检查用户'bor-shyangsheu'所属的组。

    id bor-shyangsheu 或者只输入id如果您目前以“bor-shyangsheu”身份登录

  2. bor-shyangsheu及其论坛所有的所有directorys和文件所有者更改为

    sudo chown -Rf bor-shyangsheu:<group name> /Users/bor-shyangsheu/.rvm/*

    例如,如果组名称为“staff”,请运行此命令

    sudo chown -Rf bor-shyangsheu:staff /Users/bor-shyangsheu/.rvm/*

  3. 以后始终使用gem install <gem name>

  4. 希望这能澄清一点。

答案 1 :(得分:0)

您可以尝试删除&#34; Gemfile.lock&#34;。您可以在Bundler.io了解详情。

  

在开发应用程序一段时间后,请检查应用程序以及Gemfile和Gemfile.lock快照。现在,您的存储库记录了您上次确认应用程序运行时所使用的所有gem的确切版本。请记住,虽然你的Gemfile只列出了三个宝石(具有不同程度的版本严格性),但是一旦你考虑了你所依赖的宝石的所有隐含要求,你的应用程序就依赖于几十个宝石。

     

这一点非常重要:Gemfile.lock使您的应用程序成为您自己的代码和上次运行的第三方代码的单一包,确保一切正常。在Gemfile中指定您所依赖的第三方代码的确切版本将不会提供相同的保证,因为Gems通常会为其依赖项声明一系列版本。