Подтвердить что ты не робот

RVM: укажите версию Ruby для использования

Я знаю, как использовать RVM, но теперь у меня есть странная проблема, которую я не понимаю, почему.

Вот простая история (я использую Ubuntu):

Я создал проект Rails, директором этого проекта является "книжный магазин /".

Я перехожу в каталог проекта cd bookstore и введите команду rvm list следующим образом:

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 ]

Поскольку я не видел знака стрелки =>, который должен указывать текущую используемую рубиновую версию, поэтому я указываю рубиновую версию со следующей командой RVM:

bookstore/$ rvm use ruby-1.9.2-p290
Using /home/usr/.rvm/gems/ruby-1.9.2-p290

Теперь, если я rvm list, я вижу, что мой проект использует 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 ]

Все отлично работает на этом этапе!

Но, если теперь я откройте новое окно терминала на Ubuntu и cd в каталог проекта и снова запустите команду rvm list, я получил

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 ]

Где => указать рубиновую версию, указанную ранее? Почему мне снова нужно указать рубиновую версию?

Это всегда, когда я открываю новое окно терминала. Как мой проект "помнит" рубиновую версию, которую я указал?

4b9b3361

Ответ 1

Дейв прав, вы должны установить значение по умолчанию. Но также обратите внимание на определение файла .rvmrc для каждого проекта или для каждой машины. Я использую файлы rvmrc, специфичные для проекта, поэтому я могу использовать разные рубины и gemsets для каждого проекта, а изменение в каталог автоматически переключается на этот проект ruby ​​/gemset.

Например, мой проект rvmrc для сайта компании:

[email protected]:~/Sites/bearded/bearded(master)$ cat .rvmrc 
rvm [email protected]

Изменить: Чтобы объяснить вашу проблему с помощью файла rvmrc, выполните следующие действия (если вы уже установили нужную рубиновую версию и создали гемсет для этого проекта):

  • Создайте файл в каталоге bookstore/ с именем .rvmrc (в вашем любимом редакторе)
  • Добавьте rvm ruby-1.9.2-p290 в файл и сохраните его (вы можете использовать rvm [email protected]_name, если у вас есть gemset, который вы хотите по умолчанию)
  • Измените каталог из своего каталога в книжном магазине, затем верните его обратно.
  • RVM должен спросить вас, хотите ли вы доверять этому .rvmrc файлу (да)
  • RVM должен автоматически переключать ваш активный рубин и gemset на те, которые указаны в вашем файле rvmrc для этого проекта.

Также обратите внимание, что если ваш RVM старше версии 1.8.0, вам нужно включить поддержку файла rvmrc (версии 1.8.0+ включили его по умолчанию). Ссылка в верхней части моего вопроса содержит инструкции, если вы так склонны.

Ответ 2

Вам нужно установить значение по умолчанию.

rvm --default 1.9.2-p290  # Or whichever.

Новая оболочка - новая среда; он не будет (обычно) наследовать от уже открытых терминалов

Для параметров для каждого проекта используйте файл .rvmrc в корне вашего проекта, например:

rvm --create gemset use [email protected]_project

--create создаст gemset, если он еще не существует, удобно, если вы или другие люди работают над одним и тем же проектом на разных машинах.