Jak zainstalować konkretną wersję rubinu?


884

gemJak mogę zainstalować określoną wersję klejnotu za pomocą narzędzia wiersza polecenia ?

Odpowiedzi:


1157

Użyj -vflagi:

$ gem install fog -v 1.8

59
Jeśli, tak jak ja, wcześniej zainstalowałeś późniejszą wersję swojego klejnotu, musisz odinstalować późniejszą wersję za pomocą np gem uninstall fog. Zostaniesz zapytany, którą wersję odinstalować, jeśli masz więcej niż jedną.
Dizzley,

3
Mam 3 wersje prowizji: gem list | grep rake= rake (10.1.1, 10.1.0, 0.8.7).. Mam projekt Rails 2.3.5 i kolejną wersję 3.0, nad którą pracuję w tym samym czasie .. Jak korzystać z konkretnej wersji prowizji dla każdego projektu (tj. na polecenie linia?)
abbood

@abbood rake _10.1.1_ ...powinien działać, dla każdego, kto chce wiedzieć :)
Koen.

Warto zauważyć, że nie wpływa to na wykonywalne pliki binarne. Odinstalowanie poprzedniej wersji działało jednak w przypadku plików binarnych.
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功

Jeszcze raz, żałując, że nie mogę zrobić wielu pozytywnych opinii. Może gdyby musieli być rozdzieleni przez co najmniej rok. :)
Don Branson

192

Użyj --versionparametru (skrót -v):

$ gem install rails -v 0.14.1

Możesz także użyć komparatorów wersji, takich jak >=lub~>

$ gem install rails -v '~> 0.14.0'

Lub nawet z nowszymi wersjami klejnotów :

$ gem install rails:0.14.4 rubyzip:'< 1'

Successfully installed rails-0.14.4
Successfully installed rubyzip-0.9.9

To działało w ~>, ale co jeśli masz sytuację typu <<0,9,> = 0,7? Próbowałem zastosować dwa argumenty v i wygląda na to, że pierwszy został zignorowany. Używanie separatora przecinków nawet nie parsowałoby. Skończyło się na tym, że usunąłem wymaganie większe niż wymagane i zdarzyło mi się zainstalować akceptowalną wersję, ale posiadanie formalnego rozwiązania byłoby fajne.
Joseph Coco,

Co oznacza komparator wersji ~>?
Dragas,

Oznacza to, że ostatnia cyfra może rosnąć ( stackoverflow.com/questions/5170547/... )
schmijos

93

Do instalacji gem install gemname -v versionnumber

Do odinstalowania gem uninstall gemname -v versionnumber


80

dla Ruby 1.9+ użyj dwukropka ..

gem install sinatra:1.4.4 prawn:0.13.0

jaki klejnot (i jaką wersję) próbujesz zainstalować?
Kokizzu

proszę powiedz wynik gem sources, jeśli jest pusty, dodaj repozytorium za pomocą tego polecenia:gem sources -a https://rubygems.org/
Kokizzu

moje gem -vprogramy 1.8.23kontra twoje 2.2.2. Wygląda na to, że ta funkcja jest nowa :)
kolypto

Ruby 1.8 już się kończy wsparcie ruby-lang.org/en/news/2013/06/30/we-retire-1-8-7
Kokizzu

24

Jak zauważyli inni, zwykle używaj -vflagi dla gem installpolecenia.

Jeśli tworzysz klejnot lokalnie, po wycięciu klejnotu ze swojego klejnotu:

$ gem install gemname-version.gem

Zakładając wersję 0.8, wyglądałoby to tak:

$ gem install gemname-0.8.gem

3
Świetna odpowiedź. Sugeruję jednak dodanie kolejnego bloku kodu dla opcji flagi „-v”. Gdy moje oczy czytały odpowiedź, natychmiast poszły do ​​bloków kodu, a nie otaczającego go tekstu. Jeśli inni zrobią to samo, przegapią część „-v”.
CamHart

8

Linux

Aby zainstalować inną wersję Ruby, sprawdź najnowszą wersję pakietu, korzystając z aptponiższych instrukcji :

$ 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 zainstaluj:

$ sudo apt-get install ruby=1:1.9.3

Aby sprawdzić aktualną wersję, uruchom:

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

Jeśli wersja jest nadal stara, możesz spróbować zmienić wersję na nową za pomocą menedżera wersji Ruby ( rvm) poprzez:

rvm 1.9.3

Uwaga: Możesz go poprzedzić, sudojeśli rvmzostał zainstalowany globalnie. Lub uruchom, /usr/local/rvm/scripts/rvmjeśli twoje polecenie rvmnie jest w twojej globalnej PATH. Jeśli proces instalacji rvm nie powiódł się, zobacz sekcję dotyczącą rozwiązywania problemów.


Rozwiązywanie problemów:

  • Jeśli nadal masz starą wersję, możesz spróbować zainstalować rvm (menedżer wersji Ruby) 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. 

    następnie, jeśli jest zainstalowany lokalnie (tylko dla bieżącego użytkownika), załaduj rvm poprzez:

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

    jeśli globalnie (dla wszystkich użytkowników), to:

    sudo bash -c "source /usr/local/rvm/scripts/rvm; rvm 1.9.3"
  • jeśli nadal masz problem z nową wersją Ruby, spróbuj zainstalować ją 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 chcesz zainstalować niektóre klejnoty na całym świecie i masz już zainstalowany RVM, możesz spróbować:

    rvmsudo gem install [gemname]

    zamiast:

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

Uwaga: Preferowane jest NIE używanie sudo do pracy z klejnotami RVM. Kiedy wykonujesz sudo, uruchamiasz polecenia jako root, inny użytkownik w innej powłoce, a zatem cała konfiguracja, którą wykonał dla ciebie RVM, jest ignorowana, podczas gdy polecenie działa w sudo (takie jak GEM_HOME, itp ...). Powtórzmy więc, że gdy tylko „sudo” uruchomisz jako użytkownik systemu root, który wyczyści twoje środowisko, a także wszelkie utworzone przez niego pliki nie będą mogły być modyfikowane przez użytkownika i spowodują dziwne rzeczy.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.