From: Daigo Moriwaki Date: 2005-09-28T11:40:39+09:00 Subject: [ruby-dev:27344] Re: RubyGemsとOS platformとの関係 森脇です。 Takahiro Kambe wrote: >>>RubyGems原理派は、DEBやRPMがgemをラップ(DEB内にgemを入れて、DEBのインス >>>トール時にrubygemでgemをインストール)すればそれで事足りて、それがRuby >>>ユーザにとって最良だから、そうすべきで、それ以外のやり方はすべきでないと >>>言っている。 >>> >>> >>このやり方だけだとバイナリパッケージの利点の一つである >>コンパイル済みというのが無くなってしまって >>うれしくなくなる人がいそうな気がします。 >> >> >同感です。 > > precompiled binary用RubyGemsもあるようです。 >>あとgemの依存関係に従って、debやrpmのインストール中に >>他のgemを取ってきてコンパイルしてっていうのが行われるのは >>割と気持ち悪いことなんじゃないかと思います。 >> >> >独自に依存関係を持つのが悪いとは言えませんが、あまりにRubyGemsで閉じて >しまうのはどうかと思います。 > > こうしたいのだと思います。 A.gem depends on B.gem があったとき、 lib-a-rubygem.deb depends on lib-b-rubygem.deb という依存関係を持つnative packageを作れということだと思います。lib-a- rubygem.debのインストール時にB.gemを取ってくるのではなく。 >pkgsrc/portsの場合だと、 > >1. 配布ファイルの取得 >2. 配布ファイルの展開 >3. 必要なパッチの適用 >4. configure的コンパイル作業等の前の設定 >5. コンパイル作業等の実行 > > snip >6. インストール >7. (オプショナルな)バイナリ・パッケージの作成 > > snip >ちなみにperlモジュールの場合は、 > >o 4.や5.のあたりの枠組みが Makfile.PL という形でカッチリしています。 > (Module::Buildというのが加わるかもしれませんが。) > >o インストールされたファイルの一覧を .packlist という形で残しくれます。 > > DEBを作る手法としていろいろ手段がありますが、次の案はそのひとつです。 o upstreamのソースツリーを持ってくる。 o upstreamでは、Rakeなどで、gemを生成するscriptがあるはず。 o Debianへのインストールに合うように、そのscriptをいじる。 o debian/rules内で、gemをビルドして、そのgemをrubygemsでインストール。 ただし、RubyGems原理派(適当な用語が見付からずにすみません。すでにレッテ ル色が出ているので、ちょっとずるいのですが)は、これも否定的で、 DEBパッ ケージの中にgemを入れれば済むと主張しているようです。このように、 Platform packaging systemの事情を全否定しているので、フレームになってい ます。ただし、RubyGems原理派が提案しているユーザビリティ向上項目には、納 得する点が多いです。その実現方法で議論がまとまりません。 参考 http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-core/5882 http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-core/5944 では。 -- Daigo Moriwaki beatles_at_sgtpepper_dot_net