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 ]
Где =>
указать рубиновую версию, указанную ранее? Почему мне снова нужно указать рубиновую версию?
Это всегда, когда я открываю новое окно терминала. Как мой проект "помнит" рубиновую версию, которую я указал?
Ответы
Ответ 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, если он еще не существует, удобно, если вы или другие люди работают над одним и тем же проектом на разных машинах.