CentOS5.3でgit1.6.5.1をビルドした
RPMForgeにあるRPMは古いし、ドキュメントも入ってないので手動でビルドしてみることに。
http://git-scm.com/download
に公式のRPMがあることを知ったけど、1.6系のような新しいバージョンはFedora用のRPMでライブラリの依存が面倒くさいことになってたので使わないことに。
で、ふつうにソースを拾ってきてビルドしてみたんだけど、これが思ったより大変だったのでメモ。
■perl Makefile.PLのPREFIX指定がコケる
./configure --prefix=/opt/git && make
したら
/usr/bin/perl Makefile.PL PREFIX='/opt/git' Only one of PREFIX or INSTALL_BASE can be given. Not both.
とエラー。prefixの指定を外してもperl Makefile.PLがPREFIXを指定しようとして、INSTALL_BASEとぶつかる。
m-takagiから「とりあえずINSTALL見れ(意訳)」と言われたので確認してみるも、結果は変わらず。ただ、makeの引数がよく分かったのは収穫。というか、いきなり何も考えずに./configureとかするのはいい加減やめよう。
エラーメッセージでググっても有用な情報が無くて参ってたんだけど、ふと思い至ったのが、local::libの設定。PERL_MM_OPTにINSTALL_BASEが設定されていて、それがぶつかってたらしい。なので、
PERL_MM_OPT='' make prefix=/opt/git
と書いて解決。これはgit特有の問題じゃなくて、local::lib使ってると時々ありそうだから覚えておこう。
■asciidocがコケる
INSTALLの内容に従って
PERL_MM_OPT='' make prefix=/opt/git all doc info
でmakeすると
ASCIIDOC git-filter-branch.html ERROR: unsafe: include file: /etc/asciidoc/./stylesheets/xhtml11.css ERROR: unsafe: include file: /etc/asciidoc/./stylesheets/xhtml11-manpage.css
で終了。これは/etc/asciidoc/stylesheetsがsymlinkなのが問題らしい。asciidoc --unsafeでsafe modeをoffにすればこのエラーを回避できるらしいので、Documentation/MakefileのASCIIDOCの項目を
ASCIIDOC=asciidoc --unsafe
とオプション付きに変更して解決。
■xmltoがコケる
今度はこんなエラーに遭遇。
XMLTO git-filter-branch.1 xmlto: input does not validate (status 1) /home/ryo/src/git-1.6.5.1/Documentation/git-filter-branch.xml:444: parser error : PCDATA invalid Char value 7 Clone it with <literal>git clone +++0+++</literal>. The clone ^ /home/ryo/src/git-1.6.5.1/Documentation/git-filter-branch.xml:444: parser error : PCDATA invalid Char value 7 Clone it with <literal>git clone +++0+++</literal>. The clone ^
力業で押さえ込むpatchを見付けて、もうこれでいいやと思ったので、手動で該当部分の「+++」を消して解決。
これで、CentOS5.3(x86_64)で無事にgit1.6.5.1が動作しました。まだ入れたばっかりだから、本当にちゃんと動くかまでチェック出来てないけど。