CentOS 6.5 源码安装subversion-1.8.8,附加mod_dav_svn模块
题记:第一次写如此实践类的博文,都是亲身经历,折腾了大半天,仅记录供参考。(新手实践,有错误之处欢迎纠正。)
安装前准备:
1.已安装JDK1.7,并配置好环境变量。
2.已安装apr、apr-util、apr-iconv(可选),我全部安装在/usr/local/apr目录下。
3.已安装Apache HTTP Serve,我安装在/usr/local/httpd目录下。
4.下载scons-2.3.1-1.noarch.rpm、serf-1.3.4.tar.bz2、subversion-1.8.8.tar.gz。
解释:subversion-1.8 需要使用serf软件包支持访问http协议的版本库。
subversion源码包解压后自带的serf,我configure成功后make报错,折腾了老半天没解决(可能是我的系统依赖包/库lib的问题);我就重新下载了serf-1.3.4,但新版的只支持scons编译安装,所有就绕了一大圈。你可以直接使用subversion提供的serf试试。
apr 和 apr-util 就不说了,很多软件依赖的。
安装过程:(解压及切换目录就不详写了)
可以先切换至 subversion-1.8.8 解压的目录下,用如下命令查看下依赖:
1 # ./get-deps.sh
缺少的可以直接进入subversion目录下自带的依赖包源码编译安装,或自行单独安装。
安装scons:
1 # rpm -ivh scons-2.3.1-1.noarch.rpm
安装serf:
1 # scons PREFIX=/usr/local/serf APR=/usr/local/apr APU=/usr/local/apr 2 # scons install 3 # scons -c
安装subversion:
1 # 先编译,参数路径可根据实际情况自行调整 2 # ./configure --prefix=/usr/local/subversion --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --enable-mod-activation --with-apache-libexecdir=/usr/local/httpd/modules --with-apxs=/usr/local/httpd/bin/apxs --with-serf=/usr/local/serf 3 # 仔细查看编译输出,确认无误后make安装 4 # make && make install
准备充分顺利的话上面的命令就可以成功搞定了,我在编译后出现一些警告,一些提示未加载之类的信息,自行百度解决了。
ps:
1. 可以通过:
1 # ./configure --help
查看编译时候可添加的参数信息,根据需要自行添加。
2. subversion源码里自带了 mod_authz_svn、mod_dav_svn,无需另外独自安装,很方便;可以在编译时指定参数加载到Apache下,安装完成后可以查看Apache的modules目录下的模块文件和配置文件确认已加载svn模块。
安装到此结束,我打算查看下svn版本时候又出问题了:
1 # 切换至svn安装目录查看版本信息 2 # ./svn --version 3 # 报错,提示 libserf-1.so 找不到 4 ./svn: error while loading shared libraries: libserf-1.so.1: cannot open shared object file: No such file or directory
显然是由于安装的 serf 库文件未被找到,可以通过以下办法解决:
1 # 在系统 ld.so.conf.d 目录下新建conf文件 2 # vi /etc/ld.so.conf.d/serf-1.3.4.conf 3 # 添加serf的库目录路径 /usr/local/serf/lib 4 # 保存退出 5 # /sbin/ldconfig -v
再次看下svn版本:
1 # ./svn --version 2 3 svn,版本 1.8.8 (r1568071) 4 编译于 Mar 23 2014,16:50:59 在 x86_64-unknown-linux-gnu 5 版权所有 (C) 2013 Apache 软件基金会。 6 此软件包含了许多人的贡献,请查看文件 NOTICE 以获得更多信息。 7 Subversion 是开放源代码软件,请参阅 http://subversion.apache.org/ 站点。 8 可使用以下的版本库访问模块: 9 * ra_svn : 使用 svn 网络协议访问版本库的模块。 10 - 处理“svn”方案 11 * ra_local : 访问本地磁盘的版本库模块。 12 - 处理“file”方案 13 * ra_serf : Module for accessing a repository via WebDAV protocol using serf. 14 - using serf 1.3.4 15 - 处理“http”方案 16 - 处理“https”方案
可以看到svn支持http、https 访问。
查阅文档,发现安装 serf 的时候可以把库文件直接安装到系统目录下/usr/lib64,使用参数:LIBDIR=/usr/lib64,可以试试,这样就不会提示 libserf-1.so找不到的问题。
svn的配置这里就不详说了。