因為用的 VPS 沒有 subversion,所以得自己從原始碼建立。用慣了 apt ,要 ./configuremake 著實不習慣呢。

一般來說 configure/make 也輕鬆愉快,不過 subversion 相依到一些程式庫; 使用 subversion 內附的原始碼編譯會出一些問題 。主要的成因是 subversion source code distribution 裡的 libtool 和 neon 相關的程式庫不匹配所致,會在要連結 mod_dav_svn.so 的時候出錯 (libtool):

cd subversion/mod_dav_svn && /bin/sh /home/dlumpov/arc/subversion-1.2.0/libtool
...
libtool: link: only absolute run-paths are allowed
make: *** [subversion/mod_dav_svn/mod_dav_svn.la] Error 1

因此,建立 subversion 的過程稍微需要筆記一下。

基本上可以用這個 build script 來 configure/make subversion:

#!/bin/sh
PREFIX="/install/root"

OPTS=""
OPTS="${OPTS} --prefix=$PREFIX "
OPTS="${OPTS} --enable-shared "
OPTS="${OPTS} --enable-dso "
OPTS="${OPTS} --enable-dav "
OPTS="${OPTS} --enable-dav-fs "
OPTS="${OPTS} --with-swig=$PREFIX "
OPTS="${OPTS} --with-ssl "
OPTS="${OPTS} --with-pic "
OPTS="${OPTS} --with-zlib "
#OPTS="${OPTS} --with-apache=$MYSRC/httpd-2.0.54 "
OPTS="${OPTS} --with-apxs=$PREFIX/bin/apxs "
OPTS="${OPTS} --with-apr-util=$PREFIX/bin/apu-config "
OPTS="${OPTS} --with-apr=$PREFIX/bin/apr-config "
OPTS="${OPTS} --with-neon=$PREFIX "

./configure ${OPTS} > configure.log 2>&1

make > make.log 2>&1

$PREFIX 是我們要安裝的位置,到時候把 $PREFIX/bin 加到 $PATH 裡就可以用這些軟體了。 --with-apxs--with-apache 是互斥的選項; apxs 是 apache 裡用來取得模組與相關資訊的 Perl script,有了它就不能用 apache 的 source code。

不過 ,在實際 configure/make subversion 之前 ,我們要把相關的程式/程式庫建好 (make install), 別讓 subversion 用自己的

這個過程只有在系統上缺少 apr (0.9.6), apr-util (0.9.6), neon (0.24.7) 和 swig 的情況下才需要。噢,雖然很少有系統沒裝 iconv 的,但若真的沒有,也得自己來一下。

建 apr 的時候 configure --prefix 就好了,apr-util 則還得加上 --with-apr=$APR_PREFIX 。如果希望讓 subversion 支援 SSL,建 neon 的時候要加上 --with-ssl 。因為 subversion 有 Python 和 Perl binding,所以組態 swig 至少應該有 --with-python=$PYTHON_BIN_PATH--with-perl5=$PERL_BIN_PATH

把 apr, apr-util, neon, swig 都準備好了之後,就可以開始建 subversion 了。基本上照前面的 build script 跑一遍即可;跑完 make install 進行安裝。 make install 還會順便幫你修改 apache2 的組態檔,把 mod_dav_svnmod_authz_svn 模組打開 (不想要 make install 雞婆的話,請在 ./configure 的時候加上 --disable-mod-activation 選項)。

如果需要 Python binding,在 subversion 原始碼目錄下 make swig-py; make install-swig-py 指令進行建立與安裝 (詳細步驟請見 $SVN_SRC/subversion/bindings/swig/INSTALL)。然後記得把 $PREFIX/lib/svn-python 加到你的 $PYTHONPATH 裡去。

最後註記一點:subversion 若要用 DAV 來存取, 一定得配合 apache2

Posted by yungyuc at 23:16, 0 comment, 0 trackback.
Navigate
Add a trackback
Add a comment

Your name. (required)

Your personal website. (optional)

Your email address. Will not show in page. (suggested, but optional)

Text format is "Plain Text".

Enter "aORbj"
© hover year to navigate month: powered by django