y_waiwaiの日記: さくらサーバで subversion 1.8.5 でビルドエラー 2
ある日あるとき、さくらサーバの SVN がアクセスできなくなった。
ああ、そういえばメールでなんか言ってたなあ、とメールを漁るとありました。
http://www.sakura.ad.jp/news/sakurainfo/newsentry.php?id=769
かなり前から告知のメールが来てたんだが、やっとこっちに順番が回ってきたもよう。容量が増えるのは大歓迎だが、問題なのが、サーバのリニューアル(?)で、OSも
OS : FreeBSD 7.1 32bit → FreeBSD 9.1 64bit
と変わったもよう。
まあ、これじゃあ動かなくなるわなあ、ってことで、ビルドしなおすことになりました。
で、せっかくだから最新版にしよう、とスケベ心を発揮したところからはなしがおかしくなります。
現時点での最新の subversion 1.8.5 を落としてきてビルドするが、これがまさかのビルドエラー。。
$HOME/local/lib/libaprutil-1.so: could not read symbols: File in wrong format
*** [subversion/libsvn_subr/libsvn_subr-1.la] Error code 1
いまいちワケワカランエラーメッセージ。。
ぐぐる先生に聞いてみても、あんまし情報がない。。
さんざすったもんだしたが、1.7 系でも同じエラーでビルドに失敗。最初に入れていた 1.6.15 はビルドが成功するようなので、当面これで行くこととしてこの日は就寝。
さて、日を改めまして、腰を落ち着けてビルドエラーの原因を探ろう、といってもFreeBSDなんかめったに触らないので、ぐぐる先生に聞きながらコマンドを調べます。
まあ、まずはエラーの原因である libaprutil-1.so を探っていくことにします。
% find . -name 'libaprutil*'
./local/lib/libaprutil-1.so
./local/lib/libaprutil-1.so.3
./local/lib/libaprutil-1.a
./local/lib/libaprutil-1.la
./local/src/svn/subversion-1.6.15/apr-util/.libs/libaprutil-1.so.3
./local/src/svn/subversion-1.6.15/apr-util/.libs/libaprutil-1.so
./local/src/svn/subversion-1.6.15/apr-util/.libs/libaprutil-1.a
./local/src/svn/subversion-1.6.15/apr-util/.libs/libaprutil-1.lai
./local/src/svn/subversion-1.6.15/apr-util/.libs/libaprutil-1.la
./local/src/svn/subversion-1.6.15/apr-util/.libs/libaprutil-1.so.3T
./local/src/svn/subversion-1.6.15/apr-util/libaprutil-1.la
./local/src/svn/subversion-1.6.15/apr-util/libaprutil.dsp
./local/src/svn/subversion-1.6.15/apr-util/libaprutil.rc
え?あれ?あるぢゃん、って、1.8.5 のソースも入れてるはずだけど、そっちに引っかからないのはなぜ??
と、謎が謎を呼ぶ展開に。。
もしかして、1.8.5 にはこいつのソースがなくて .so が生成されずにエラーになった? もしかしてもしかして、1.6.15 の環境そのままにして 1.8.5 をビルドしたらいけるんじゃ??
ということで、あえて make clean せずにそのまま 1.8.5 のビルドを行う、と、これが大成功!
って、上書きでホンマにちゃんとなってんのかい。。
% svnserve --version
svnserve, version 1.8.5 (r1542147)
compiled Feb 8 2014, 11:25:39 on x86_64-unknown-freebsd9.1
Copyright (C) 2013 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see http://subversion.apache.org/
The following repository back-end (FS) modules are available:
* fs_fs : Module for working with a plain file (FSFS) repository.
おお、ちゃんと1.8.5になってる。。
ということで、なんかウラワザっぽいビルド法だけど、今んトコちゃんと使えております。
はたしてこれでよかったのか、識者のツッコミをいただけるとありがたい。
何故、どいつもこいつもドキュメント読まないのか? (スコア:0)
とりあえず、tar玉展開したルートに出てくるINSTALLくらい読めよ。
libaprとlibapr-util、それにSQLiteとlibzは、Subversionのビルドに必須だろ?
躓く場所のあまりの低レベルっぷりに開いた口が塞がらんわ……
言うまでもないことだけど、svn://経由でなくhttp://経由で使うならSerfも要るし、https://も使うならOpenSSLも要る。
--enable-nlsでビルドするならgettextも必須だし、RybyやPython、Javaなんかのバインディングも要るなら、それらの言語の他にswigも要る。
そういった諸々の諸注意が書いてあるのがINSTALLだろ。configureする前にちゃんと読めよ。
そもそもFreeBSDだからどうとか全く関係ないじゃねえかよ……
つーか、それはもはやFreeBSDを普段使うとか使わないとかいう以前の問題。話にならない。
おまえの馬鹿さ加減故の問題をOSになすりつけるな。
Re:何故、どいつもこいつもドキュメント読まないのか? (スコア:1)
おお、鋭いツッコミ、ありがとうございます。
この件(さくらサーバのSVN)に関してはぐぐる先生頼みでお手軽にやって来たもので、厳しいお言葉、身に染み入ります。
さっそくINSTALL読んでみました。なんとなくわかりそーなきもします。(気もする程度かよ!)
これからもご指導よろしくおねがいいたしますです。
#自鯖のWindowsはVisualSVNでお手軽だったしなあ。。
ぐぐる頼みでお手軽にやって来た