服务器上httpd,Subversion都是自己编译的。
最初安装Subversion时,配置Apache,HTTP访问不了。查Apache的Log发现有segmentation fault. 曾经也在网上找过合适的mod_dav_svn.so恰好能用,但这只是投机取巧,自己也不放心,还是找到根本的解决办法比较好。
问题的原因在于Apache和Subversion都使用了APR库,然而用的不是一个版本。我不知道Subversion为什么带着apr 0.97发布(该版本似乎不支持大文件),apr的最新版本已经是1.2.8了。Apache里的版本是比较新的,我用Apache的APR替换Subversion的来编译,这样它们用的就是同一版本了,不再有segmentation fault,使用过程中也没有发现其它问题。
下面是安装的过程。安装swig-py是为了能够将svn与trac结合,你当然可以不安装它。
- 将subversion-1.4.3, subversion-deps-1.4.3在同一目录解压,然后把subversion-1.4.3目录中的apr和apr-util两个目录删除,将apache源代码中的两个目录复制过来。
- 先安装neon
# ./configure -with-zlib –enable-shared –enable-static –with-libs=/usr/local
# make && make install
将neon目录改名:
# mv neon neon-back - 安装subversion/swig-py
# make clean
# make clean-swig-py
# ./configure –prefix=/etc/subversion –with-apxs=/etc/httpd/bin/apxs –with-swig –with-neon=/usr/local
# make && make swig-py
# make install && make install-swig-py
安装过程中假设Apache的安装目录是/etc/httpd/,make会自动把mod_dav_svn.so安装到/etc/httpd/modules目录,在httpd.conf中load,就可以配置Subversion的HTTP访问了。
Leave a Reply