簡體   English   中英

為什么“捆綁更新”要安裝古代寶石?

[英]Why is 'bundle update' installing ancient gems?

一切都運行良好,直到出乎意料的是,bundle update 決定“更新”到某些 gem 的一些非常舊的版本。 有任何想法嗎? 我很困惑!

Gemfile 沒有為錯誤的 gem 指定一個版本。 例如。

gem 'rails'

我願意...

bundle update

和(。)...

Using rails (0.9.5)

如果我指定一個版本。 例如。

gem 'rails', '~> 3.0'

然后就可以了。

Using rails (3.0.7)

來源“http://rubygems.org”

Gem 版本 1.8.3,rvm 版本 1.6.14

只有一些寶石是錯誤的。 mongoid 是另一個。 它在 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 文件,然后運行bundler install 它可能會解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM