Jak obniżyć poziom rubygemów?

99

Mam zainstalowany Rubygems 1.3.1, ale chcę wrócić do 1.2.0. Jakie jest polecenie obniżenia wersji rubygemów?

Salmanański
źródło
Czy jest jakiś szczególny powód, dla którego musisz obniżyć wersję (może z powodu zachowania polegającego na umieszczaniu klejnotów w ~ / .gems, gdy zapomnisz sudo)?
Jarin Udom
To byłby powód, dla którego: stackoverflow.com/questions/4859600/…
Ramon Tayag,

Odpowiedzi:

39

Zaktualizowano listopad 2011: Teraz, gdy RVM się skończył, spróbuj uruchomić rvm install rubygems <version>.

Ryan Bigg
źródło
36
Ech, znacznie lepiej sudo gem update --system 1.4.2lubrvm install rubygems 1.4.2
mrm
198

To zadziałało dla mnie podczas obniżania wersji z 1.5.2 do 1.4.2 z powodu starej wersji szyn:

sudo gem update --system 1.4.2

Więcej informacji na temat obniżania / ulepszania rubygems: https://github.com/rubygems/rubygems/blob/master/UPGRADING.md

pseidemann
źródło
1
Dzięki! To zadziałało dla mnie. Mam stary projekt Rails 2.2.2, który narzekał bez tego. Właściwie nadal nie wiem dlaczego (jeśli ktoś ma szczegóły na ten temat, byłbym ciekawy), ale przynajmniej teraz działa.
Brian Armstrong
1
@BrianArmstrong W 2.3.x jest również błąd, który został już naprawiony w 2-3-stablegałęzi rails (patrz link ). Być może ta poprawka będzie dostępna w następnej wersji 2.2.x.
pseidemann
Wydaje się, że jest to najbardziej niezawodny sposób.
Marnen Laibow-Koser
czy robi to jednak tylko dla konkretnego zestawu klejnotów? czy też musiałbym przechodzić między rubygemami, jeśli chcę przełączać się między rozwojem szyn 2 i szyn 3?
aarona
@DJTripleThreat patrz stackoverflow.com/a/7700388/616310 dla rvm. kiedy używasz rbenv, powinno wystarczyć skopiowanie instalacji Ruby. kiedy nie używać rbenvani rvmnie sugeruję używać rbenvbo inaczej trzeba iść tam iz powrotem z rubinem systemu
pseidemann
25

Jeśli używasz RVM, możesz to zrobić, aby usunąć obecne rubiny, a następnie ulepszyć / obniżyć poziom rubygemów:

rvm install rubygems 1.4.2
adzdavies
źródło
po prostu wygooglowałem to, aby spróbować pozbyć się tony ostrzeżeń o przestarzałych wynikach z ostatnich aktualizacji rubygemów, zaoszczędziło mi wielu kłopotów, dzięki :)
Max Williams
15

To właśnie zadziałało na OSX, aby wrócić z 1.5.0 z powrotem do 1.4.2

sudo gem uninstall -v '1.5.0' rubygems-update
sudo gem update --system --local
patrickmcgraw
źródło
2

Miałem podobny problem w starym stosie Rails 3. W przypadku wystąpienia tego typu problemów radzę przejść na serwer produkcyjny, na którym aplikacja jest aktualnie uruchomiona, i sprawdzić, której wersji rubygems używa:

gem -v

U mnie używało 1.8.24. Więc wszystko, co musiałem zrobić, to obniżyć wersję moich obecnych rubygemów, które zostały wygenerowane z "rvm install 1.9.3", kiedy instalowałem stary ruby ​​dla tej aplikacji. Uruchomiłem następujące polecenie:

 $ rvm install rubygems 1.8.24 --force

I zadziałało. Uwaga Używam Ubuntu 14.04, a serwer, którego używam, to również Ubuntu.

Donato
źródło
Musiałem dodać - wymuś, gdybym chciał obniżyć wersję, w przeciwnym razie rvm nie kontynuowałby instalacji
Christian
-1

Użyłem tego polecenia, aby wrócić do wersji gem, której potrzebowała moja wersja ruby:

rvm rubygems current

Jeśli daje błędy sumy kontrolnej, spróbuj

rvm rubygems current --verify-downloads 1

To mi wystarczyło.

Adrian
źródło