RVM: określ wersję ruby do użycia
Wiem, jak używać RVM, ale teraz mam dziwny problem, którego nie rozumiem.
Oto prosta historia (używam Ubuntu):
Stworzyłem projekt Rails, reżyserem tego projektu jest " księgarnia/".
Przechodzę do katalogu projektu przez cd bookstore
i wpisuję polecenie rvm list
w następujący sposób:
bookstore/$ rvm list
rvm rubies
ruby-1.9.2-p136 [ i386 ]
ruby-1.8.7-p352 [ i386 ]
ruby-1.8.7-p330 [ i386 ]
ruby-1.8.6-p420 [ i386 ]
ruby-1.9.2-p290 [ i386 ]
Ponieważ nie widziałem znaku strzałki =>
, który ma wskazywać bieżącą wersję ruby w użyciu, więc określam wersję ruby za pomocą następujące polecenie RVM:
bookstore/$ rvm use ruby-1.9.2-p290
Using /home/usr/.rvm/gems/ruby-1.9.2-p290
Teraz, jeśli rvm list
widzę, że mój projekt używa ruby v1.9.2 :
bookstore/$ rvm list
rvm rubies
ruby-1.9.2-p136 [ i386 ]
ruby-1.8.7-p352 [ i386 ]
ruby-1.8.7-p330 [ i386 ]
ruby-1.8.6-p420 [ i386 ]
=> ruby-1.9.2-p290 [ i386 ]
W tym momencie Wszystko działa dobrze!
Ale , jeśli teraz otwieram nowe okno terminala na Ubuntu, i cd
do katalogu projektu i ponownie uruchamiam komendę rvm list
, mam:
bookstore/$ rvm list
rvm rubies
ruby-1.9.2-p136 [ i386 ]
ruby-1.8.7-p352 [ i386 ]
ruby-1.8.7-p330 [ i386 ]
ruby-1.8.6-p420 [ i386 ]
ruby-1.9.2-p290 [ i386 ]
Gdzie jest =>
aby wskazać wersję ruby, którą wcześniej podałem? dlaczego znowu muszę podać ruby wersja?
Dzieje się to zawsze, gdy otwieram nowe okno terminala . Jak sprawić, by mój projekt "zapamiętał" podaną przeze mnie wersję ruby?
2 answers
Dave ma rację, powinieneś ustawić wartość domyślną. Ale także przyjrzyj się definiowaniu .rvmrc
plik na podstawie projektu lub na maszynę. Używam specyficznych dla projektu plików rvmrc, więc mogę używać różnych rubinów i gemsetów dla każdego projektu, a zmiana w katalogu automatycznie przełącza się na Ruby/gemset tego projektu.
Na przykład, mój rvmrc dla projektu strony firmowej:
brett@bender:~/Sites/bearded/bearded(master)$ cat .rvmrc
rvm 1.9.3@bearded
Edit: dla jasności, aby rozwiązać problem używając pliku rvmrc, wykonaj poniżej (zakładając, że już zainstalowałeś żądaną wersję ruby i utworzyłeś gemset dla klejnotów tego projektu):
- Utwórz plik w katalogu
bookstore/
o nazwie.rvmrc
(w ulubionym edytorze) - dodaj
rvm ruby-1.9.2-p290
do pliku i zapisz go (możesz użyćrvm ruby-1.9.2-p290@gemset_name
, Jeśli masz gemset, który chcesz ustawić domyślnie) - zmień katalog z katalogu księgarni, a następnie zmień go z powrotem. RVM powinien zapytać, czy chcesz mu zaufać .plik rvmrc (tak)
- RVM powinien był automatycznie przełączyć aktywne ruby i gemset na te określone w pliku rvmrc dla tego projektu.
Zauważ również, że jeśli twój RVM jest starszy niż Wersja 1.8.0, musisz włączyć obsługę plików rvmrc(wersje 1.8.0 + mają ją domyślnie włączoną). Link na górze mojego pytania zawiera instrukcje, jeśli jesteś tak skłonny.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-18 17:27:08
Musisz ustawić wartość domyślną.
rvm --default 1.9.2-p290 # Or whichever.
Nowa powłoka jest nowym środowiskiem; nie dziedziczy (normalnie) z już otwartych terminali
Dla ustawień poszczególnych projektów, użyj pliku .rvmrc
w katalogu głównym projektu, na przykład:
rvm --create gemset use 1.9.2-p0@my_project
--create
utworzy gemset, jeśli jeszcze nie istnieje, przydatne, jeśli ty lub inni pracujecie nad tym samym projektem na różnych maszynach.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-18 17:40:26