[#45318] Windows コマンドプロンプトで UTF-8を出力するには — Yuumi Yoshida <yuumi3@...>

おつかれさまです、 Yuumi3です。

11 messages 2008/08/08

[ruby-list:45449] やっぱりrubygemの仕組みがいまいち分かりません

From: Akira Hayakawa <ruby@...>
Date: 2008-08-31 03:45:31 UTC
List: ruby-list #45449
初期条件として、
私のシステムには
/usr/local/jruby以下、bin/gem, bin/jrubyなどが入っていました。
この段階で$which gemとすると
/usr/local/jruby/bin/gem
と表示されました。
CRubyについては、/usr/local/srcに以前に報告したように、svnで落として、
1.8.7を/usr/localをprefixとしてインストールしました。

今、私は、
http://rubyforge.org/frs/?group_id=126
ここより、rubygem-1.2.0.zipをダウンロードし、/usr/localに展開しました。

ディレクトリの構成は
akira@akira-desktop:/usr/local/rubygems-1.2.0$ ls /usr/local
bin  eclipse  etc  games  include  jruby  jude_community  lib  man  rubygems-1.2.0  sbin  share  src

私は、rubygemをインストールすべく、rubygemのディレクトリに移り、
$sudo ruby setup.rb
を実行しました。インストールは成功し、/usr/local/bin/gemにgemというバイナリがインストールされました。
ちなみに最初にインストールした時にzlibがないというエラーメッセージが出たので、
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/43256
を参考にして解決しました。

ここでwhich gemとすると、
akira@akira-desktop:/usr/local/rubygems-1.2.0$ which gem
/usr/local/bin/gem

と表示されてしまいました。

質問は以下です。
1)ruby setup.rbは何の意味があるのですか?
2)ここでjruby setup.rbとすると何か違う結果になったのでしょうか?
3)gemがシステム中に2つ存在する意味はありますか?
4)

ロードパスを調べると、

akira@akira-desktop:/usr/local/rubygems-1.2.0$ ruby -e 'puts $:'
/usr/local/lib/ruby/site_ruby/1.8
/usr/local/lib/ruby/site_ruby/1.8/i686-linux
/usr/local/lib/ruby/site_ruby
/usr/local/lib/ruby/vendor_ruby/1.8
/usr/local/lib/ruby/vendor_ruby/1.8/i686-linux
/usr/local/lib/ruby/vendor_ruby
/usr/local/lib/ruby/1.8
/usr/local/lib/ruby/1.8/i686-linux
.
akira@akira-desktop:/usr/local/rubygems-1.2.0$ jruby -e 'puts $:'
/usr/local/jruby/lib/ruby/site_ruby/1.8
/usr/local/jruby/lib/ruby/site_ruby
/usr/local/jruby/lib/ruby/1.8
/usr/local/jruby/lib/ruby/1.8/java
lib/ruby/1.8

と表示されます。

この状態で、
$sudo ruby -S gem install <package_name>
とする時と、
$sudo jruby -S gem install <package_name>
とする場合にgemは何をしているのでしょうか?

この状態で単に
$sudo gem install ruby-debug-base --include-dependencies
とすると、rubyのロードパスの方のgemsディレクトリに入ったのですが、
以前はgemとするとjrubyのロードパスの方に入れていたgemというコマンドがなぜ急にCRubyの方に肩入れするようになったのでしょうか?

5)rubygemをダウンロードせずに、jrubyに付属のgemコマンドを利用して、CRubyのgemsディレクトリにgemを入れていく方法はあったのでしょうか?
初期条件の状態で、Eclipseにて、CRubyをインタプリタとして使おうとすると、
「rubygemがありません」という旨のメッセージがあったのですが、
あるrubyインタプリタが「あるgemコマンドを使い、自分のロードパスにgemを引っ張ってこれる状態にある」ということを表明する為のフラグが存在するのでしょうか?

質問が多くてすいません^^:
gemは私にとってとても奇妙なシステムですが、同時にとても魅力的なシステムなので使いたいのです。
使いたいのですが、このレベルまで理解出来ないシステムだと何が起こるか分からないので、詳しく知っておきたいです。

-- 
Akira Hayakawa <ruby@i-mail.jp>

In This Thread

Prev Next