Jak zainstalować konkretną wersję rubinu?

884

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

mjs
źródło

Odpowiedzi:

1157

Użyj -vflagi:

$ gem install fog -v 1.8
mjs
źródło
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
schmijos
źródło
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

Emjey
źródło
80

dla Ruby 1.9+ użyj dwukropka ..

gem install sinatra:1.4.4 prawn:0.13.0
Kokizzu
źródło
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
thelostspore
źródło
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.

kenorb
źródło