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
