web-dev-qa-db-ja.com

Ruby Mac OS X 10.6.8で手動でコンパイルされた場合のGEMはどこにありますか?

SnowLeopardでRuby 1.9.2を手動で作成しました。古いGEMファイルが見つかりません。現在、別のパスにあると思います。3つあります。質問:

  • 「古い」gemパスとは何ですか。ここでgem install sinatraシナトラの宝石を置きますか?
  • Ruby手動でビルドするときに設定される「新しい」gemパスとは何ですか?
  • Rubyが私の宝石を再び見つけるように変更するにはどうすればよいですか?
15
MrB

コマンドプロンプトでgem env(古いRuby installのgemコマンドを使用)を使用すると、次のようなものが表示されます。

> RubyGems Environment:
>   - RUBYGEMS VERSION: 1.3.6
>   - Ruby VERSION: 1.9.1 (2009-07-16 patchlevel 243) [i386-mingw32]
>   - INSTALLATION DIRECTORY: C:/Ruby19/lib/Ruby/gems/1.9.1
>   - Ruby EXECUTABLE: C:/Ruby19/bin/Ruby.exe
>   - EXECUTABLE DIRECTORY: C:/Ruby19/bin
>   - RUBYGEMS PLATFORMS:
>     - Ruby
>     - x86-mingw32
>   - GEM PATHS:
>      - C:/Ruby19/lib/Ruby/gems/1.9.1
>      - C:/Users/Username/.gem/Ruby/1.9.1
>   - GEM CONFIGURATION:
>      - :update_sources => true
>      - :verbose => true
>      - :benchmark => false
>      - :backtrace => false
>      - :bulk_threshold => 1000
>   - REMOTE SOURCES:
>      - http://rubygems.org/

(Windowsの場合... Snow Leopardも同様の形式になると思います)

GEMPATHSフィールドはここで興味深いものです。リストされているディレクトリに移動すると、cacheという名前のフォルダが表示されます。これには、その特定のディレクトリにインストールされているすべてのgemに対応する.gemファイルのリストが含まれます。これらのgemファイルのそれぞれでgem install *gemname*を呼び出すことができるはずです(newRuby installのgemコマンド)。

編集:GEMパスの代わりにインストールディレクトリを誤って参照しました。グレッグは、Rubygemsの特定のインストールによって知られている場所が複数あることを私に思い出させました。これらの場所はすべて、Rubyのインストールで使用されているgemをチェックする必要があります。

39
jason.rickman

gemコマンドはRuby 1.8.7に含まれているため、「古い」宝石はMacにバンドルされているRubyに関連しています。ユキヒョウ。 which Ruby/usr/bin/Rubyを示している場合、gem環境は次のようになっているはずです。

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

RVMを使用している場合は、可能性がありますsystem gemsetから gemをコピー RVMの管理下にあるものに。 RVMをすぐにインストールし、すべてのRubyインストールを処理させてから、システムのインストールを無視するため、これを試していません。

which Ruby/usr/local/bin/Rubyが表示されている場合、gem envコマンドは、ソースからコンパイルしたバージョンの変更されたパスを反映している必要があります。

私は興味があります[〜#〜]なぜ[〜#〜]RVMの場合、手動でビルドするのですか? はすべての 構成とインストール を処理するために利用可能であり、どこにものがあるか、そしてあなたがシステムにインストールされているバージョンを踏みにじったところです。

RVMがRubyバージョンをインストールすると、すべてが~/.rvmになり、Gemsもそこに適切に配置されます。 Rubyの各バージョンに関連して、 gemを管理 as gemsets として、即座に切り替えを行うことができます。または、インストールしたRubyの各バージョンでコマンド/プログラムを実行して、 rvm Ruby 'some command' を使用してテストすることもできます。

上記のgem env出力で、gemがディスク上の3つの別々の領域にあることに注意してください。 RVMの制御下で、それらはRVMのサンドボックスにあります。

- GEM PATHS:
   - /Users/greg/.rvm/gems/Ruby-1.9.2-p0
   - /Users/greg/.rvm/gems/Ruby-1.9.2-p0@global

それは私がそれらをバックアップすること、または私が望むならそれらを吹き飛ばすことは簡単です。

私はMacとLinuxボックスのソースからルビーをコンパイルしていました。今はRVMを使っています。手で行うよりもはるかに優れています。

8
the Tin Man

OSXでの標準のgemインストールパスは次のとおりです。

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/Ruby/gems/1.8/gems/
4
Ole Begemann