2014-02-12 2 views
7

TL; DR: Каждый раз, когда я открываю новую вкладку , восходит к версии по умолчанию, это Безразлично» т использовать версию Gemfile рубиновогоРВМ и Gemfile - не всегда загружается правильный рубин, только тогда, когда «CD .. & CD MyProject»

Мой Gemfile имеет

source 'https://rubygems.org' 
ruby '2.0.0' 

и я использую RVM 1.25.14.

РВМ умен и читает версию рубина в Gemfile, для этого края случае

Doing

# NOTE: iterm2 
$ cd myproject 
$ ruby -v 
> ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-darwin12.5.0] 

но Cmd + T, за исключением, что создает новую вкладку, оставаясь в этом directoy,

$ pwd 
>../myproject 
$ ruby -v 
> ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-darwin12.3.0] 

ruby ​​1.9.3 является моим дефолтом, и это нормально. Что мне не хватает в моем bash (или .zshrc)? сделать эту работу?

#FILE .zshrc 
#...stuff 

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* 
PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting 

Использование cmd + d, разделяющее терминал по вертикали, имеет ту же проблему. rvm переходит в значение по умолчанию, игнорируя Gemfile. Спасибо, что помогли парням!

+0

У меня была такая же проблема, и я использую простой обходной путь: добавлен 'cd .' в конце' .bashrc' ('.zshrc' в вашем случае), и теперь он работает так, как должен, но я знайте, что это не настоящий ответ, так как он соответствует моим потребностям, я не тратил на него больше времени. – zrl3dx

+0

@ zrl3dx, пожалуйста, сделайте ответ из этого :) – oma

+0

@ zrl3dx это не сработало от меня. 'cd .' здесь ничего не делает. 'cd ..', за которым следуют' cd myproject' works ... – oma

ответ

-1

Кажется, что для локального открытого терминала не загружаются его скрипты. Добавьте код в конце , тогда следует:

if [ -z "$MY_RUBY_HOME" ]; then 
    [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 
fi 
+0

downvote из-за напыщенного и ложного утверждения. RVM * делает * использовать Gemfile ruby, если это предусмотрено, но у меня есть край, где он не работает. – oma

+0

@oma исправил ответ –

+0

работает ли это на вашем конце? Это уже работает от меня, когда 'cd'-ing в каталог, но не с новой вкладкой (без' cd'-ing выполнено). Я не вижу, что в вашем ответе имеет значение для [tag: .zshrc] в вопросе. – oma

0

Это должно быть оболочечным и терминально-агностик (к сожалению, я не могу проверить его на iterm2, так как у меня нет каких-либо машин Mac):

Добавить cd ${PWD} в ваш .zshrc, и это вынудит RVM загрузить текущий гемсет.

+0

Я наградил вас щедростью, хотя это был взлом и это не сработало;) 'pushd', а затем' popd' сделал то, что 'cd $ {PWD}' не мог сделать. Пожалуйста, добавьте это в свой ответ, и я буду отмечать его как «правильный». – oma