2013-06-10 10 views

Odpowiedz

859

Użyj -v flag

$ gem install fog -v 1.8 
+47

Jeśli, tak jak ja, jeśli wcześniej zainstalowano nowszą wersję swojej gem, trzeba odinstalować późniejsza wersja z np 'klejnot odinstalować mgła'. Zapyta, która wersja odinstalować, jeśli masz więcej niż jeden. – Dizzley

+2

Mam 3 wersje prowizji: 'lista klejnotów | grep rake' = 'rake (10.1.1, 10.1.0, 0.8.7)' .. mam projekt szynowy 2.3.5 i kolejny 3.0, nad którym pracuję w tym samym czasie .. jak używać konkretna wersja prowizji dla każdego projektu (np. w linii poleceń?) – abbood

+0

@bbood 'rake _10.1.1_ ...' powinno działać, dla każdego, kto chce wiedzieć :) –

14

Jak zauważyli inni w ogóle użyć flagi -v na komendę gem install.

Jeśli opracowanie gem lokalnie, po cięciu gem z gemspec:

$ gem install gemname-version.gem 

Zakładając wersję 0.8, to będzie wyglądać następująco:

$ gem install gemname-0.8.gem 
+1

Świetna odpowiedź. Proponuję jednak dodać inny blok kodu dla opcji "-v" flagi. Gdy moje oczy odczytały odpowiedź, natychmiast przeszły do ​​bloków kodu, a nie do otaczającego tekstu. Jeśli inni zrobią to samo, przegapią część "-v". – CamHart

65

dla Ruby 1.9+ użytku dwukropek ..

gem install sinatra:1.4.4 prawn:0.13.0 
+0

O dziwo, to nie zawsze działa ... – kolypto

+0

jaki klejnot (i jakiej wersji) próbujesz zainstalować? – Kokizzu

+0

umm .. to działa dla mnie: http://pastie.org/9236950 – Kokizzu

6

Linux

Aby zainstalować inną wersję rubin, sprawdź najnowszą wersję pakietu za pomocą apt jak poniżej:

$ apt-cache madison ruby 
     ruby | 1:1.9.3 | http://ftp.uk.debian.org/debian/ wheezy/main amd64 Packages 
     ruby |  4.5 | http://ftp.uk.debian.org/debian/ squeeze/main amd64 Packages 

Następnie zainstalować go:

$ sudo apt-get install ruby=1:1.9.3 

Aby sprawdzić, jaka jest aktualna wersja, uruchom:

$ gem --version # Check for the current user. 
$ sudo gem --version # Check globally. 

Jeśli wersja jest wciąż stara, możesz spróbować przełączyć wersję na nową za pomocą ruby ​​versi na kierownika (rvm) przez:

rvm 1.9.3 

Uwaga: można poprzedzić go sudo jeśli rvm został zainstalowany w skali globalnej. Lub uruchom /usr/local/rvm/scripts/rvm, jeśli twoje polecenie rvm nie jest w twoim globalnym . Jeśli proces instalacji rvm się nie powiódł, zobacz rozdział dotyczący rozwiązywania problemów.


rozwiązywanie problemów:

  • Jeśli nadal masz starą wersję, można spróbować zainstalować (menedżer wersji Ruby) RVM poprzez:

    sudo apt-get install curl # Install curl first 
    curl -sSL https://get.rvm.io | bash -s stable --ruby # Install only for the user. 
    #or:# curl -sSL https://get.rvm.io | sudo bash -s stable --ruby # Install globally. 
    

    wtedy, gdy zainstalowany lokalnie (tylko dla bieżącego użytkownika), załaduj rvm przez:

    source /usr/local/rvm/scripts/rvm; rvm 1.9.3 
    

    jeśli globalnie (dla wszystkich użytkowników), a następnie:

    sudo bash -c "source /usr/local/rvm/scripts/rvm; rvm 1.9.3" 
    
  • jeśli nadal występują problemy z nową wersją ruby, spróbuj zainstalować go przez RVM poprzez:

    source /usr/local/rvm/scripts/rvm && rvm install ruby-1.9.3 # Locally. 
    sudo bash -c "source /usr/local/rvm/scripts/rvm && rvm install ruby-1.9.3" # Globally. 
    
  • jeśli was” chciałbym zainstalować jakieś perełki globalnie i masz RVM już zainstalowany, można spróbować:

    rvmsudo gem install [gemname] 
    

    zamiast:

    gem install [gemname] # or: 
        sudo gem install [gemname] 
    

Uwaga: to wolałem nie używać sudo pracować z klejnotów RVM. Kiedy robisz sudo, uruchamiasz komendy jako root, inny użytkownik w innej powłoce i stąd cała konfiguracja, którą RVM dla ciebie zrobił jest ignorowana podczas gdy polecenie działa pod sudo (takie rzeczy jak GEM_HOME, etc ...) . Tak więc, aby powtórzyć, jak tylko "sudo" będzie działać jako użytkownik root, który wyczyści twoje środowisko, a także wszystkie pliki, które utworzy , nie będą mogły być modyfikowane przez twojego użytkownika i sprawi, że stanie się dziwne. coś się dzieje.

146

Użyj parametru --version (skrót -v):

$ gem install rails -v 0.14.1 

Można również użyć komparatorów wersji jak >= lub ~>

$ gem install rails -v '~> 0.14.0' 

lub przy n Wersje dzbanek z gem nawet:

$ gem install rails:0.14.4 rubyzip:'< 1' 
… 
Successfully installed rails-0.14.4 
Successfully installed rubyzip-0.9.9 
+0

pracował dla ~>, ale co jeśli masz "< 0.9, > = 0.7" typ sytuacji? Próbowałem zastosować dwa argumenty v i wygląda na to, że pierwszy został zignorowany. Używanie separatora przecinka nawet nie parsuje. Skończyło mi się usunięcie większego niż wymaganie i zdarzyło się, że zainstalowałem akceptowalną wersję, ale posiadanie formalnego rozwiązania byłoby miłe. –

+0

Co oznacza skrót wersji "~>"? – Dragas

+0

Oznacza to, że ostatnia cyfra może się rozwijać (https://stackoverflow.com/questions/5170547/what-does-tilde-greater-than-mean-in-ruby-gem-dependencies) – schmijos

28

Dla instalacji gem install gemname -v versionnumber

do dezinstalacji gem uninstall gemname -v versionnumber

Powiązane problemy