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?

Author: lucapette, 2011-11-18

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):

  1. Utwórz plik w katalogu bookstore/ o nazwie .rvmrc (w ulubionym edytorze)
  2. 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)
  3. zmień katalog z katalogu księgarni, a następnie zmień go z powrotem.
  4. RVM powinien zapytać, czy chcesz mu zaufać .plik rvmrc (tak)
  5. 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.

 28
Author: Brett Bender,
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.

 8
Author: Dave Newton,
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