Subversion1.8之后,http资源类型支持库,apache从该版本之后,舍弃了neon。Subversion 1.8中http客户端基于neon已经被移除,改用self。如果要支持http方式需要在安装svn前安装serf,安装serf推荐用serf-1.2.1,安装是./configure;由于google官网下载比较麻烦,所有我这里分享给大家。好运!
源码安装svn serf_v1.2.1:
Linux下编译Serf_v1.2.1源码时,提示以下错误,有知道解决方法的朋友吗,麻烦共享下,谢谢!
/svn_setup/lib/libssl.a(s23_clnt.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
/svn_setup/lib/libssl.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [libserf-1.la] Error 1
解决方案:出现此错误是在ubuntu环境中源码编译Svn时,安装serf_1.2.1出现的,
重新编译openssl时,添加上 -fPIC,--enable-share参数即可解决上述错误
serf-1.3.0安装是用scons(yum -y install scons)方式,安装serf-1.3.0后安装可能会报误,Google没找到解决方法,如下报错
checking for serf-2 library... no checking for serf-1 library... no checking was serf enabled... no An appropriate version of serf could not be found, so libsvn_ra_serf will not be built. If you want to build libsvn_ra_serf, please install serf 1.2.1 or newer. configure: error: Serf was explicitly enabled but an appropriate version was not found.
安装步骤:
本文只基于《LAMP一键安装包》之后进行
1. 安装apr、apr-unit
cd /root/lamp/source #wget #LAMP中已经下载 #wget tar xzf apr-1.4.8.tar.gz cd apr-1.4.8 ./configure --prefix=/usr/local/apache make && make install cd ../ tar xzf apr-util-1.5.2.tar.gz cd apr-util-1.5.2 ./configure --prefix=/usr/local/apache make && make install cd ../
2. 安装serf-1.2.1
yum -y install expat-devel wget #serf-1.2.1.zip是win版有问题 tar xjf serf-1.2.1.tar.bz2 cd serf-1.2.1 ./configure --prefix=/usr/local/serf --with-apr=/usr/local/apache --with-apr-util=/usr/local/apache make && make install cd ..
3. 安装svn
tar xzf subversion-1.8.1.tar.gz cd subversion-1.8.1 ./get-deps.sh ./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache/bin/apxs \ --with-apr=/usr/local/apache --with-apr-util=/usr/local/apache --with-zlib \ --with-openssl --enable-maintainer-mode --with-serf=/usr/local/serf --enable-mod-activation make && make install cd ..
4. 检查是否安装成功
安装成功会在/usr/local/apache/conf/httpd.conf自己加入下面2行
LoadModule dav_svn_module /usr/local/subversion/libexec/mod_dav_svn.so LoadModule authz_svn_module /usr/local/subversion/libexec/mod_authz_svn.so
检查svn是否支持http方式:
# svn --version svn, version 1.8.1 (r1503906) compiled Aug 2 2013, 11:36:48 on x86_64-unknown-linux-gnu Copyright (C) 2013 The Apache Software Foundation. This software consists of contributions made by many people; see the NOTICE file for more information. Subversion is open source software, see The following repository access (RA) modules are available: * ra_svn : Module for accessing a repository using the svn network protocol. - with Cyrus SASL authentication - handles 'svn' scheme * ra_local : Module for accessing a repository on local disk. - handles 'file' scheme * ra_serf : Module for accessing a repository via WebDAV protocol using serf. - handles 'http' scheme - handles 'https' scheme