Downgrade der RubyGem-Version

Downgrade der RubyGem-Version

Als der Befehl sudo rake db:migrateausgeführt wurde, erschien die folgende Fehlermeldung.

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

Ich vermute, dass die RubyGem-Version neuer ist als erwartet. Wie kann ich die Version von RubyGem herabstufen?

Antwort1

Eine „zu neue“ Version von RubyGems kann bei einigen älteren Anwendungen tatsächlich ein Problem darstellen (vor allem bei denen, die noch Rails 2.x verwenden), aber die von Ihnen gepostete Fehlermeldung scheint auf eine andere Ursache hinzuweisen. Ihre Anwendung benötigt eine bestimmte Version des Rack-Gems und die von Ihnen installierte(n) Version(en) erfüllt diese Anforderung wahrscheinlich nicht.

Ihre Anwendung erfordert Rack ~> 1.1.0. Diese Bedingung wird von jeder Version der 1.1.x-Reihe erfüllt, beispielsweise 1.1.0, 1.1.5 oder 1.1.345, aber nicht von 1.2.0 oder 2.0.0. Sie scheinen Rack in 1.4.1 installiert zu haben, das die Bedingung ~> 1.1.0 nicht erfüllt.

Glücklicherweise können Sie verschiedene Versionen desselben Gems nebeneinander installieren. Um zu überprüfen, welche Version(en) von Rack Sie installiert haben, können Sie verwenden

gem list -l rack

Diese Listen sind lokal installierte (aufgrund des Schalters -l) Gems, deren Name mit „Rack“ beginnt. In dieser Liste gibt es wahrscheinlich keine Version der 1.1.x-Reihe.

Um eine bestimmte Version eines Gems zu installieren, können Sie die Option --version=xyz verwenden. In Ihrem Fall

gem install rack --version=1.1.0

Die Chancen stehen gut, dass Ihre Migrationen damit erfolgreich verlaufen.

Wenn Sie RubyGems tatsächlich downgraden müssen, müssen Sie zunächst das RubyGem ( :D ) in der Version installieren, auf die Sie downgraden möchten, analog zu dem, was Sie oben getan haben, zB

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

Anschließend kannst du das "Update" (in deinem Fall das Downgrade) durchführen.

gem update --system x.y.z

wobei xyz die gewünschte Versionsnummer ist. Beachten Sie, dass das „Aktualisieren“ auf eine bestimmte Version in RubyGems 1.5.1 eingeführt wurde, Sie können also nicht auf eine niedrigere Version downgraden.

verwandte Informationen