Wie stufen Sie Rubygems herab?


99

Ich habe Rubygems 1.3.1 installiert, möchte aber zu 1.2.0 zurückkehren. Was ist der Befehl zum Downgrade von Rubygems?


Gibt es einen bestimmten Grund, warum Sie ein Downgrade durchführen müssen (möglicherweise aufgrund des Verhaltens beim Einfügen von Edelsteinen in ~ / .gems, wenn Sie sudo vergessen)?
Jarin Udom

Antworten:


39

Aktualisiert im November 2011: Jetzt, da RVM nicht mehr verfügbar ist, versuchen Sie es rvm install rubygems <version>.


36
Eh, viel besser zu sudo gem update --system 1.4.2oderrvm install rubygems 1.4.2
mrm

198

Dies funktionierte bei mir beim Downgrade von 1.5.2 auf 1.4.2 aufgrund der alten Rails-Version:

sudo gem update --system 1.4.2

Weitere Informationen zum Herabstufen / Aktualisieren von Rubygems: https://github.com/rubygems/rubygems/blob/master/UPGRADING.md


1
Vielen Dank! Das hat bei mir funktioniert. Haben Sie ein altes Rails 2.2.2-Projekt, das sich ohne dies beschwert hat. Ich weiß immer noch nicht warum (wenn jemand Details dazu hat, wäre ich neugierig), aber zumindest funktioniert es jetzt.
Brian Armstrong

1
@BrianArmstrong Es gibt auch einen Fehler in 2.3.x, der bereits im Rails- 2-3-stableZweig behoben ist (siehe Link ). Möglicherweise wird dieses Update in der nächsten Version von 2.2.x verfügbar sein.
Pseidemann

Dies scheint der zuverlässigste Weg zu sein.
Marnen Laibow-Koser

tut dies jedoch nur für ein bestimmtes Gemset? oder müsste ich zwischen rubygems hin und her gehen, wenn ich zwischen der entwicklung von schienen 2 und schienen 3 wechseln möchte?
Aarona

@DJTripleThreat siehe stackoverflow.com/a/7700388/616310 für rvm. Wenn Sie es verwenden rbenv, sollte es ausreichen, um die Ruby-Installation zu kopieren. wenn Sie nicht verwenden rbenvoder rvmals würde ich vorschlagen , die Sie verwenden , rbenvda sonst müssen Sie hin und her mit dem System Rubin gehen
pseidemann

25

Wenn Sie RVM verwenden, können Sie dies tun, um aktuelle Ruby-Edelsteine ​​zu entfernen, und dann Rubygems aktualisieren / downgraden:

rvm install rubygems 1.4.2

Ich habe dies nur gegoogelt, um zu versuchen, eine Menge von Abwertungswarnungen loszuwerden, die durch die jüngsten Rubygems-Updates verursacht wurden. Das hat mir viel Ärger erspart, danke :)
Max Williams

15

Dies hat unter OSX nur funktioniert, um von 1.5.0 auf 1.4.2 zurückzukehren

sudo gem uninstall -v '1.5.0' rubygems-update
sudo gem update --system --local

2

Ich hatte ein ähnliches Problem in einem alten Rails 3-Stack. Wenn diese Art von Problemen auftritt, empfehle ich, auf den Produktionsserver zu gehen, auf dem die Anwendung gerade ausgeführt wird, und zu überprüfen, welche Rubygems-Version sie verwendet:

gem -v

Für mich wurde 1.8.24 verwendet. Alles, was ich tun musste, war ein Downgrade meiner aktuellen Rubygems, die aus "rvm install 1.9.3" generiert wurden, als ich den alten Ruby für diese App installierte. Ich habe den folgenden Befehl ausgeführt:

 $ rvm install rubygems 1.8.24 --force

Und es hat funktioniert. Hinweis Ich verwende Ubuntu 14.04 und der Server, den ich verwende, ist auch Ubuntu.


Musste hinzufügen --force, wenn ich ein Downgrade durchführen wollte, sonst würde rvm nicht mit der Installation fortfahren
Christian

-1

Ich habe diesen Befehl verwendet, um zu der Edelsteinversion zurückzukehren, die meine Ruby-Version benötigte:

rvm rubygems current

Wenn es Prüfsummenfehler gibt, versuchen Sie es

rvm rubygems current --verify-downloads 1

Das hat den Trick für mich getan.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.