Korzystając z narzędzia wiersza polecenia, można zainstalować konkretną wersję klejnotu?Jak zainstalować konkretną wersję rubinowego klejnotu?
Odpowiedz
Użyj -v
flag
$ gem install fog -v 1.8
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
Ś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
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.
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
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. –
Co oznacza skrót wersji "~>"? – Dragas
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
Dla instalacji gem install gemname -v versionnumber
do dezinstalacji gem uninstall gemname -v versionnumber
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
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
@bbood 'rake _10.1.1_ ...' powinno działać, dla każdego, kto chce wiedzieć :) –