最近在测试OpenNebula时候,发现一个报错,报错内容如下
1 2 3 |
Fetching: bundler-2.0.2.gem (100%) ERROR: Error installing bundler: bundler requires Ruby version >= 2.3.0. |
看到此报错,很多人会理解成ruby版本不符合的原因,于是去升级ruby版本,包括我之前写的一篇文章,报错内容是
1 2 3 |
Fetching: redis-4.0.1.gem (100%) ERROR: Error installing redis: redis requires Ruby version >= 2.2.2 |
当初我也是去升级了ruby版本,所以我这里觉得有必要来说下,不升级ruby的解决方案,适用于所有类似的报错
1 2 3 |
Fetching: xxx.gem (100%) ERROR: Error installing xxx: xxx requires Ruby version >= 2.3.0 |
通过gem安装bundler时,默认gem会去安装最新的版本,由于安装的版本过新,对ruby支持也所有提高,这样就产生了报错,最简单的解决方案,通过gem安装包时,手动选择需要安装的版本,确保所安装的包,符合你当前ruby的版本。
那么如何才能知道,gem安装的包是否符合当前ruby版本呢,这里就需要通过https://rubygems.org/来查询了
通过该网站查询,即可看到bundler2.0.2版本需要ruby>=2.3.0
在版本列表中,选择老版本,我这里选择了bundler1.17.3,此时可以看到ruby>=1.8.7,Centos7默认安装的ruby是2.0.0版本,条件满足。
在服务器上安装指定的版本,即可解决报错问题了。
1 |
gem install bundler -v 1.17.3 |
PS:gem速度过慢可以考虑更换国内镜像,不过更换镜像后有些版本的包无法找到,个人觉得可能是国内镜像很久没人维护了吧
1 |
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/ |
原文链接:解决RubyGems报错Error installing xxx,转载请注明来源!