svn下载地址:http://subversion.apache.org/download/
svn要依赖一些包,可以提前装好
yum -y install apr-util apr-util-devel
yum -y install sqlite sqlite-devel
还要依赖openssl和zlib,可以参考http://www.cnblogs.com/ystq/articles/5919114.html
解压后,进入svn主目录
./configure --prefix=/usr/local/svn --with-openssl=/usr/local/openssl --with-zlib=/usr/local/lib/zlib --without-berkeley-db
make && make install
查看是否安装成功
/usr/local/svn/bin/svnserve --version
vi /etc/profile加入环境变量
export PATH=$PATH:/usr/local/svn/bin/
source /etc/profile
svn建库
1建立SVN的根目录
mkdir -p /opt/svn/ 2建立一个产品仓库
mkdir -p /opt/svn/tshop/
svnadmin create /opt/svn/tshop/ 3修改版本配置库文件
cd /opt/svn/tshop/conf
vi svnserve.conf
#主要修改以下四处
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = tshop 4设置账号密码
vi passwd
[users]
# harry = harryssecret
# sally = sallyssecret
account1=123456
account2=123456 5设置权限
vi authz
[groups]
team=test1,test2
[repo:/]
@ream=rw
#把test1和test2用户加入这个团队,本团队的人对此版本库有读(read)和写(write)的权限。[repo:/]设置权限起作用的区域是在版本库的根目录下 6启动svn服务
#可以建立启动svn的用户
useradd svn
chown -R svn:svn /opt/svn
#方式一:svnserve -d -r /opt/svn/ #默认的启动端口号为3690
#方式二:su – svn -c “svnserve -d –listen-port 9999 -r /opt/svn/”
#su – svn表示以用户svn的身份启动svn;
#-d表示以daemon方式(后台运行)运行;
#–listen-port 9999表示使用9999端口,可以换成你需要的端口。但注意,使用1024以下的端口需要root权限;
#-r /opt/svn 指定根目录是/opt/svn。
#如果有防火墙,要加端口到防火墙
7检查是否启动
netstat -tunlp | grep svn
如果显示以下信息说明启动成功
tcp 0 0 0.0.0.0:9999 0.0.0.0:* LISTEN 10973/svnserve 8将svn加入到开机启动
编辑rc.local文件:vi /etc/rc.d/rc.local
加入如下启动命令:
/usr/local/svn/bin/svnserve -d –listen-port 9999 -r /opt/svn 9如果想停止svn,则使用如下命令:
killall svnserve 10如果想将svn作为服务:
在/etc/rc.d/init.d/目录下新建名为svn的文件
编辑svn文件:vi /etc/rc.d/init.d/svnd, 在里面添加如下代码:
#!/bin/bash
# build this file in /etc/rc.d/init.d/svn
# chmod 755 /etc/rc.d/init.d/svn
# centos下可以用如下命令管理svn: service svn start(restart/stop)
SVN_HOME=/opt/svn
if [ ! -f "/usr/local/svn/bin/svnserve" ]
then
echo "svnserver startup: cannot start"
exit
fi
case "$1" in
start)
echo "Starting svnserve..."
/usr/local/svn/bin/svnserve -d --listen-port 9999 -r $SVN_HOME
echo "Finished!"
;;
stop)
echo "Stoping svnserve..."
killall svnserve
echo "Finished!"
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: svn { start | stop | restart } "
exit 1
esac