8

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 を無視してデフォルトに移行します。みんな助けてくれてありがとう!

4

3 に答える 3

0

これは、シェルとターミナルに依存しないはずです (残念ながら、私は Mac マシンを持っていないため、iterm2 でテストすることはできません):

に追加cd ${PWD}する.zshrcと、RVM が現在の gemset を強制的にロードするはずです。

于 2014-02-23T15:30:24.913 に答える
0

RVM スクリプトの後に追加するだけcd .です。.zlogin

于 2021-08-23T07:31:12.260 に答える
-1

ローカルで開いている端末の場合、 はそのスクリプトをロードしないようです。コードをの最後に追加すると、次のようになります。

if [ -z "$MY_RUBY_HOME" ]; then
   [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
fi
于 2014-02-12T11:04:34.073 に答える