svn服务端安装配置
1 SVN介绍1.1 svn是什么
1. subversion
2. 版本管理工具
3. 所有数据都集中在一个服务器端档案库里,类似FTP工具。
4. 管理任意一个元素(文件),任何时刻的变化。
5. svn会备份并记录每个文件每一次的修改更新变动。
1.2 常见版本管理软件
VSS、CVS、SVN、Git
2 SVN与Git的区别1. SVN版本控制系统是集中式的数据管理,存在一个中央版本库,所有开发人员本地开发所使用的代码都是来自于这个版本库,提交代码也都必须提交到这个中央版本库。
2. Git是分布式的版本控制,没有中央版本库的说法,但是为了开发小组的代码共享,通常还是会搭建一个远程的git仓库。git和SVN不同的是,开发者本地也包含一个完整的git仓库,从某种意义上说本地的仓库和远程的仓库在身份上是等价的,没有主从之分。
3 运维需要掌握的版本管理1. 安装、部署、维护、排障。
2. 简单的使用,很多公司都是有开发管理,包括建立新仓库和添加删除账号。
3. 对于版本控制系统,运维人员相当于开发商,开发人员是业主,运维搭建的系统为开发人员服务的。
4 SVN服务运行与访问方式4.1 SVN服务端运行方式
1. 独立服务器访问
访问地址如:svn://svn.wangning.org/sadoc
2. 借助apache等http服务
访问地址如:http://svn.wangning.org/sadoc
a. 单独安装apache+svn(不要用)
b. CSVN(apahce+svn)是一个单独的整合软件,带web界面管理的SVN软件
3. 本地直接访问
访问地址如:file://application/svndata/sadoc
这里我们主要使用第一种方式以及第二种方式中的CSVN web管理方式。
4.2 SVN客户端访问方式
SVN客户单可以通过多种方式访问服务器端,例如:本地磁盘访问,或各种各样不同的网路协议访问,但一个版本库地址永远都是一个URL,URL反应了访问方法。
访问方式 | 说明 |
file:// | 直接通过本地磁盘或者网络磁盘访问版本库 |
http:// | 通过WebDAV协议访问支持Subversion的Apache服务器 |
https:// | 与http://相似,但是用SSL加密访问 |
svn:// | 通过TCP/IP自定义协议访问svnserver服务器 |
svn+ssh:// | 通过认证并加密的TCP/IP自定义协议访问svnserver服务器。 |
5 SVN独立服务器方法安装配置
5.1 创建相关目录
[root@svn ~]# rpm -qa subversion #查看SVN是否已安装,默认是安装的
[root@svn ~]# yum -y install subversion #如没有,用yum安装
[root@svn ~]# mkdir -p /application/svndata #创建数据存储根目录
[root@svn ~]# mkdir -p /application/svnpasswd #创建用户、密码权限目录
[root@svn ~]# svnserve --help #查看svnserve命令帮助
5.2 启动svn服务,创建项目
[root@svn ~]# svnserve -d -r /application/svndata/ #启动SVN服务指定服务的SVN根目录 -d:daemon -r:表示服务的根目录
[root@svn ~]# lsof -i:3690
[root@svn ~]# svnadmin create /application/svndata/sadoc #创建一个项目sadoc
5.3 修改svnserve.conf配置文件
[root@svn ~]# cd /application/svndata/sadoc/conf/
[root@svn conf]# ll
total 12
-rw-r--r--. 1 root root 1080 Jul 29 15:14 authz
-rw-r--r--. 1 root root 309 Jul 29 15:14 passwd
-rw-r--r--. 1 root root 2279 Jul 29 15:14 svnserve.conf
[root@svn conf]# cp svnserve.conf svnserve.conf.bak
[root@svn conf]# vim svnserve.conf
增加以下几行,带颜色的为增加的内容
12 # anon-access = read
anon-access = none #禁止任何匿名用户访问
13 # auth-access = write
auth-access = write #认证用户访问具有写权限
20 # password-db = passwd
password-db = /application/svnpasswd/passwd #密码文件存放在passwd目录里
27 # authz-db = authz
authz-db = /application/svnpasswd/authz #用户认证文件存放在authz目录里
5.4 修改authz和passwd两个文件
[root@svn conf]# mv authz passwd /application/svnpasswd/
[root@svn conf]# cd /application/svnpasswd/
[root@svn conf]# cat >>passwd <<EOF #添加认证用户
stu01 = 123456
stu02 = 123456
wangning = 123456
yangkuo = abc123
zhanglianhe = 678abc
EOF
[root@svn svnpasswd]# chmod 600 passwd
[root@svn svnpasswd]# vim authz 配置认证文件,带颜色的部分为增加的内容
21 [groups]
22 # harry_and_sally = harry,sally
23 # harry_sally_and_joe = harry,sally,&joe
24 oldboy23 = wangning,yangkuo,zhanglianhe #设置一个组oldboy23,组成员为3个人
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[sadoc:/] #定义一个项目为sadoc
stu01 = rw #定义stu01用户具有读写权限
stu02 = r
@oldboy23 = rw #定义oldboy23组成员具有读写权限
5.5 重启svnserve服务
[root@svn svnpasswd]# pkill svnserve
[root@svn svnpasswd]# svnserve -d -r /application/svndata/