升级到Rails 6.1.4后无法创建新Rails应用并报railties相关错误
问题根源
你的环境同时安装了rbenv和rvm两个Ruby版本管理工具,二者存在路径优先级冲突:
- 报错日志显示调用
rails命令时,系统优先匹配到了rbenv管理的Ruby 2.6.5版本下的可执行文件 - 你实际升级配置的是rvm管理的Ruby 3.0.2版本,该版本下的Rails可执行文件没有被系统优先识别,且rbenv的Ruby 2.6.5环境中没有安装对应的railties依赖。
解决方案
方案1:保留rvm,卸载冲突的rbenv(推荐,避免后续再出现版本冲突问题)
- 执行命令删除rbenv安装目录:
rm -rf ~/.rbenv - 编辑shell配置文件(
~/.zshrc/~/.bash_profile/~/.bashrc,根据你使用的终端类型选择),删除所有和rbenv相关的配置行,通常为类似eval "$(rbenv init -)"的内容。 - 重载shell配置使修改生效:
# zsh用户执行 source ~/.zshrc # bash用户执行 source ~/.bash_profile - 确认当前Ruby版本为3.0.2:
ruby -v # 正常输出应为 ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-darwin18] - 安装指定版本的Rails:
gem install rails -v 6.1.4 - 验证安装结果:
rails -v # 正常输出应为 Rails 6.1.4
方案2:保留rbenv,直接在rbenv环境安装Rails
如果你需要保留rbenv做版本管理,可执行以下命令:
# 切换rbenv全局Ruby版本为3.0.2 rbenv global 3.0.2 # 安装指定版本Rails gem install rails -v 6.1.4 # 刷新rbenv可执行文件映射 rbenv rehash
执行完成后即可正常调用rails命令。
内容的提问来源于stack exchange,提问作者Tazoh Yanick
相关产品推荐
相关产品推荐

