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?


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>.


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


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

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

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.


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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.