经过大量的修复,我已经陷入停滞状态。我是Ruby /编程的新手,今天早些时候有一个完美的,工作(单用户)安装的Ruby / RVM,但是有些东西发生了变化,我可能做了更多的破坏,而不是试图修复它。
基本上,当我尝试运行我的基本.rb文件时,它会给我:
ruby: No such file or directory -- doom.rb (LoadError)
我尝试卸载RVM并重新安装,我认为这是我搞砸的地方。我使用rvm implode
,我认为这是一个不完整的删除。现在,当我尝试它时,它只是说command not found
。同样的消息显示大多数其他修补程序,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
答案 0 :(得分:4)
我非常确定您在(联合国)安装过程中的某个时刻使用过sudo
,这会更改您的权限,并会解释您的权限拒绝错误。
您的路径没有正确配置; "本地/ bin中"目录应该在" usr / bin"之前。目录。一个"本地"的想法目录是它包含您安装的命令,以及覆盖/更新系统安装的预先存在的命令。当"本地"目录在" usr"之前在PATH中,他们的命令将在" usr"之前找到并使用。那些。因此,您的路径无法允许。而不是:
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/bin/
应该看起来像:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
它不会让Ruby或RVM正常运行,但它会帮助您的命令行体验按照预期的方式运行。
一旦我们获得了有关您的环境/配置的更多信息,我们就可以提供解决方案以使您的系统正常运行。
有一个' sudo'修复我在过程中的某些时候使用过的,如你所说的那样搞砸了我的权限。
sudo
将导致在命令运行时创建的文件和目录由root拥有,并且尝试更改这些文件和目录将为您提供所看到的错误。您可以通过将文件和目录的所有权返回给您来解决该问题。但是请注意,您 NOT 不想这样做。如果对错误的文件执行操作,更改所有权可能会使您的计算机变成砖块。
要更改〜/ .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的代码。那应该在文件的底部;它不一定是最后的,但你需要了解它是如何以及为什么被移动。