RVM警告! PATH没有正确设置

我刚刚在我的Mac上安装了rvm,但在全局命令中收到此警告

警告! PATH没有正确设置,'/usr/local/rvm/gems/ruby-1.9.3-p194/bin'不是第一个地方,通常这是由shell初始化文件引起的 – 检查他们的'path= .. 。'条目,它可能也有助于重新添加RVM到你的点文件:'rvm get stable –auto-dotfiles',在这个shell会话中暂时修复:'rvm use ruby​​-1.9.3-p194'。

我的$ PATHS确认警告:

$echo :$PATH: :/usr/local/rvm/bin:/usr/local/heroku/bin:/usr/local/rvm/gems/ruby-1.9.3-p194/bin:/usr/local/rvm/gems/ruby-1.9.3-p194@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p194/bin:/usr/local/rvm/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin: 

正如所build议的,我第一次尝试rvm get stable --auto-dotfiles无济于事,然后我检查了我的shell初始化文件。 我的/.bash_profile:

 export PATH=/usr/local/bin:/usr/local/sbin:$PATH export PATH=/usr/local/share/python:$PATH PATH=$PATH:$HOME/bin:/opt 

我的/Users/User/.bash_profile似乎是罪魁祸首:

 export PS1="[\w]$" alias ll='ls -laGH' alias .='echo $PWD' ### Added by the Heroku Toolbelt export PATH="/usr/local/heroku/bin:$PATH" # rvm PATH=/usr/local/rvm/bin:$PATH [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* 

原因是如果我删除Heroku Toolbelt和rvmpath(这是由其他堆栈溢出问题提出的答案), /usr/local/rvm/gems/ruby-1.9.3-p194/bin usr / local / rvm / gems / ruby​​-1.9.3-p194 / bin将放在第一位,问题已解决。 但是,我不知道如何处理Heroku Toolbelt。 另外,不应该PATH=/usr/local/rvm/bin:$PATH首先放置rvm?

我一定会错过一些小小的解决scheme。

额外的注意事项: $rvm --debug get head不会产生关于此的安装说明,除了上面发布的警告。

更新:调用rvm system修复了这个问题,但只在当前的shell会话中。 $echo $PATH现在产生:

 :/usr/local/heroku/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/rvm/bin: 

什么是永久性修复?

Solutions Collecting From Web of "RVM警告! PATH没有正确设置"

我有与rvm 1.25.26相同的问题。

解:

我修改了~/.bashrc如下:

 ## rvm PATH="$GEM_HOME/bin:$HOME/.rvm/bin:$PATH" # Add RVM to PATH for scripting [ -s ${HOME}/.rvm/scripts/rvm ] && source ${HOME}/.rvm/scripts/rvm 

造成:

$HOME/.rvm/scripts/functions/cli中的__rvm_path_match_gem_home_check()函数触发警告。

如果$PATH的开始不是从$GEM_HOME/bin ,则会显示一条警告消息。

 __rvm_path_match_gem_home_check() { (( ${rvm_silence_path_mismatch_check_flag:-0} == 0 )) || return 0 [[ -n "${GEM_HOME:-}" ]] || return 0 case "$PATH:" in ($GEM_HOME/bin:*) true ;; # all fine here (*:$GEM_HOME/bin:*) __rvm_path_match_gem_home_check_warning "is not at first place" ;; (*) __rvm_path_match_gem_home_check_warning "is not available" ;; esac } 

在我的情况下,Heroku添加了以下内容到我的.bashrc中:

 ### Added by the Heroku Toolbelt export PATH="/usr/local/heroku/bin:$PATH" 

请注意,它是如何将自己置于路径之上的。 我所要做的只是切换到:

 ### Added by the Heroku Toolbelt export PATH="$PATH:/usr/local/heroku/bin" 

我的问题解决了!

如果你没有Heroku,那么寻找其他的东西可能是你自己的路径。 真的,RVM只是想确保它有一个公平的机会来加载Ruby之前,包括自己的路径加载的任何宝石。

解决方案是运行

 $rvm install ruby-head $rvm use ruby-head 

用可选的$rvm docs generate-ti

我在我的系统上使用过时的Ruby版本,将其更新为当前版本。

搜索你的配置文件:

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting

将该行替换为:

export PATH="$HOME/.rvm/bin:$PATH" # Add RVM to PATH for scripting

确保RVM代码位于$ PATH的开头。 另外确保没有其他代码将自己放在$ PATH的开始。

看来,和.bashrc的结束,你需要保证rvm路径是在$PATH的开始

对。 因为我花了几个小时的研究没有成功,所以我倾销了这个答案。 我希望这可以节省一些别人的时间。

我的问题是安装了2个红宝石头,显然,红宝石版本也是一个问题。

 ➜ rvm list Warning! PATH is not properly set up, '/home/ma/.rvm/gems/ruby-1.8.7-head/bin' is not at first place. Usually this is caused by shell initialization files. Search for 'PATH=...' entries. You can also re-add RVM to your profile by running: 'rvm get stable --auto-dotfiles'. To fix it temporarily in this shell session run: 'rvm use ruby-1.8.7-head'. To ignore this error add rvm_silence_path_mismatch_check_flag=1 to your ~/.rvmrc file. rvm rubies => ruby-1.8.7-head [ x86_64 ] ruby-1.8.7-p374 [ x86_64 ] ruby-2.3.0 [ x86_64 ] ruby-2.4.0 [ x86_64 ] * ruby-head [ x86_64 ] # => - current # =* - current && default # * - default 

在这种情况下,(尝试所有上述解决方案, 这和这个 )设置我的默认值为ruby-head [ x86_64 ]并重新启动终端Warning! 和我目前的ruby版本是坚持如上面的片段显示。

要解决这个问题:

rvm remove ruby-1.8.7-head

现在,如果我重新启动终端:

 ➜ rvm list rvm rubies ruby-1.8.7-p374 [ x86_64 ] ruby-2.3.0 [ x86_64 ] ruby-2.4.0 [ x86_64 ] =* ruby-head [ x86_64 ] # => - current # =* - current && default # * - default