为什么“捆绑更新”安装古代宝石?

问题描述

| 一切工作都很好,直到突然之间,捆绑软件更新决定对某些宝石的某些非常老的版本进行“更新”。有任何想法吗?我感到困惑! Gemfile没有为错误的宝石指定版本。例如。
gem \'rails\'
我做...
bundle update
和(!)...
Using rails (0.9.5)
如果我指定一个版本。例如。
gem \'rails\',\'~> 3.0\'
那没关系。
Using rails (3.0.7)
来源\'http://rubygems.org \' 宝石版本1.8.3,rvm版本1.6.14 只有一些宝石是错误的。蒙古包是另一个。它在1.0.6上。谢谢!     

解决方法

问题解决了。这是一场宝石冲突。我把它煮成... 仅拥有这两个宝石:
gem \'rails\'
gem \'i18n\'
您得到的是i18n 0.6.0(最新版本),但rails在3.0.5(当前最新版本是3.0.7)上。 然后只有这三个:
gem \'rails\'
gem \'i18n\'
gem \'delayed_job\'
你得到:
Gems included by the bundle:
  * actionmailer (0.6.1)
  * actionpack (1.4.0)
  * activerecord (1.6.0)
  * activesupport (3.0.7)
  * bundler (1.0.13)
  * daemons (1.1.3)
  * delayed_job (2.1.4)
  * i18n (0.6.0)
  * rails (0.9.5)  <-- Yikes! that brings back memories!
  * rake (0.9.0)
我还没有深入研究bundler的gem依赖关系如何工作,但这就是造成它的原因。有趣!当然,无论如何都不需要包括i18n gem,因此删除它可以解决问题(或指定gem版本)。     ,试试这个。 只需更新您的捆绑软件,可能是任何一个较旧的gem与最新的gem冲突,就会出现此类问题。
\'gem install bundler\'
然后
\'bundler install\'
如果再次发现错误,则删除GEM.lock文件,然后运行ѭ10。它可以解决问题。