RVM - 警告! PATH未正确设置

时间:2013-12-26 18:26:06

标签: ruby rvm

我的RVM出现问题 - 我不断收到错误消息,告诉我PATH设置不正确。

首先,任何一个听起来都像是来自一个完整的菜鸟,因为它是。我一直在寻找一些类似的线程,但没有任何帮助我解决这个问题。任何帮助将不胜感激!

当我运行rvm get head并收到消息时:

Warning! PATH is not properly set up, '/Users/mbauer/.rvm/src/rvm/gems/ruby-2.1.0/bin' is not at first place,
         usually this is caused by shell initialization files - check them for 'PATH=...' entries,
         it might also help to re-add RVM to your dotfiles: 'rvm get stable --auto-dotfiles',
         to fix temporarily in this shell session run: 'rvm use ruby-2.1.0'.

我已尝试运行rvm get head --auto-dotfiles并重新启动终端 - 没有帮助。

即使在当前的shell会话中,运行rvm use ruby-2.1.0也不会执行任何操作。

当我跑rvm --debug get head时,我注意到了这一点:

step> 'update_gemsets_install_rvm' started
Installing rvm gem in 1 gemsetsERROR:  While executing gem ... (Errno::EACCES)
Permission denied - /Users/mbauer/.rvm/src/rvm/gems/ruby-2.0.0-p247@global/cache/rvm-1.11.3.8.gem
Installing gem-wrappers gem in 2 gemsetsERROR:  While executing gem ... (Errno::EACCES)
Permission denied - /Users/mbauer/.rvm/src/rvm/gems/ruby-2.0.0-p247@global/cache/gem-wrappers-1.2.1.gemERROR:  While executing gem ... (Errno::EACCES)
Permission denied - /Users/mbauer/.rvm/src/rvm/gems/ruby-2.0.0-p247@global/cache/gem-wrappers-1.2.1.gem

到目前为止,我的研究让我相信问题出现在我的bash_profile中

我一直在引用this thread,似乎我们有类似的问题,但我无法弄清楚我需要在bash_profile中更改/删除以解决问题。

以下是我的bash_profile的内容:

[[ -s "$HOME/.rvm/src/rvm/scripts/rvm" ]] && source "$HOME/.rvm/src/rvm/scripts/rvm" # Load RVM into a shell session *as a function*
if [[ -s $HOME/.rvm/scripts/rvm ]]; then
  source $HOME/.rvm/scripts/rvm;
fi
export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"
export PATH=$PATH:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/Users/mbauer/.rvm/src/rvm/bin
export PATH=$PATH:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/Users/mbauer/.rvm/src/rvm/bin

有人能为我解释一下吗?

2 个答案:

答案 0 :(得分:9)

我不打算告诉你该怎么做,因为你需要学习在使用环境变量时理解你在做什么。

在命令行中输入:

echo $PATH

RVM的路径信息应该是链中的第一个。

看看你的PATH操作:

[[ -s "$HOME/.rvm/src/rvm/scripts/rvm" ]] && source "$HOME/.rvm/src/rvm/scripts/rvm" # Load RVM into a shell session *as a function*
if [[ -s $HOME/.rvm/scripts/rvm ]]; then
  source $HOME/.rvm/scripts/rvm;
fi
export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"
export PATH=$PATH:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/Users/mbauer/.rvm/src/rvm/bin
export PATH=$PATH:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/Users/mbauer/.rvm/src/rvm/bin

你明白为什么它不是第一个链中的第一个? (另外,你是否看到一些普遍的混淆,表明你不知道PATH是如何工作的?)

我建议花点时间了解环境变量和PATH的工作原理。阅读RVM安装页面,然后弄清楚如何使RVM的初始化首先出现在PATH中。

答案 1 :(得分:7)

您在问题中引用了两个问题:第一个问题由@ the-tin-man回答,另一个是权限问题:

  

权限被拒绝 - /Users/mbauer/.rvm/src/rvm/gems/ruby-2.0.0-p247@global/cache/gem-wrappers-1.2.1.gemERROR:执行gem时...(Errno :: EACCES)

您可以使用以下方法修复它:

rvm fix-permissions

请记住,请务必阅读RVM打印的说明/警告/错误,他们随时为您提供帮助。