本文是在CentOS中采用yum安装方式。优点:简单,一键安装,不用手动配置环境变量等。缺点:安装位置为yum默认,比如我们公司服务器上安装软件有自己的规定,一般会采用压缩包安装。
以下是我在CentOS7.2(阿里云服务器)下部署方式,安装步骤如下:
whereis svn 查看svn安装目录
一、yum安装subversion
1. 安装subversion yum install subversion
2. 查看安装版本,检查安装是否成功 svnserve --version ,我装的版本为 1.7.14
3. 查看安装位置 rpm -ql subversion
二、创建版本库
1、建立SVN根目录
mkdir /data/svn
2、新建版本库:TestCode
svnadmin create /data/svn/TestCode
注:执行完后,/data/svn/TestCode目录下文件说明
README.txt 版本库的说明文件
conf 配置文件件夹(后续操作最多的文件夹)
db SVN数据文件文件夹
format 当前版本库的版本号
hooks SVN的钩子脚本文件夹
locks SVN的文件锁相关的文件夹
三、修改配置 进入conf目录(该svn版本库配置文件)
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件
1、设置帐号密码
vi passwd 在[users]块中添加用户和密码,格式:帐号=密码,如 czyczy=czyczy

2、设置权限
vi authz
在末尾添加如下代码:
[groups]
admin = czyczy
[/]
admin=rw
意思是版本库的根目录对其有读写权限,w只有读权限。
3、修改svnserve.conf文件
vi svnserve.conf
打开下面的几个注释:
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /var/svn/svnrepos # 认证空间名,版本库所在目录
四、启动svn版本库
svnserve -d -r /data/svn/TestCode
配置防火墙
不一定每个人都需要设置,可以先测试后再看是否需要打开端口
# vi /etc/sysconfig/iptables
添加一下内容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
保存后重启防火墙
# service iptables restart
或者关闭防火墙
1. 永久性生效
开启:chkconfig iptables on
关闭:chkconfig iptables off
2. 即时生效,重启后失效
开启:service iptables start
关闭:service iptables stop
五、linux/unix下svn自动更新
1.找到svn的所在目录:
我的目录在/usr/local/svn/myproject
2.新建post-commit
vim hooks/post-commit
#!/bin/sh
REPOS="$1"
REV="$2"
export +%Y-%m-%d %H:%M:%S"` >> $LOG_PATH
echo `whoami`,$REPOS,$REV >> $LOG_PATH
$SVN_PATH/svn update $WEB_PATH --username $SVN_USER --password $SVN_PASS --no-auth-cache >> $LOG_PATH
exit 0
3.给post-commit文件设置权限
首先检查代码中是否有可执行命令 #!/bin/sh
然后 检查post-commit权限
post-commit 脚本文件的权限不对,post-commit 脚本必须有 +x 权限。
chown svn:svn post-commit
chmod +x post-commit
配置完成后重新启动
查看svn是否启动
ps -ef|grep svnserve
kill -9 24872 终止该条进程