ruby - RVM 全面拒绝权限错误 - OS X Mavericks - Ruby 2.0.0?

标签 ruby rvm permission-denied

在梳理了大量的修复程序后,我陷入了停滞。我是 Ruby/编程的新手,今天早些时候已经完美地安装了 Ruby/RVM(单用户),但是有些事情发生了变化,我可能在尝试修复它时造成了更多的损害。

本质上,当我尝试运行我的基本 .rb 文件时,它给了我:

 ruby: No such file or directory -- doom.rb (LoadError)

我尝试卸载 RVM 并重新安装,我认为这就是我搞砸的地方。我使用了rvm implode,我认为这是一个不完整的删除。现在,当我尝试它时,它只是说找不到命令。对于大多数其他修复,repairget head 也会显示相同的消息,您有什么。

如果我尝试重新安装剩余/未剩余的内容,我会看到一个充满权限拒绝错误和已存在对象的屏幕:

rm: /Users/caroljones/.rvm/src/rvm/patchsets/ruby/1.9.3/p385: Permission denied
.
.
.
scripts/wrapper: Can't unlink already-existing object
scripts/zsh/: Can't update time for scripts/zsh
scripts/zsh/Completion/: Can't update time for scripts/zsh/Completion
scripts/zsh/Completion/_rvm: Can't unlink already-existing object
tar: Error exit delayed from previous errors.
Could not extract RVM sources.

如果我运行echo $PATH,我会得到:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/bin/

Ruby 安装正常:

ruby 2.0.0p451 (2014-02-24 revision 45167) [universal.x86_64-darwin13]

我认为这归结为没有进行彻底卸载,但我不知道如何确定内爆留下的垃圾。

如果我可以向您提供任何其他信息来解决我的问题,请告诉我。

编辑:如果我运行 which ruby​​ 我会得到以下输出:

/usr/bin/ruby

对于 $ ls -al ~ | grep rvm 我得到:

drwxr-xr-x    5 caroljones  staff    170 May  5 17:35 .rvm

最佳答案

我很确定您在安装(卸载)过程中的某个时刻使用了 sudo,这会更改您的权限,并解释您的权限拒绝错误。

您的路径配置不正确; “local/bin”目录应该位于“usr/bin”目录之前。 “本地”目录的想法是它包含您安装的命令,以及覆盖/更新系统安装的预先存在的命令的命令。当“local”目录位于 PATH 中的“usr”目录之前时,将在“usr”目录之前找到并使用它们的命令。事实上,你的道路不允许这样做。而不是:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/bin/

它应该看起来像:

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

这不会让 Ruby 或 RVM 正确运行,但它将帮助您的命令行体验按预期方式工作。

一旦我们获得有关您的环境/配置的更多信息,我们就可以提供解决方案以使您的系统正常运行。


there was a 'sudo' fix I used at some point in the process that screwed with my permissions, as you suggested.

sudo 将导致在命令运行时创建的文件和目录归 root 所有,并且尝试更改这些文件和目录将给您带来您看到的错误。您可以通过将文件和目录的所有权返回给您来解决该问题。但请注意,您不想愿意这样做。如果您对错误的文件进行更改所有权,则可能会将您的计算机变成砖头。

要更改 ~/.rvm 及其所有内容的所有权,请使用:

sudo chown -R caroljones ~/.rvm

接下来,应该修复访问 ~/.rvm 中文件的权限问题。

此时您可以运行:

rm -rf ~/.rvm

完全删除 RVM,类似于 rvm implode 的操作。那时我认为您就可以安全地重新安装 RVM。

在此之前,请阅读 the RVM installation page完全且仔细地。有关如何修改 ~/.bashrc 或 ~/.bash_profile 以允许在创建 shell 时初始化 RVM 的说明。人们掩盖了这个过程,认为 RVM 已经把一切都做得很好,但不明白它与他们的系统的联系是做什么的。这不是一个好主意,因为知道应该做什么将使诊断和解决问题变得容易。

您的 ~/.bashrc 或 ~/.bash_profile 文件之一应该包含在创建 shell 时加载 RVM 的代码。这应该位于文件的底部;它不一定是最后一个,但您确实需要了解如何以及为何移动它。

关于ruby - RVM 全面拒绝权限错误 - OS X Mavericks - Ruby 2.0.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23482724/

相关文章:

ruby-on-rails - 了解使用 method_added 动态覆盖实例方法的 ruby​​ 元编程

ruby - 如何让我的 Ruby 脚本在运行时公布值?

ruby - 在 Ruby 中存储 switch case 的结果

ruby - gem 安装/更新失败,出现 "no implicit conversion of nil into String"

rvm - Homebrew 要求打破了 Yosemite 上的 rvm 要求

ios - 输入 "pod install"时无法将 Cocoapods 安装到应用程序中(错误 : Failed to build gem native extension.)

jquery - 最像 jQuery 的 Ruby HTML 解析器

ruby - 使用 RVM 安装 Ruby 2.0.0,配置错误

c++ - "Permission denied"第二次打开文件写

Android 6 (23) - 未请求权限