因為用的 VPS 沒有 subversion,所以得自己從原始碼建立。用慣了 apt ,要 ./configure 和 make 著實不習慣呢。
一般來說 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_svn 和 mod_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 。
- Previous: Linux TZ 的設法 @2005/07/29
- Next: pod 檔要用 sdf 處理 @2005/08/02
Please send trackback to: http://blog.seety.org/everydaywork/2005/7/30/388/trackback/.