Ubuntu 20.04配置Rails 2.3.8项目报错:无法加载rails/version
解决Rails 2.3.8 + Ruby 1.8.7启动时的
rails/version加载错误 按照以下步骤排查修复:
确认Ruby与Rails环境一致性
- 执行
ruby -v和gem list rails,确保当前使用的是Ruby 1.8.7,且gem列表中存在rails (2.3.8)。若不存在,重新安装:gem install rails -v 2.3.8 - 如果用RVM/rbenv管理版本,执行
rvm current或rbenv version,确认环境切换正确,避免混用不同Ruby版本的gem。
- 执行
清理Bundler干扰
- Rails 2.3.8对Bundler支持不佳,除了注释Gemfile,直接删除项目根目录下的
Gemfile和Gemfile.lock,彻底禁用Bundler的自动加载逻辑。
- Rails 2.3.8对Bundler支持不佳,除了注释Gemfile,直接删除项目根目录下的
检查并修复gem加载路径
- 执行
gem env查看GEM PATHS,确保路径包含当前Ruby 1.8.7的gem目录(比如~/.rvm/gems/ruby-1.8.7-p374@global这类)。 - 手动指定Rails lib路径到Ruby加载列表,执行:
之后再尝试export RUBYLIB=$(gem which rails | sed 's/rails.rb/lib/')script/server启动服务器。
- 执行
修复系统依赖问题
- Ubuntu 20.04默认的OpenSSL版本与Ruby 1.8.7不兼容,需要安装旧版依赖:
sudo apt-get install libssl1.0-dev - 重新编译Ruby 1.8.7(如果之前是源码安装),确保它链接到OpenSSL 1.0,避免gem加载时的底层依赖错误。
- Ubuntu 20.04默认的OpenSSL版本与Ruby 1.8.7不兼容,需要安装旧版依赖:
验证加载是否正常
- 执行
ruby -e "require 'rails/version'; puts Rails::VERSION::STRING",如果输出2.3.8,说明rails/version已能正常加载,再启动服务器即可。
- 执行
内容的提问来源于stack exchange,提问作者Umer Qaiser
相关产品推荐
相关产品推荐

