在安装Rails(OSX)时遇到权限错误

8

我是一个编程新手,正在尝试在我的终端上安装Rails。我一直按照朋友的指示进行操作,安装了Xcode命令行工具、Homebrew、Git、rbenv、ruby-build、Ruby Gems、Ruby和Postgres。但每当我尝试输入$ gem install rails时,都会收到以下错误信息:

Russell-Silvers-MacBook-Pro:~ Russell_Silver$ gem install rails
ERROR:  While executing gem ... (Errno::EACCES)
    Permission denied @ rb_sysopen - /Users/Russell_Silver/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rails-4.2.0/README.md

这让人特别沮丧,因为当我运行 $gem list 时,它告诉我我有 rails 3.2.18。这很奇怪,因为当我运行 $rails v$ 时,它告诉我我有 Rails 4.2.0。

当我尝试使用 rails rails my new_app 时。

Errno::EACCES: Permission denied @ rb_sysopen - /Users/Russell_Silver/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rails-4.2.0/README.md
An error occurred while installing rails (4.2.0), and Bundler cannot continue.
Make sure that `gem install rails -v '4.2.0'` succeeds before bundling.
         run  bundle exec spring binstub --all
/Users/Russell_Silver/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/bundler-1.8.3/lib/bundler/shared_helpers.rb:83: warning: Insecure world writable dir /Users/Russell_Silver in PATH, mode 040707
bundler: command not found: spring
Install missing gem executables with `bundle install`
Russell-Silvers-MacBook-Pro:~ Russell_Silver$ bundle install
/Users/Russell_Silver/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/bundler-1.8.3/lib/bundler/vendor/thor/shell/basic.rb:355: warning: Insecure world writable dir /Users/Russell_Silver in PATH, mode 040707
Could not locate Gemfile or .bundle/ directory

这真的很令人沮丧,尤其是对于像我一样刚接触编程的人来说,所以我正在寻求任何可能知道问题所在的帮助。


你是如何安装 rbenv 的?如果在安装时使用了 sudo,那么这可能是预期的行为。 - kobaltz
我使用了HomeBrew $ brew install rbenv有任何想法如何解决它? - rsilver
1
你可以尝试使用 sudo chown -R Russell_Silver ~/.rbenv 命令,这将获取该目录的所有权。 - kobaltz
你真是个传奇!它完美地工作了。 - rsilver
非常感谢,kobaltz。 - rsilver
没问题。我把它转换成答案,以便后来的人可以参考。 - kobaltz
1个回答

44

由于您的rbenv安装具有提升的权限,这导致您的用户帐户无法写访问~/.rbenv,因此您的rbenv安装出现了问题。

请执行以下命令以获取该目录的所有权:

 sudo chown -R Russell_Silver ~/.rbenv

请注意,一些用户可能有不同的 rbenv 目录,例如 /usr/local/var/rbenv。 这将取代上述命令中的 ~/.rbenv


我遇到了同样的问题。运行上述命令解决了它。非常感谢! - Toontje

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接