RVM警告!PATH未正确设置

Joh*_*133 27 ruby linux rubygems .bash-profile rvm

我刚刚在我的mac上安装了rvm,但是我在全局命令上收到了这个警告

警告!PATH没有正确设置,'/ usr/local/rvm/gems/ruby​​-1.9.3-p194/bin'不在第一位,通常这是由shell初始化文件引起的 - 检查它们是否为'PATH = .. ''条目,它也可能有助于将RVM重新添加到你的dotfiles:'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:
Run Code Online (Sandbox Code Playgroud)

正如所建议的那样,我首先尝试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
Run Code Online (Sandbox Code Playgroud)

我的/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*
Run Code Online (Sandbox Code Playgroud)

原因是如果我删除Heroku Toolbelt和rvm路径(这是其他堆栈溢出问题建议的答案),/usr/local/rvm/gems/ruby-1.9.3-p194/bin将首先出现问题并解决.但是,我不知道如何处理Heroku Toolbelt.另外,不应该PATH=/usr/local/rvm/bin:$PATH先放置rvm吗?

我一定错过了一些简单的解决方案.

附加说明: $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:
Run Code Online (Sandbox Code Playgroud)

什么是永久性修复?

utw*_*ang 56

我对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
Run Code Online (Sandbox Code Playgroud)

造成:

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

如果$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
}
Run Code Online (Sandbox Code Playgroud)

  • 圣洁的哈克你!这也有帮助!http://qiita.com/900090009/items/779dd0b5317e24939489 (2认同)

小智 15

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

### Added by the Heroku Toolbelt
export PATH="/usr/local/heroku/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)

请注意它是如何在路径前面进行的.我所要做的只是切换到:

### Added by the Heroku Toolbelt
export PATH="$PATH:/usr/local/heroku/bin"
Run Code Online (Sandbox Code Playgroud)

我的问题解决了!

如果您没有Heroku,请寻找可能优先于您的路径的任何其他内容.实际上,RVM只是想确保它有一个公平的机会加载Ruby之前任何包含自己在路径中加载的宝石.


Joh*_*133 5

解决方案是运行

$rvm install ruby-head
$rvm use ruby-head
Run Code Online (Sandbox Code Playgroud)

有一个可选的 $rvm docs generate-ti

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


Mir*_*318 5

在您的配置文件中搜索:

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 的开头。