wangbin
  • wangbin
  • 2018-09-21
  • IT

https://协议访问的svn服务搭建(2):手动编译安装svn

一. 简介

之前的centos6.7安装svn只是搭建了个svn://协议访问的svn服务,这次记录下https://协议访问的svn服务的搭建过程。

计划写4篇,这是第二篇,手动编译安装svn。

二. svn

svn编译安装需要的各个库不同版本也可能会冲突,这里我使用的是我成功的版本。

svn提供各种协议的访问是通过各个模块来实现的,有下面几个模块

  1. 使用ra_svn处理svn协议的访问
  2. 使用ra_local处理file协议的访问
  3. 1.8版本后使用ra_serf处理http和https协议的访问
  4. 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,用它来管理。