使用rbenv切换Ruby版本异常求助:设置2.3.3却显示2.3.7
看起来你遇到的是rbenv优先级没超过系统Ruby的问题,这通常是因为rbenv的shims路径没加到Shell的PATH最前面,导致系统自带的Ruby先被终端识别到。我给你一步步排查解决:
第一步:检查当前PATH配置
先在终端执行:echo $PATH看看输出里有没有
~/.rbenv/shims这个路径,而且它得排在系统Ruby路径(比如/usr/bin)的前面才行。如果它在后面或者根本没出现,那就是配置环节出了问题。第二步:修复Shell配置文件
根据你使用的Shell类型,找到对应的配置文件:- 用Bash的话:编辑
~/.bash_profile或者~/.bashrc - 用Zsh的话:编辑
~/.zshrc
在文件末尾添加以下两行代码:
export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)"保存文件后,执行对应的source命令让配置立即生效:
- Bash环境:
source ~/.bash_profile - Zsh环境:
source ~/.zshrc
- 用Bash的话:编辑
第三步:验证配置是否生效
再次执行echo $PATH,确认~/.rbenv/shims已经排在PATH列表的最前面。然后执行:which ruby如果输出是
~/.rbenv/shims/ruby,说明rbenv已经成功接管了Ruby的调用路径。第四步:确认Ruby 2.3.3已安装
执行:rbenv versions看看列表里有没有
2.3.3这个版本。如果没有,先安装它:rbenv install 2.3.3安装完成后再重新执行
rbenv local 2.3.3或rbenv global 2.3.3。第五步:重启终端
有时候source配置后还是会有缓存残留问题,重启一下终端,再执行ruby -v应该就能看到正确的2.3.3版本了。
另外,别忘了检查之前卸载rvm后,Shell配置文件里有没有残留的rvm相关代码(比如[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"),如果有的话一定要删掉,避免和rbenv产生冲突。
内容的提问来源于stack exchange,提问作者Petran

