RVM: укажите версию ruby ​​для использования - PullRequest
19 голосов
/ 18 ноября 2011

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

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

Я создал проект Rails, директория этого проекта - "bookstore /".

"

Я иду в каталог проекта по 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 ]

Поскольку я не видел знак стрелки =>, который должен указывать на текущую используемую версию ruby, поэтому я указываю версию ruby ​​с помощью следующей команды 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 ]

Где находится => для обозначения версии ruby, которую я указывал ранее? Зачем мне снова указывать версию ruby?

Это происходит всегда, когда я открываю новое окно терминала . Как заставить мой проект «запомнить» указанную мной версию ruby?

Ответы [ 2 ]

28 голосов
/ 18 ноября 2011

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

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

brett@bender:~/Sites/bearded/bearded(master)$ cat .rvmrc 
rvm 1.9.3@bearded

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

  1. Создать файл в bookstore/ каталоге с именем .rvmrc (в вашем любимом редакторе)
  2. Добавьте rvm ruby-1.9.2-p290 в файл и сохраните его (вы можете использовать rvm ruby-1.9.2-p290@gemset_name, если у вас есть гемсет, который вы хотите использовать по умолчанию)
  3. Измените каталог из каталога вашего книжного магазина, затем вернитесь в него.
  4. RVM должен спросить вас, хотите ли вы доверять этому файлу .rvmrc (да)
  5. RVM должен был автоматически переключать ваши активные ruby ​​и gemset на те, которые указаны в вашем файле rvmrc для этого проекта.

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

8 голосов
/ 18 ноября 2011

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

rvm --default 1.9.2-p290  # Or whichever.

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

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

rvm --create gemset use 1.9.2-p0@my_project

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

...