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的配置这里就不详说了。

作者:hackem
         
本文版权归原作者所有,欢迎转载,但必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/hackem/p/3619415.html