Comment rétrogradez-vous les rubygems?

99

J'ai installé rubygems 1.3.1 mais je veux revenir à 1.2.0. Quelle est la commande pour rétrograder les rubygems?

Shalmanais
la source
Y a-t-il une raison particulière pour laquelle vous devez rétrograder (peut-être à cause du comportement consistant à placer des gemmes dans ~ / .gems lorsque vous oubliez sudo)?
Jarin Udom
Ce serait une raison pour laquelle: stackoverflow.com/questions/4859600/…
Ramon Tayag

Réponses:

39

Mise à jour en novembre 2011: Maintenant que RVM est sorti, essayez de courir rvm install rubygems <version>.

Ryan Bigg
la source
36
Eh, beaucoup mieux pour sudo gem update --system 1.4.2ourvm install rubygems 1.4.2
mrm
198

Cela a fonctionné pour moi lors de la rétrogradation de la 1.5.2 à la 1.4.2 en raison de l'ancienne version des rails:

sudo gem update --system 1.4.2

Plus d'informations sur la rétrogradation / la mise à niveau de rubygems: https://github.com/rubygems/rubygems/blob/master/UPGRADING.md

pseidemann
la source
1
Merci! Cela a fonctionné pour moi. Avoir un vieux projet Rails 2.2.2 qui se plaignait sans cela. Je ne sais toujours pas pourquoi en fait (si quelqu'un a des détails à ce sujet, je serais curieux) mais au moins cela fonctionne maintenant.
Brian Armstrong
1
@BrianArmstrong Il y a aussi un bug dans 2.3.x qui est déjà corrigé dans la 2-3-stablebranche rails (voir lien ). Peut-être que ce correctif sera disponible dans la prochaine version de 2.2.x.
pseidemann
Cela semble être le moyen le plus fiable.
Marnen Laibow-Koser
est-ce que cela ne le fait que pour un ensemble de gemmes particulier? ou devrais-je faire des allers-retours entre rubygems si je veux basculer entre le développement des rails 2 et des rails 3?
aarona
@DJTripleThreat voir stackoverflow.com/a/7700388/616310 pour rvm. lorsque vous l'utilisez, rbenvcela devrait suffire à copier l'installation de ruby. quand vous n'utilisez pas rbenvni rvmque je vous suggérerais d'utiliser rbenvparce que sinon vous devez faire des allers-retours avec le système ruby
pseidemann
25

Si vous utilisez RVM, vous pouvez le faire pour supprimer les gemmes ruby ​​actuelles, puis mettre à niveau / rétrograder les rubygems:

rvm install rubygems 1.4.2
adzdavies
la source
il suffit de googler ceci pour essayer de se débarrasser d'une tonne d'avertissements de dépréciation causés par les récentes mises à jour de rubygems, cela m'a évité beaucoup de tracas, merci :)
Max Williams
15

Cela a juste fonctionné pour moi sur OSX pour passer de 1.5.0 à 1.4.2

sudo gem uninstall -v '1.5.0' rubygems-update
sudo gem update --system --local
patrickmcgraw
la source
2

J'ai eu un problème similaire dans une ancienne pile Rails 3. Lorsque ce type de problème se produit, ma recommandation est d'aller sur le serveur de production sur lequel l'application s'exécute actuellement et de vérifier la version de rubygems qu'elle utilise:

gem -v

Pour moi, il utilisait 1.8.24. Donc, tout ce que j'avais à faire est de rétrograder mes rubygems actuels qui ont été générés à partir de "rvm install 1.9.3", lorsque j'ai installé l'ancien ruby ​​pour cette application. J'ai exécuté la commande suivante:

 $ rvm install rubygems 1.8.24 --force

Et ça a marché. Remarque J'utilise Ubuntu 14.04 et le serveur que j'utilise est également Ubuntu.

Donato
la source
J'ai dû ajouter --force si je voulais rétrograder sinon rvm ne procéderait pas à l'installation
Christian
-1

J'ai utilisé cette commande pour revenir à la version gem dont ma version ruby ​​avait besoin:

rvm rubygems current

S'il donne des erreurs de somme de contrôle, essayez

rvm rubygems current --verify-downloads 1

Cela a fait l'affaire pour moi.

Adrian
la source