kumaryu日記
2004-11-16 インストール地獄
_ バージョン管理
Subversionは止めました。
インストールの面倒さに比べて期待したほどの物じゃなかった。
で、他に何かないかなーと見つけたのがmonotone。
分散型のバージョン管理システムって触ったこと無いから不安だったけど、ドキュメントを見て納得。一人一リポジトリね。 共有はリポジトリのsyncによって行うらしい。
いろいろ便利そうなのでインストールしようとしたんですけど。
OSX用のバイナリは無いので自前でビルド。gettextはともかくboostが必要なので入れる。これのインストールはドキュメント通りなので楽。
他にpopt。gnome.orgにあるっていうんだけど、見つからないのでググって入手。インストールも簡単。
gettextも、と思ったけど面倒なのでやめ。--disable-nlsをつけよう。
と思ったらlibintl.hがねぇとかでエラー。あん?--disable-nls付ければgettextはいらないんじゃ…?
まあfinkのapt-getでgettextが入ってたのでパスを通して再挑戦。うー、すげーコンパイル時間かかるな。多分boostの超変態的テンプレート群のコンパイルに時間がかかってるんだろう。
って、そしたらiconvとかlibintl関係のシンボルがundefined reference。 えー。
もう一度configureからやり直してみるに、どうもgettextの検出に失敗しているらしい。config.logを見ると確かにコンパイル失敗してる。っつーか明らかにこのソース絶対通らんだろう。う、うーん。さっぱりわからん。
ってか、finkにmonotoneあるじゃん。
ということでunstableからインストール。あれ?X11が必要だよん、とか言われる。はぁ?GUIなんて使わないぞ。
show-depsで見てもわからん。boostの依存関係を見るとpython23とかある。python23の依存関係を見るとtcltkとかある。tcltkの依存関係を見ると…X11か。
結局boostがpythonを要求するのが悪い。boostの中の大っ嫌いなライブラリ*1でこんな面倒なことになるなんて。
つーか、なんでboostがboostで一つのパッケージなんだよ。debianとかならライブラリごとに分かれてるじゃねぇか。
いや、python23がtcltkを要求するのもおかしいし。自分で普通にコンパイルすればtcltk無しのpythonが出来るだろう。
てことで、どうしよう。
…うへ。ML検索かけたらLDFLAGSに-liconv -lintlを追加で、CPPFLAGSに-D__unixを追加すりゃできるよ、だって。
つまり、そのままじゃOSXでビルドできないから手動で適当に胡麻化せということか。 いや、それ以外に特にスマートな解決方法が無いってなら別にいいんだけど。無いってことが知りたかったわけで。
あと、コンパイルに何時間もかかるのは-O0にすりゃいいらしい。最適化無しか。まあいいや。
*1 そもそもboostはC++の次期標準に入れたいライブラリのはずだったのに、そこにPythonライブラリがあるのは頭悪すぎ。