2015-06-02 3 views
0

Я нашел странное поведение моего RVM и не знаю, как с этим бороться.RVM необходимо записать в каталог, чтобы изменить gemset, совместимый с .ruby-version & .ruby-gemset

Похоже, что RVM не может автоматически изменяться, это гемсет согласно .ruby-version & .ruby-gemset, если я открываю терминал точно в корне проекта. Пожалуйста, ознакомьтесь с того, что я имею в виду

# open a terminal directly in terminal_ui directory, which contains .ruby-version & .ruby-gemset 

ls -a # ... .ruby-version .ruby-gemset 
rvm gemset list 
gemsets for ruby-2.2.1 (found in /home/epic/.rvm/gems/ruby-2.2.1) 
=> (default) 
    fasteria 
    global 
    terminal 
    terminal_ui 

# but if I cd to the top and then back again, my gemset will be 

cd ../ 
cd terminal_ui 
rvm gemset list 
gemsets for ruby-2.2.1 (found in /home/epic/.rvm/gems/ruby-2.2.1) 
    (default) 
    fasteria 
    global 
    terminal 
=> terminal_ui 

Полезная информация:

cat .ruby-version # => 2.2.1 
cat .ruby-gemset # => terminal_ui 
rvm -v # => rvm 1.26.11 

Я пытался rvm get stable, но без успеха

ответ

4

RVM использует несколько крючков для изменения версии рубиновый и gemsets на действия пользователя:

  • after_use
  • before_install
  • after_install
  • after_do (сработавшего после любых «делать» действий)
  • after_cd (Инициированной всякий раз, когда пользователь использует команду CD)

При открытии терминала только в папке проекта, вы не 't использовать команду, поэтому hook не вызывается. Но вы можете добавить следующую строку в файл .bashrc или .bash_profile (после РВМ связанных линий):

cd . 

Это заставит РВМ использовать свой крюк и установить правильную gemset. Подробнее о крючках: docs.

+0

Простой, как ад! Благодаря! – asiniy

+0

BTW, на некоторых ubuntus эта функциональность работает хорошо без каких-либо дополнений – asiniy

0

Вы можете использовать .rvmrc для изменения автоматически.

cd terminal_ui 
touch .rvmrc 
echo rvm use [email protected]_ui >> .rvmrc 
cd . 
+0

Спасибо за ответ, но '.rvmrc' является устаревшей версией того, что' .ruby-version' & '.rubgy-gemset' do – asiniy

Смежные вопросы