关于subversion的安装非常简单,这里主要以源码的方式编译安装subversion,当然也可以以RPM包的的形式来安装subversion

一. Linux源码编译安装subversion

1. 首先到subversion的官网()下载subversion源码包,如下:

cd ~ wget http://ftp.meisei-u.ac.jp/mirror/apache/dist/subversion/subversion-1.9.3.tar.gz

2. 安装subversion

2.1 在正式安装subversion时,需要提前安装 apr, apr-util, sqlite, zlib等组件

<--install Apr-->

wget http://apache.fayea.com//apr/apr-1.5.2.tar.gz tar -zxvf apr-1.5.2.tar.gz -C /usr/local/src/ cd /usr/local/src/apr-1.5.2/ ./configure --prefix=/usr/local/apr make && make install

<--install Apr-util-->

wget http://apache.fayea.com//apr/apr-util-1.5.4.tar.gz   tar -zxvf apr-util-1.5.4.tar.gz -C /usr/local/src/   cd  /usr/local/src/apr-util-1.5.4 ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr make && make install

<--install sqlite-->

wget http://www.sqlite.org/2016/sqlite-autoconf-3110100.tar.gz tar -zxvf sqlite-autoconf-3110100.tar.gz -C /usr/local/src/   cd  /usr/local/src/sqlite-autoconf-3110100 ./configure --prefix=/usr/local/sqlite make && make install

<--install zlib-->

yum install zlib

2.2 编译安装subversion

2.2.1 编译并安装subversion

tar -zxvf subversion-1.9.3.tar.gz -C /usr/local/src/   cd  /usr/local/src/subversion-1.9.3.tar.gz ./configure \ --prefix=/usr/local/svn \ --with-apr=/usr/local/apr \ --with-apr-util=/usr/local/apr-util/ \ --with-sqlite=/usr/local/sqlite/ make && make install

2.2.2 优化subversion命令路径,并创建SVN数据库存放目录

echo "PATH=/usr/local/svn/bin:$PATH" >> /etc/profile echo "export PATH" >> /etc/profile source /etc/profile mkdir /usr/local/data0svn

备注:

安装完成subversion后,其命令存放在安装目录bin子目录下,相关命令集使用,请使用:"命令  --help" 即可查看相关命令的用法。

2.2.3 编写subversion服务启动脚本

vim /etc/init.d/svn

代码内容如下:

#!/bin/bash # # svnserve        Startup script for the Subversion svnserve daemon # # chkconfig: - 85 15 # description: The svnserve daemon allows access to Subversion repositories \ #              using the svn network protocol. # processname: svnserve # config: /etc/sysconfig/svnserve # pidfile: /var/run/svnserve.pid # ### BEGIN INIT INFO # Provides: svnserve # Required-Start: $local_fs $remote_fs $network # Required-Stop: $local_fs $remote_fs $network # Short-Description: start and stop the svnserve daemon # Description: The svnserve daemon allows access to Subversion #   repositories using the svn network protocol. ### END INIT INFO # Source function library. . /etc/rc.d/init.d/functions if [ -f /etc/sysconfig/svnserve ]; then . /etc/sysconfig/svnserve fi svnrepo=/usr/local/data0svn exec=/usr/bin/svnserve prog=svnserve pidfile=${PIDFILE-/var/run/svnserve.pid} lockfile=${LOCKFILE-/var/lock/subsys/svnserve} args="-d --pid-file=${pidfile} -r $svnrepo --listen-host 0.0.0.0 " [ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog lockfile=/var/lock/subsys/$prog start() {
   [ -x $exec ] || exit 5    [ -f $config ] || exit 6    echo -n $"Starting $prog: "    daemon   $exec $args    retval=$?    echo    if [ $retval -eq 0 ]; then        touch $lockfile || retval=4    fi    return $retval } stop() {
   echo -n $"Stopping $prog: "    killproc -p ${pidfile} $prog    retval=$?    echo    [ $retval -eq 0 ] && rm -f $lockfile    return $retval } restart() {
   stop    start } reload() {
   restart } force_reload() {
   restart } rh_status() {
   # run checks to determine if the service is running or use generic status    status -p ${pidfile} $prog } rh_status_q() {
   rh_status >/dev/null 2>&1 } case "$1" in start)     rh_status_q && exit 0     $1     ;; stop)     rh_status_q || exit 0     $1     ;; restart)     $1     ;; reload)     rh_status_q || exit 7     $1     ;; force-reload)     force_reload     ;; status)     rh_status     ;; condrestart|try-restart)     rh_status_q || exit 0     restart     ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"        exit 2 esac                                                                   

授权并启动该脚本

# chmod 777 /etc/init.d/svn

# service svn start

2.2.4 进入到svn数据存放目录下使用svnadmin创建svn项目,如下:

cd /usr/local/datasvn svnadmin create preject01

* 此时在data0svn目录下会多出preject01目录,如下

* 进入项目仓库preject01目录下,分别编辑svnserve.conf ,authz, passwd文件

(1)编辑svnsever.conf文件,设置svn的全局属性,比如用户认证方式,用户写入权限,目录认证方式;

vim conf/svnserve.conf 修改内容如下:

注:

aurh-acces = write :设置用户拥有写入权限;

password-db = passwd :设置用户认证方式文件;

authz-db = authz :设置目录权限控制文件

(2)编辑authz文件,设置来访svn用户可以访问svn仓库那些文件目录权限;

vim conf/authz 修改内容如下:

注:authz是svn仓库目录访问权限的配置文件,一般先设置权限组,在定义目录的访问权限,如上所示:【/】表示当前整个项目的根路径,即:/usr/local/data0svn/preject01,设置用户组权限的时候,记得要加“@”,否则会在访问svn的时候提示认证失败错误,即:@用户组,如上。

(3)编辑passwd文件,添加svn认证用户

echo “admin = admin123” >> /usr/local/data0svn/preject01/conf/passwd

上述配置修改完成后,我们通过svn客户端端就可以访问到svn,如下所示:

输入用户为:admin 密码为:admin123,即可看到如下页面

看到以上页面说明,subversion顺利部署完成,至此我们就可以使用svn来上传代码了!

总结:关于subversion的安装很简单,实际安装建议使用RPM的方式安装subversion,操作简单方便,也自带服务启动脚本,没有像源码安装的那样需要单独常见服务启动脚本