RubyGem版本降級

RubyGem版本降級

sudo rake db:migrate執行命令時,出現以下錯誤訊息。

rake aborted!
RubyGem version error: rack(1.4.1 not ~> 1.1.0)

我猜 RubyGem 版本比預期要晚。如何降級 RubyGem 的版本?

答案1

RubyGems 的「太新」版本確實可能對某些較舊的應用程式(主要是那些仍然使用 Rails 2.x 的應用程式)造成問題,但您發布的錯誤訊息似乎表明了不同的原因。您的應用程式需要特定版本的 Rack gem,而您安裝的版本可能不符合該要求。

您的應用程式需要rack ~> 1.1.0。此條件與 1.1.x 系列中的任何版本相符,例如 1.1.0、1.1.5 或 1.1.345,但不與 1.2.0 或 2.0.0 匹配。您似乎安裝了 1.4.1 版本的 Rack,這與條件 ~> 1.1.0 不符。

幸運的是,您可以並排安裝相同 gem 的不同版本。若要檢查您已安裝的 Rack 版本,您可以使用

gem list -l rack

此清單是本地安裝的(由於 -l 開關)名稱以“rack”開頭的 gem。在該清單中可能沒有 1.1.x 系列的版本。

要安裝特定版本的 gem,您可以根據您的情況使用 --version=xyz 選項

gem install rack --version=1.1.0

您的遷移很可能會隨之完成。

如果您確實需要降級 RubyGems,您首先需要在要降級的版本中安裝 RubyGems gem ( :D ),以類似於您上面所做的操作,例如

gem install rubygems-update --version=x.y.z

然後你可以執行「更新」(在你的情況下,降級)

gem update --system x.y.z

其中 xyz 是您想要的版本號。請注意,RubyGems 1.5.1 中引入了「更新」到特定版本的功能,因此您無法降級到低於該版本的任何版本。

相關內容