Linuxシステムにおいては、たいていパッケージ管理システム経由で、すべてのインストール済みソフトウェアを管理する。たとえばDebianおよびUbuntuのAPT(リンク)もしくはRedHatのRPM(リンク)のような具合である。その一方で、多くのプログラミング言語は、 RubyのGemsやPythonのEggsのようなソフトウェアをインストールしたりアップデートしたりするための独自のツールセットを装備している。 ソフトウェアデベロッパであるDiego Petteno氏が以下のように詳細に(リンク)説明している(リンク)。確実にこれは、パッケージマネージャのサービスを提供しないシステムを稼動することの意味を成すが、 またLinuxシステム上におけるさまざまな不都合の原因となる。なぜなら「システムの標準化パッケージマネージャから制御を奪う」からである。
Ruby Enterprise EditionおよびPhusion Passenger(別名、mod_rails)を支援している企業である、Phusion(リンク)は、たいていのGemに対しAPTリポジトリを提供すること で、行き詰ったシステム管理者にソリューションを提供する。たとえばRMagickのようなGemをインストールすることは、apt-get install librmagick-rubyをタイプするくらい単純であり、libmagick10のようなすべての依存性と一緒にインストールされる。
現在DebGemは、公開されている無償のベータであるが、パッケージが十分な質を確保すれば有償になる(リンク)計画がある。PhusionのHongli Lai氏およびNinh Bui氏にインタビューし、DebGemの動作方法について聞いた。
一部プロセスが自動化されていると言える。われわれはプログラマなので、これは驚きにはあたらない。自動化された変換システムを記述するには、かなり大変である。しかしながら、すべてのあらゆるものが自動化可能というわけではない(すべてのgemが、明確に変換されるわけではない)。そのため、手で例外を指定する必要がある。これらの例外のテスト同様に発見もまた、手動で実行される。われわれは、仮想マシンという名の軍隊で身を固めている。さまざまな分散やプラットフォームでコンパイルしたり、テストするためである。非常に多くのGem(約25,000)があるので、複数のマシンで並行して処理をおこなったとしても、変換プロセスが完了するには数時間を要する。結果のパッケージをサーバへアップロードするには、数時間かかる。全般的に見て、それはつまらないことではなく、時間がかかる上に、定期的にメンテナンスをする必要がある。
他のパッケージマネージャをサポートする計画はあるか?
現在、他のパッケージ管理システムをサポートする計画はないが、それに対する需要が高まれば再検討するであろう。
DebGemおよびRuby Enterprise Edition間にはなんらかの関係があるのか?
DebGemは、Ruby Enterprise Editionと何の関係もない。しかし、われわれの長期計画の1つには、REEに対してDebGemパッケージをコンパイルすることがある。これが、つまらないことではない理由はさまざまある。そういうわけで、われわれはまだおこなっていない。
そういうわけで、DebGemが根本問題に対するソリューションではないのだが、可能性のある次善策のようであるし、管理者を満足させるかもしれない。詳しくは、DebGemのWebサイト(リンク)にアクセスするか、よくある質問(リンク)を参照のこと。