我刚刚在我的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'。< / p>
My $ 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:
正如所建议的,我首先尝试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和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:
什么是永久性修复?
答案 0 :(得分:54)
我对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
在__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
}
答案 1 :(得分:15)
就我而言,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之前任何包含自己在路径中加载的宝石。
答案 2 :(得分:5)
解决方案是运行
$rvm install ruby-head
$rvm use ruby-head
带有可选的$rvm docs generate-ti
我在我的系统上使用了过时的Ruby版本,将其更新为修复它的当前版本。
答案 3 :(得分:3)
在配置文件中搜索:
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的开头。
答案 4 :(得分:2)
由于我使用的是rvm的ubuntu版本,因此需要将其放入.profile中。
PATH="$GEM_HOME/bin:/usr/share/rvm/bin:$PATH" # Add RVM to PATH for scripting
[ -s /usr/share/rvm/scripts/rvm ] && source /usr/share/rvm/scripts/rvm
答案 5 :(得分:1)
我通过注释
在Ubuntu 18.04中解决了此问题〜/ .bashrc 文件中的[[--s“ $ HOME / .rvm / scripts / rvm”]] &&来源“ $ HOME / .rvm / scripts / rvm”#将RVM作为函数加载到Shell会话
,与〜/ .bash_profile 文件中的同一行一样。
答案 6 :(得分:0)
看来,在.bashrc结束时,你需要保证rvm路径位于$PATH
的开头
答案 7 :(得分:0)
右。我花了几个小时研究却没有成功,但我还是坚持了这个答案。我希望这能节省一些时间。
我的问题是安装了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
在这种情况下,(尝试上述所有解决方案,this和this)将我的默认值设置为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