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