Ubuntu18.04下Redmine5.0升级遇Bundler及Ruby环境问题求助
适配版本组合
Redmine 5.0.x 官方指定的兼容版本如下,完全匹配你的环境:
- Ruby:3.0.6(或3.1.x,二者均在Redmine 5.0支持范围内)
- Rails:6.1.7.x(Redmine 5.0自带的Rails版本,无需手动修改)
- Bundler:2.2.33(你当前使用的版本符合要求,2.2.x以上均可)
解决步骤
修复Ruby环境变量问题
- 检查当前shell的Ruby版本:
ruby -v,若显示为2.5.0,说明版本管理器(rbenv/rvm)未正确配置。以rbenv为例,需将eval "$(rbenv init -)"添加到~/.bashrc或~/.zshrc,重启终端后再次验证。 - 避免用
sudo执行bundler/rails命令(sudo会默认调用系统Ruby),若必须用权限执行,使用版本管理器对应的sudo命令(如rvm的rvmsudo)。
- 检查当前shell的Ruby版本:
清理旧依赖残留
- 删除冲突文件和目录:
rm Gemfile.lock && rm -rf vendor/bundle - 卸载低版本Bundler:
gem uninstall bundler -v '<2.0',确保全局仅保留2.2.33及以上版本。
- 删除冲突文件和目录:
重新安装依赖
- 进入Redmine根目录,指定Bundler版本初始化:
bundle _2.2.33_ install - 若出现系统依赖缺失报错,Ubuntu下安装对应库:
- MySQL数据库:
sudo apt-get install libmysqlclient-dev - PostgreSQL数据库:
sudo apt-get install libpq-dev - 通用编译依赖:
sudo apt-get install ruby-dev zlib1g-dev libssl-dev
- MySQL数据库:
- 进入Redmine根目录,指定Bundler版本初始化:
验证运行
- 启动测试服务:
bundle exec rails server -e production - 确认项目使用正确Ruby版本:
bundle exec ruby -v
- 启动测试服务:
关键注意事项
- Redmine 5.0不支持Ruby 3.2.x,这是你之前升级后仍调用旧Ruby的核心原因,高版本Ruby会触发兼容性 fallback。
- 不要手动修改Redmine自带的Gemfile中的Rails版本,项目已内置兼容的版本定义,手动修改会导致依赖混乱。
- 所有bundler/rails命令必须加
bundle exec,强制使用项目指定的Ruby和依赖版本。
内容的提问来源于stack exchange,提问作者Kailash Gajara
相关产品推荐
相关产品推荐

