You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Redmine启动失败:Ruby io-console.so加载错误及未定义符号问题求助

解决Redmine启动时的Ruby io-console兼容性错误

你遇到的问题核心是Ruby版本与io-console gem版本不兼容——错误里的undefined symbol: RB_INTEGER_TYPE_P是关键:这个符号是较新版本Ruby才引入的API,而你使用的Ruby 2.3.0版本太老,io-console 0.5.0已经不再支持它了。下面给你几个一步步的解决方案,按顺序尝试即可:

方案1:降级io-console到兼容Ruby 2.3.0的版本

这是最直接的修复方式,因为问题根源就是io-console版本过高:

  • 先卸载当前不兼容的io-console版本:
    gem uninstall io-console -v 0.5.0
    
    执行时如果出现选择提示,直接选择卸载该版本即可。
  • 安装Ruby 2.3.0支持的旧版本io-console(比如0.4.6,这个版本经过验证可以兼容Ruby 2.3.x):
    gem install io-console -v 0.4.6
    
  • 完成后回到Redmine目录,先执行bundle install确保所有依赖加载正常,再尝试启动Redmine服务。

方案2:降级Bundler版本(如果方案1无效)

你的Bundler版本是2.0.2,这个版本对Ruby 2.3.0的兼容性很差(Bundler 2.x系列官方要求Ruby 2.3.0以上,但实际在老版本Ruby上会出现依赖加载问题),建议降级到1.x系列:

  • 卸载当前Bundler版本:
    gem uninstall bundler -v 2.0.2
    
  • 安装兼容Ruby 2.3.0的Bundler版本(比如1.17.3):
    gem install bundler -v 1.17.3
    
  • 回到Redmine目录,执行bundle install重新安装所有依赖,之后再启动Redmine。

方案3:检查Redmine与Ruby版本的匹配性(如果前两个方案都失败)

如果以上方法都没解决问题,可能是你的Redmine版本和Ruby 2.3.0不匹配——比如Redmine 4.0及以上版本要求Ruby 2.4.0+,如果你的Redmine版本过高,就需要要么升级Ruby,要么降级Redmine到适配Ruby 2.3.0的版本(比如Redmine 3.4.x系列)。

内容的提问来源于stack exchange,提问作者Robin C

火山引擎 最新活动