Ubuntu系统下VSCode使用错误Ruby版本导致RuboCop运行失败的问题解决
解决VSCode中RuboCop扩展使用错误rbenv Ruby版本的问题
问题描述
在Ubuntu系统下用VSCode开发Ruby项目时,明明已经装好了Ruby扩展和Ruby-RuboCop扩展,但每次保存文件触发RuboCop检查时,总会弹出两个恼人的错误:
rbenv: version '2.5.1' is not installed (set by RBENV_VERSION environment variable)command /home/{username}/.rbenv/shims/rubocop returns empty output! please check configuration
我的项目是用rbenv安装的Ruby 2.7.6版本,2.5.1是之前装过已经卸载的旧版本,完全搞不懂VSCode为啥揪着这个旧版本不放。更奇怪的是:
- 直接在bash终端里运行RuboCop完全正常
rbenv local和rbenv global都设成了2.7.6,项目根目录也有指定2.7.6的.ruby-version文件- bash里执行
echo $RBENV_VERSION啥都不返回,但VSCode内置终端里执行这个命令却返回2.5.1
问题根源
折腾了半天终于找到问题所在——我在.bash_profile文件里不小心手动定义了RBENV_VERSION环境变量,硬指定了2.5.1版本!VSCode启动时会读取这个配置,所以才会用上错误的Ruby版本。
解决方案
- 打开你的
.bash_profile文件(路径一般是~/.bash_profile),可以用编辑器直接打开,或者在终端执行:nano ~/.bash_profile - 找到里面类似
export RBENV_VERSION=2.5.1的行,要么直接删掉,要么在前面加#注释掉:# export RBENV_VERSION=2.5.1 - 保存文件后,重启VSCode(或者在VSCode内置终端里执行
source ~/.bash_profile让配置立即生效)。
做完这些操作后,VSCode就会乖乖读取rbenv的本地/全局配置,或者项目根目录的.ruby-version文件,正确使用2.7.6版本的Ruby,RuboCop扩展也能正常工作了。
内容的提问来源于stack exchange,提问作者Michael Moran
相关产品推荐
相关产品推荐

