svn服务端安装配置

1 SVN介绍

1.1 svn是什么

1.       subversion

2.       版本管理工具

3.       所有数据都集中在一个服务器端档案库里,类似FTP工具。

4.       管理任意一个元素(文件),任何时刻的变化。

5.       svn会备份并记录每个文件每一次的修改更新变动。

1.2 常见版本管理软件

VSSCVSSVNGit

2 SVNGit的区别

1.       SVN版本控制系统是集中式的数据管理,存在一个中央版本库,所有开发人员本地开发所使用的代码都是来自于这个版本库,提交代码也都必须提交到这个中央版本库。

2.       Git是分布式的版本控制,没有中央版本库的说法,但是为了开发小组的代码共享,通常还是会搭建一个远程的git仓库。gitSVN不同的是,开发者本地也包含一个完整的git仓库,从某种意义上说本地的仓库和远程的仓库在身份上是等价的,没有主从之分。

3 运维需要掌握的版本管理

1.       安装、部署、维护、排障。

2.       简单的使用,很多公司都是有开发管理,包括建立新仓库和添加删除账号。

3.       对于版本控制系统,运维人员相当于开发商,开发人员是业主,运维搭建的系统为开发人员服务的。

4 SVN服务运行与访问方式

4.1 SVN服务端运行方式

1.       独立服务器访问

访问地址如:svn://svn.wangning.org/sadoc

2.       借助apachehttp服务

访问地址如:http://svn.wangning.org/sadoc

a.       单独安装apache+svn(不要用)

b.       CSVNapahce+svn)是一个单独的整合软件,带web界面管理的SVN软件

3.       本地直接访问

访问地址如:file://application/svndata/sadoc

这里我们主要使用第一种方式以及第二种方式中的CSVN web管理方式。

4.2 SVN客户端访问方式

SVN客户单可以通过多种方式访问服务器端,例如:本地磁盘访问,或各种各样不同的网路协议访问,但一个版本库地址永远都是一个URLURL反应了访问方法。

 

 

访问方式

说明

file://

直接通过本地磁盘或者网络磁盘访问版本库

http://

通过WebDAV协议访问支持SubversionApache服务器

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 修改authzpasswd两个文件

[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/