RVM和Gemfile - 并不总是加载正确的ruby,只有'cd ..& cd myproject'

时间:2014-02-12 10:43:46

标签: bash rvm zshrc iterm2

  

TL; DR:每次打开新的标签时,都会恢复为默认版本,它不会使用Gemfile ruby​​版本

我的Gemfile有

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

我使用rvm 1.25.14。

RVM是智能的,并且在gemfile中读取ruby版本,除了这个边缘情况

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

但cmd + t,创建一个新标签,留在那个指南,

$ 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。谢谢你的帮助!

2 个答案:

答案 0 :(得分:0)

这应该是shell和终端不可知的(遗憾的是我无法在iterm2上测试它,因为我没有任何Mac机器):

cd ${PWD}添加到.zshrc,这会强制RVM加载当前的gemset。

答案 1 :(得分:-1)

我似乎对于本地开放终端不加载其脚本。将代码添加到的末尾,然后应该:

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