In message <868x62huhe.knu / iDaemons.org>
	on Wed, 17 Oct 2007 20:05:14 +0900,
	"Akinori MUSHA" <knu / iDaemons.org> wrote:
>  Rubygems は、基本的に他のパッケージシステムから包みやすい作り
> だと思います。具体的には以下のような性質からです。
私はgemでインストールされるときの各処理段階を完全に理解していません。

pkgsrcの方では、".gem"というサフィックスのファイルは既知のアーカイブ・
ファイルとして展開できるようになっています。( .tar.gz や .zip と一緒。)

但し、展開するだけで、それ以降の処理をgemコマンドに頼っているケースは
なかったと思います。

> - gem は prefix 等に依存しない。#!行の改変機能も備えている。
おぉ、そうだったのか。

> - gem の install はファイルの展開と配置のみで、ファイルの改変や
>   上書き等が発生しない。uninstall は install されたファイルの削除
>   のみ。(抜き差しが対称で、順番にも依らない)
> 
> - これにより、たとえば gem コマンドを使わずにパッケージシステムで
>   ファイルを展開・削除することも可能。
なるほど。

>  一方、問題もいくつかあります。
> 
> - ユーザが勝手に gem を install/update 等するとパッケージシステム
>   との整合性が崩れる。
> 
> - ファイルにパッチを当てるのが少々難儀。gem のインストール後に
>   改変するのでは gem pristine で戻ってしまうし、 gem を展開して
>   改変後に再パッケージしてインストール、というのは将来的に署名が
>   導入された場合にどうかという問題がある。
これは頭痛いですねぇ。

pkgsrc方面ではstaging installと言って、作業用のディレクトリ以下に一旦
インストールして、そこからパッケージを作成するという方法を取ることもで
きるような方法が進められています。OpenBSDのportsも、似たような方法を取っ
ていたと思います。

要はgemだけで閉じずに、ファイルの展開、インストールといった段階毎に使
えている限りは、パッケージ・システムの方で何とかできるのではないでしょ
うか。

>  FreeBSD ports のスタンスはそんな感じです。すでに rubygem-* と
> いうパッケージが山のようにあって、特にギミックなしでありのままに
> 管理しています。
後で参考にさせて貰います。:-)

-- 
神戸 隆博 / Takahiro Kambe