3

プロジェクトごとに Ruby のバージョンを設定するのに rbenv を使いたいです。それ以外の場合は、デフォルトのシステム Ruby セットアップを他のすべてに使用したいと考えています。

私が抱えている問題は、 がrbenv version返されてもsystemgemコマンドがまだ rbenv shim ( .rbenv/shims/gem) を使用していることです。したがってgem environment、インストール ディレクトリは'/Library/Ruby/Gems/1.8'. むしろ残ってほしい~/.gem/。実行すると、まだそれがわかります/usr/bin/gem enviroment。rbenv shim gem がどこから設定を取得しているのかわかりません。

シェルでGEM_HOMEを変更して変更しようとしまし~/.gemrcたが、効果がありません。私は運が悪いので探し回っています。うまくいけば、ここの誰かが助けてくれるでしょう。rbenv gem shim が値を取得している場所へのポインタだけでも役立ちます。

ありがとう

4

1 に答える 1

5

rbenv shim は PATH のかなり高い位置にあるため、その目的は、現在選択されている Ruby バージョンが「システム」であっても、 、 などrubyの呼び出しをインターセプトすることです。gemそれについて心配する必要はありません。

これで、システム Ruby のデフォルトのインストール パスは常に/Library/Ruby/Gems/1.8. これが私のものRBENV_VERSION=system gem envです:

  - GEM PATHS:
     - /Library/Ruby/Gems/1.8
     - /Users/mislav/.gem/ruby/1.8
     - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8

ただし、使用しない場合 (使用sudoすべきでない場合)、gem installそのディレクトリへの書き込みアクセス権がなく、gem を次の書き込み可能なパスにインストールします~/.gem/ruby/1.8。それはあなたが望む動作のようです。

于 2013-04-05T20:48:54.057 に答える