svn在版本控制方面还是挺有用的。坑运维的人中就有研发,出补丁或版本的时候很坚定的说“升吧,没问题”,结果升上去后就会狂报错。所以运维的要在打补丁,尤其是改动很大的时候一定要把后路想好。否则会长时间的影响业务。svn就有一个很好的机制–回退(当然你也可以事先备份下),可以回退到之前的某个时间节点,操作很方便的。当然svn还有其他高级的用法,日后补上。并且svn不是单独工作,它是和rsync和jenkins结合来玩的。下面介绍svn的编译安装,及简单配置。rsycn和jenkins后续会有介绍的。
一、安装前的准备工作:
源码下载地址:http://subversion.apache.org/download.cgi 版本version 1.9.2
源码存放于: /packages 下
$ yum install apr* apr-util* sqlite* -y
$ wget http://www.sqlite.org/sqlite-amalgamation-3071501.zip
解压缩sqlite-amalgamation-3071501.zip
重命名:
$ mv sqlite-amalgamation-3071501 /prackages/subversion-1.9.2/sqlite-amalgamatio
$ ./configure –prefix=/usr/local/svn
$ make && make install
二、配置
1创建一个仓库:
svnadmim create –fs-type fsfs -d /usr/local/svn/projects
执行这一步操作后projects目录(仓库)中会包含 :conf db format hooks locks README.txt 。配置文件和授权存放在了conf中;db存放数据库;
hooks中存放钩子函数;
2在目录conf中进行相关配置
$ vim svnserve.conf
加入
[general]
anon-access = read 这个参数说明匿名用户对svn服务器上的文件具有读的权限
auth-access = write 这个参数说明取得授权的用户具有读写权限
password-db = passwd 注意此处的passwd是个文件,这个文件用于存放授权用户的密码,此处也可以写成 /path/to/SOME_FILE
$ vim authz
在[groups]下加入
admin = zhang 超级管理员的登录用户名
wanguser = wang 普通用户的的登录用户名,像这样的用户可以建立多个
[/]
@admin = rw
@wanguser = r
$ vim passwd
[users]
zhang = zhang 等号右边的"zhang"是用户zhang的密码
wang = wang 同上
3启动svn服务
$useradd svn
$chmod -R svn:svn /usr/local/svn
$svnserve -d –listen-port 3690 -r /usr/local/svn (/usr/local/svn相当于svn服务器的根目录,如果写成其他路径的话客户端将无法连接。 )
$ps -ef|grep svnserve
$netstat -na|grep 3690
4找到SVN项目的hooks目录
$vim hooks/post-commit
加入
#!/bin/bash /usr/local/svn/bin/svn checkout svn:192.168.11.128/projects /home/svn/zhang –username zhang –password zhang –no-auth-cache
路径/home/svn/zhang用于存放正式的的项目(应用程序代码)
至此配置完成。在windows环境下安装一个客户端就可以向svn服务器上上传项目了。我用的是TortoiseSVN Repository Browser(一个客户端工具,百度一下会有的),这样svn就玩起来了。
原创文章,作者:马仙山,如若转载,请注明出处:http://www.178linux.com/9298
评论列表(2条)
格式上可多向师兄姐学习
$chmod -R svn:svn /usr/local/svn 这里应该是chown