2009年5月12日火曜日

Optionsの怪

FreeBSD portsからアプリケーションをインストールしようとして、時折困ることがあります。というのは『make時のオプションの意味がわからない』こと。インストールしようとするアプリケーションの知識が中途半端な時『何故このオプションがあるのだろう?』というのが分からなかったりするのです。

そんな状態でports使ってアプリケーション入れたら危険だろう、とか、いろいろあることは分かっているのですが……

例えばsubversionだとこんな感じ。

│ Options for subversion 1.6.2  │
│ ┌────────────────────────────────┐ │
│ │ [ ] MOD_DAV_SVN mod_dav_svn module for Apache 2.X │ │
│ │ [ ] APACHE2_APR Use APR from Apache 2.X │ │
│ │ [ ] MOD_DONTDOTHAT mod_dontdothat for Apache 2.X │ │
│ │ [X] NEON WebDAV/Delta-V repo access module (neon) │ │
│ │ [ ] SERF WebDAV/Delta-V repo access module (serf) │ │
│ │ [ ] SASL SASL2 authorization support │ │
│ │ [X] BDB db4 repository backend │ │
│ │ [ ] ASVN Build and install Archive SVN (asvn) │ │
│ │ [ ] MAINTAINER_DEBUG Build debug version │ │
│ │ [ ] SVNSERVE_WRAPPER Enable svnserve wrapper │ │
│ │ [ ] STATIC Build static version (no shared libs) │ │
│ │ [X] BOOK Install the Subversion Book │ │

これ"だけ"を見て全部のオプションが何を意図していて、何故必要か分かりますか?

こういうときは、Makefile をきちんと読んで、オプションの有無でmakeがどのような動きをするのかを追いかける、というのが、多分正しい手順なんだろうと思います。が、時々これがきついなあと思うことがあるのです。歳だから?とか言わない。

make configの画面だけ切り出して、wikiみたいなところでオプションの解説してくれるようなサービスとかがあったら面白いのかなあ。どうなのかなあ。portsメンテナさんの仕事が増えるだけでしょうか。

ぱっと見でオプションが多くなる理由は、多分なんですが、
・関連するアプリと連携を取る必要があると増える
・OS固有の環境に合わせようとすると増える
・portsメンテナのサービス精神で増える?
みたいなところがあるのかな、と思っています。このあたり、他のOSではどういうふうに対処してるんでしょう。binary packageになってしまっているから、この辺の問題はあまり見えなくなっちゃってるんでしょうかね。

たまにはこういう雑感を書いてみるのもいいかと思い、メモしてみる次第です。

0 件のコメント: