https://协议访问的svn服务搭建(2):手动编译安装svn
一. 简介
之前的centos6.7安装svn只是搭建了个svn://协议访问的svn服务,这次记录下https://协议访问的svn服务的搭建过程。
计划写4篇,这是第二篇,手动编译安装svn。
二. svn
svn编译安装需要的各个库不同版本也可能会冲突,这里我使用的是我成功的版本。
svn提供各种协议的访问是通过各个模块来实现的,有下面几个模块
- 使用ra_svn处理svn协议的访问
- 使用ra_local处理file协议的访问
- 1.8版本后使用ra_serf处理http和https协议的访问
- 1.8版本之前使用neon处理http和https协议的访问
三. 安装
编译svn之前,我们需要先编译安装它依赖的apr、apr-util、pcre、serf模块。
apr、apr-util、pcre在之前安装apache的时候,已经安装了。
serf需要使用scons安装,而且不支持scons3.0.0,这里我们安装2.5.1版本。
install-svn.sh
yum -y remove subversion
yum -y install zlib-devel openssl-devel
# scons
# serf不支持scons3.0.0
cd ~
wget https://sourceforge.net/projects/scons/files/scons/2.5.1/scons-2.5.1.tar.gz
tar zxvf scons-2.5.1.tar.gz
cd scons-2.5.1
python setup.py install --prefix=/usr/local/scons
rm -rf ~/scons-2.5.1
rm -f ~/scons-2.5.1.tar.gz
# serf
cd ~
wget https://archive.apache.org/dist/serf/serf-1.3.9.zip
unzip serf-1.3.9.zip
cd serf-1.3.9
/usr/local/scons/bin/scons prefix=/usr/local/serf APR=/usr/local/apr APU=/usr/local/apr-util
/usr/local/scons/bin/scons install
rm -rf ~/serf-1.3.9
rm -f ~/serf-1.3.9.zip
# sqlite
cd ~
wget http://www.sqlite.org/2017/sqlite-amalgamation-3210000.zip
unzip sqlite-amalgamation-3210000.zip
# subversion
cd ~
wget https://archive.apache.org/dist/subversion/subversion-1.9.7.tar.gz
tar zxvf subversion-1.9.7.tar.gz
mv sqlite-amalgamation-3210000 subversion-1.9.7/sqlite-amalgamation
cd subversion-1.9.7
./configure \
--prefix=/usr/local/svn \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util \
--with-serf=/usr/local \
--enable-mod-activation \
--with-apache-libexecdir=/usr/local/apache/modules \
--with-apxs=/usr/local/apache/bin/apxs \
--without-berkeley-db
make
make install
rm -f ~/sqlite-amalgamation-3210000.zip
rm -rf ~/subversion-1.9.7
rm -f ~/subversion-1.9.7.tar.gz
# bin
ln -s /usr/local/svn/bin/svn /usr/local/bin/svn
ln -s /usr/local/svn/bin/svnserve /usr/local/bin/svnserve
ln -s /usr/local/svn/bin/svnadmin /usr/local/bin/svnadmin
ln -s /usr/local/svn/bin/svnlook /usr/local/bin/svnlook
export PATH=$PATH:/usr/local/bin
# 动态库
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
ldconfig
编译会安装动态库libserf到/usr/local/lib,需要将目录添加到LD_LIBRARY_PATH,然后执行ldconfig
加载。
四. 命令
例如/var/svn/repos是我们svn代码库位置
启动
/usr/local/bin/svnserve -d -r /var/svn/repos
五.结尾
这样,svn就安装好啦,先不用配置,接下来我会介绍个界面管理工具-iF.SVNAdmin,用它来管理。