您的位置:首页 > 运维架构 > Linux

linux搭建svn服务器centos并配置钩子

2017-04-18 14:20 696 查看
系统环境:CentOS-7.2(一般没什么事 centos都可以安装)

安装方式:yum install (源码安装容易产生版本兼容的问题)
安装软件:系统自动下载SVN软件

#检查是否安装了低版本的SVN

rpm -qa subversion


#卸载旧版本SVN

yum remove subversion


yum安装svn

yum -y install subversion


版本库创建

svn安装好后需要创建个版本库

[root@iZuf6fazwjb6lb3z82smzoZ /]# mkdir -p /var/svn/svnrepos           //创建版本库文件夹
[root@iZuf6fazwjb6lb3z82smzoZ /]# svnadmin create /var/svn/svnrepos    //生成版本库
[root@iZuf6fazwjb6lb3z82smzoZ /]# cd /var/svn/svnrepos
[root@iZuf6fazwjb6lb3z82smzoZ svnrepos]# ls
conf  db  format  hooks  locks  README.txt                             //版本库生成的文件
配置版本库的可访问用户
[root@iZuf6fazwjb6lb3z82smzoZ svnrepos]# cd conf
[root@iZuf6fazwjb6lb3z82smzoZ conf]# vi passwd                         //进入密码文件设置用户与密码



注意 ~ 最好不要有什么空格 svn配置要求蛮严格的 有时候就因为多了个空格就行不通

zzx是用户名 123456是密码 配置完后需要去配置该用户的权限

[root@iZuf6fazwjb6lb3z82smzoZ conf]# vi authz                        //进入权限配置文件



[/]
代表根目录下所有的资源
在文件末尾添加红圈内的内容 zzx是用户名 rw表示可读可写 也是注意不要有空格

配置ok后wq退出

[root@iZuf6fazwjb6lb3z82smzoZ conf]# vi svnserve.conf
进入svn服务文件



这里严重注意不能有空格 默认有空格的 去掉  realm是指你svn版本库的文件的名字 也可以写路径 上边那些是开启相对应的权限

注释去掉后保存wq退出

[root@iZuf6fazwjb6lb3z82smzoZ conf]# svnserve -d -r /var/svn/svnrepos     //启动svn
[root@iZuf6fazwjb6lb3z82smzoZ conf]# netstat -ln |grep 3690               //查看svn端口3690
tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN
[root@iZuf6fazwjb6lb3z82smzoZ conf]# killall svnserve                    //停止svn服务
[root@iZuf6fazwjb6lb3z82smzoZ conf]# svnserve -d -r /var/svn/svnrepos     //启动svn
这时候svn差不多搭建完了 现在还需要写个钩子自动更新

[root@iZuf6fazwjb6lb3z82smzoZ hooks]# rm -rf post-commit.tmpl       //删除本来没用的钩子文件
[root@iZuf6fazwjb6lb3z82smzoZ hooks]# touch post-commit             //创建钩子文件
[root@iZuf6fazwjb6lb3z82smzoZ hooks]# chmod -R 777 post-commit      //给予权限
[root@iZuf6fazwjb6lb3z82smzoZ hooks]# vi post-commit
写入

#!/bin/sh
WEB=/data/wwwroot/default/svnrepos                   //svn版本库路径
export LANG=en_US.UTF-8                              //设置更新的编码格式
svn update $WEB --username zzx --password '123456'   //svn update更新 后边是用户名和密码
到这基本就搭建好了.先在服务器要更新的目录下执行

[root@iZuf6fazwjb6lb3z82smzoZ svnrepos]# svn checkout svn://106.15.44.166/svnrepos   //在服务器检出
如果成功后,就可以在本地svn checkout



如果有出现连接不上服务器的svn 可以看一下防火墙有没有关闭 没有的话关闭一下

开启: service iptables start
关闭: service iptables stop
好了 关闭后防火墙就可以正常的连接到服务器的svn了

有问题欢迎指出评论 ~ 有帮助的点个赞谢谢 ~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: