安装包获取
wget http://subversion.tigris.org/downloads/subversion-1.6.6.tar.gz
wget http://subversion.tigris.org/downloads/subversion-deps-1.6.6.tar.gz
解压文件(务必将两个文件解压到相同的目录下,并且版本要一致)
tar zxf subversion-1.6.6.tar.gz
tar zxf subversion-deps-1.6.6.tar.gz
进入解压后的subversion目录
cd /xxxxxx/subversion-1.6.6/
创建安装目录
mkdir /usr/local/svn
编译安装
./configure –prefix=/usr/local/svn
make
make install
【如果出现错误:configure: error: no suitable apr found 则是因为上面的依赖文件没有减压到相同目录下导致。。。】
查看版本
/usr/local/svn/bin/svnserve –version
建立测试仓库
1.建立SVN的根目录,因为通常都有多个项目
mkdir -p?/data0/svn/
2.建立一个测试仓库
mkdir -p?/data0/svn/svntest/
svnadmin create /data0/svn/svntest/ 3.配置
cd /data0/svn/svntest/conf/
vi svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
vi authz
[svntest:/]
xiaocai = rw
#给svntest仓库添加一个xiaocai用户,权限为可写
vi passwd
xiaocai = 123456
#设置用户密码
启动svn服务,指定SVN的根目录:
svnserve -d?-r?/data0/svn/
【
安装时遇到的问题:
启动svnserve时出现cannot bind server socket:address already in use
解决方法:
方法一:找出svnserve id 杀死掉进程
netstat -ntlp
kill -9?{PID号}
方法二:重新指定一个端口号(默认端口3690)
svnserve -d?–listen-port 3691 -r?/opt/svndata/svnrepo
】
查看是否启用
netstat -tunlp?| grep svn
tcp ?????? 0 ???? 0 0.0.0.0:3690 ?????????????? 0.0.0.0:*?????????????????? LISTEN ???? 8646/svnserve
提交后更新到web目录下
cd /var/www/
svn checkout svn://42.121.4.220/www.icosplay.cc/
钩子
vi /data0/svn/hooks/post-commit
#!/bin/sh
REPOS=”$1″
REV=”$2″
svn update /mnt/www/www.icosplay.cc?–username xiaocai –password 123123
Warning: post-commit hook failed (exit code 255) with no output.
如果执行提交时SVN提示255错误,则是 post-commit 脚本文件的权限不对,post-commit?脚本必须有?+x?权限。
groupadd svn
useradd -M -s /bin/false -g svn svn
chown svn:svn post-commit
chmod +x post-commit
文件头部如果没有:#!/bin/sh 也会出现同样的错误
评论