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