1

RVMをインストールしたところ、cdコマンドに数秒余分にかかっているようですが、なぜこれが発生するのですか?これを修正する方法はありますか?

4

2 に答える 2

4

これは、RVMの0.1.39以降のバージョンで解決されています。この動作は、プロジェクトディレクトリツリーに初めて入るときにのみ.rvmrcファイルをソースするようになりました。そのディレクトリツリー内の後続のCDは、.rvmrcファイルをソースしません。プロジェクトのディレクトリツリーに頻繁に出入りする場合は、複数の端末を使用することをお勧めします:)

これの副次的な利点の1つは、gemset内のすべてのgemが最新であることを確認するなど、より時間のかかるアクションを.rvmrcに配置して、cdするたびに時間を費やすことなくプロジェクトを最新の状態に保つことができることです。

rvmの最新バージョンを取得するには、次のコマンドを実行します。rvm update --head

これがインストールされると、すべての新しいシェルの動作が改善されます。閉じたくない既存のシェルの場合は、「rvmreload」を実行して新しい動作を提供できます。

乾杯、-デニス

于 2010-07-17T18:44:27.287 に答える
2

これは、操作をインターセプトするファイルをソースするために発生しますcd

prompt:$ cat ~/.rvm/scripts/cd
#!/usr/bin/env bash

# Source a .rvmrc file in a directory after changing to it, if it exists.
 cd() {
   builtin cd "$@"
   if [[ "$rvm_project_rvmrc" != 0 ]] ; then
     local cwd ; cwd=$(pwd)
     while : ; do
       if [[ -z "$cwd" ]] || [[ "$HOME" = "$cwd" ]] || [[ "/" = "$cwd" ]] ; then
         if [[ "$rvm_project_rvmrc_default" != 0 ]] ; then
           rvm default 1>/dev/null 2>&1
         fi
         break
       else
         if [[ -f "$cwd/.rvmrc" ]] ; then
           source "$cwd/.rvmrc"
           break
         else
           cwd=$(dirname "$cwd")
         fi
       fi
     done
   fi
 }

このファイルは、変更先のディレクトリで.rvmrcファイルをチェックし、環境をセットアップします。そうすれば、dirAをruby1.8で実行し、dirBをruby1.9で実行することができます。

この便利さをなくすことができれば、このファイルをコメントアウトして、ディレクトリの切り替えを遅くすることができます。

または、キャッシュを実行するパッチを提供して、これを高速化することもできます。

于 2009-12-31T00:01:14.383 に答える