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)
小智 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之前任何包含自己在路径中加载的宝石.
解决方案是运行
$rvm install ruby-head
$rvm use ruby-head
Run Code Online (Sandbox Code Playgroud)
有一个可选的 $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 的开头。
归档时间: |
|
查看次数: |
23071 次 |
最近记录: |