在梳理了大量的修复程序后,我陷入了停滞。我是 Ruby/编程的新手,今天早些时候已经完美地安装了 Ruby/RVM(单用户),但是有些事情发生了变化,我可能在尝试修复它时造成了更多的损害。
本质上,当我尝试运行我的基本 .rb 文件时,它给了我:
ruby: No such file or directory -- doom.rb (LoadError)
我尝试卸载 RVM 并重新安装,我认为这就是我搞砸的地方。我使用了rvm implode
,我认为这是一个不完整的删除。现在,当我尝试它时,它只是说找不到命令
。对于大多数其他修复,repair
和 get 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/