パッケージマネージャの懊悩
って、こりは単なる冗談じゃないんだって。何でそんな話が出てきたかというと、ちょうど今「monoはパッケージが多すぎて複雑だから、monoとmono-develだけにしたい」という話がMiguelから出ていて、依存パッケージの問題があるからそれはやりたくない、というのがパッケージやってる仲間の立場なのだ。
一方、なぜパッケージを2つだけにしたいかというと…いや、まあもちろん「簡単だから」ということもあるけど…パッケージングの問題は、実際にはインストール時ではなく後からやってくることが多い。例えばmono-remoting-blah.rpmをインストールするのを忘れたとしよう。これでもインストールは正常に動作する。でもその後、System.Runtime.Remoting.dllを使おうとすると、そんな型は見つからないと実行時*1に言われてしまうのだ。これは、パッケージが(現状)たくさん分割されているから生じる問題だ。
もちろん、それぞれの問題は簡単に解決できる。でも、問題の発生の仕方は、それぞれのユーザーによって変わってくるので、質問に答える方も、どのパッケージがインストールされているかを、確認しなければならなかったりする。これはけっこう面倒なことだ。
でも、パッケージを全部まとめたら、使いもしないSystem.DrawingのためにXまわりを入れたりしなければならなくなる…といっても、System.Drawingは実際にはSystem.Webなんかでも参照されていたりするので、(現状では)結局は必要になってしまう。この辺は、結局再編することになるんだろう、とは思う。