ものがたり(旧)

atsushieno.hatenablog.com に続く

パッケージマネージャの懊悩

って、こりは単なる冗談じゃないんだって。何でそんな話が出てきたかというと、ちょうど今「monoはパッケージが多すぎて複雑だから、monoとmono-develだけにしたい」という話がMiguelから出ていて、依存パッケージの問題があるからそれはやりたくない、というのがパッケージやってる仲間の立場なのだ。

一方、なぜパッケージを2つだけにしたいかというと…いや、まあもちろん「簡単だから」ということもあるけど…パッケージングの問題は、実際にはインストール時ではなく後からやってくることが多い。例えばmono-remoting-blah.rpmをインストールするのを忘れたとしよう。これでもインストールは正常に動作する。でもその後、System.Runtime.Remoting.dllを使おうとすると、そんな型は見つからないと実行時*1言われてしまうのだ。これは、パッケージが(現状)たくさん分割されているから生じる問題だ。

もちろん、それぞれの問題は簡単に解決できる。でも、問題の発生の仕方は、それぞれのユーザーによって変わってくるので、質問に答える方も、どのパッケージがインストールされているかを、確認しなければならなかったりする。これはけっこう面倒なことだ。

でも、パッケージを全部まとめたら、使いもしないSystem.DrawingのためにXまわりを入れたりしなければならなくなる…といっても、System.Drawingは実際にはSystem.Webなんかでも参照されていたりするので、(現状では)結局は必要になってしまう。この辺は、結局再編することになるんだろう、とは思う。

*1:利用時.mcsでのコンパイル時を含む