linux 安装svn服务端并配置

我的系统环境是centOS7。这里使用yum安装方式。优点:简单,一键安装,不用手动配置环境变量等。缺点:安装位置为yum默认。

一、yum安装subversion
    

1. 安装subversion yum install subversion

  2. 查看安装版本,检查安装是否成功 svnserve --version  ,我装的版本为  1.7.14

  3. 查看安装位置  rpm -ql subversion

 

二、创建版本库


A.我选择的目录是 /home/svn/作为SVN版本库的根目录,命令为:
# mkdir /home/svn
B.比如,现在我有一个名为“project”的项目需要用SVN做版本管理,那么我可以在svn根目录下建立一个 /project目录,我最终目的想让项目托管到/project目录下。接下来我需要新建这个目录:/home/svn/project
,命令为:
# mkdir -p /home/svn/project
C.然后需要将/project目录设定为版本库,命令如下:
# svnadmin create /home/svn/project
D.设定/project目录为版本库后,会发现/project目录下会多出以下文件:

 

三、svn服务器的相关配置


svn的配置主要就是对conf目录下的三个文件配置:svnserve.conf、passwd、authzs。

A.对这三个配置文件的讲解
a.svnserve.conf文件讲解
[general]配置段中配置行格式: <配置项> = <值> ,常用的配置项是以下5项:

(1)anon-access控制非鉴权用户访问版本库的权限。取值范围为”write”、”read”和”none”。即”write”为可读可写,”read”为只读,”none”表示无访问权限。 
缺省值:read
(2)auth-access控制鉴权用户访问版本库的权限。取值范围为”write”、”read”和”none”。即”write”为可读可写,”read”为只读,”none”表示无访问权限。 
缺省值:write
(3)password-db 指定用户名口令文件名。除非指定绝对路径,否则文件位置为相对conf 目录的相对路径。 
缺省值:passwd
(4)authz-db 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。除非指定绝对路径,否则文件位置为相对conf目录的相对路径。 
缺省值:authz 
(5)realm 指定版本库的认证域,即在登录时提示的认证域名称(就是个作为提示用的,不用太纠结)。
b.passwd文件讲解
用户名口令文件,该文件名在文件svnserve.conf中指定,缺省为同目录下的passwd。

该文件仅由一个[users]配 置段组成。
[users]配置段的配置行格式如下: <用户名> = <口令> ,注意:配置行中的口令是未经过任何处理的明文。
例:用户名口令文件conf/passwd的内容如下,配置了两个用户,用户名分别为”quanran”和”dongxuening”。其中”quanran”用户的口令为”111111”,”dongxuening”用户的口令为”222222”:
[users] 
quanran = 111111
dongxuening = 222222

c.authzs文件讲解
权限配置文件,该文件名也在文件svnserve.conf中指定,缺省为同目录下的authz。
该配置文件由一个[groups]配置段和 若干个版本库路径权限段组成。

[groups]配置段中配置行格式如下: 
<用户组> = <用户列表> 
用户列表由若干个用户组或用户名构成,用户组或用户名之间用逗号”,”分隔,引用用户组时要使用前缀”@”(如:引用用户组”all”要使用字符 串”@all”)。

版本库路径权限段的段名格式如下: 
[<版本库名>:<路径>] 
如版本库abc路径/tmp的版本库路径权限段的段名为”[abc:/tmp]”。 
可省略段名中的版本库名。若省略版本库名,则该版本库路径权限段对所有版本库中相同路径的访问控制都有效。如:段名为”[/tmp]”的版本库路径权限段 设置了所有引用该权限配置文件的版本库中目录”/tmp”的访问权限。

版本库路径权限段中配置行格式有如下三种: 
<用户名> = <权限> 
<用户组> = <权限> 
* = <权限> 
其中,”*”表示任何用户;权限的取值范围为”、’r’和’rw’,”表示对该版本库路径无任何权限,’r’表示具有只读权限,’rw’表示有读写权 限。 
注意:每行配置只能配置单个用户或用户组。

例3:权限配置文件conf/authz的内容如下: 
[groups] 
g_admin = admin,zhangsan

[admintools:/] 
@g_admin = rw 
* =

[test:/home/zhangsan] 
zhangsan = rw 
* = r

在上述配置文件中,定义了一个用户组”g_admin”,该用户组包含用户”admin”和”zhangsan”。然后定义了2个版本库路径权限段。其中, 版本库”admintools”只有用户组”g_admin”可读写,其他用户无任何权限;版本库”test”中路径”/home/zhangsan”只有 用户”zhangsan”有读写权限,其他用户只有可读权限。

B.言归正传!开始配置!
(1)配置svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
备注:vi命令编辑svnserve.conf,insert进入编辑模式,放开以上选项,ESC :wq保存。设置非鉴权用户无权访问、设置鉴权用户可读写、口令及权限配置参照conf目录下passwd和authz的配置。
重要提醒!!:首行不可以留空,要顶行,否则会造成SVN识别为配置错误。
(2)配置passwd
[users]
rokay = 123456
备注:配置了一个用户为“rokay”,密码为“123456”的用户。
(3)配置authz
[groups]
g_admin = rokay

[/]
@g_admin = rw
*= 

备注:配置了一个管理员群组“g_admin”,包含用户“rokay”; 
“[/]”表示对根目录“trunk”的权限配置。 
配置了“g_admin”群组对于该目录下的权限为“rw“(读、写)权限。 
* = 配置了除群组”g_admin“外的其他用户均无权访问。
注意:也可以用“,”分隔多个用户或者@+群组名称的方式配置多用户,参看上方说明。
(4)综上,就完成了对三个文件也就是svnserve的配置了。


四、启动svn服务


输入命令:# svnserve -d -r /home/svn
注意:/svn目录为版本库的根目录,所以路径仅到/svn即可。

此时,SVN服务器的配置以及版本库已经建立完成!

五、SVN Windows客户端访问


访问地址:svn://[服务器IP地址]/[项目名称];

例如:svn://192.168.4.200/project/

输入已授权的用户信息登录即可访问资源位置。 
同样的,可以通过右击项目[team]—[share],输入以上URL将项目共享至新建的SVN版本库中。

注意:上述地址中没有”/svn”这一级目录,”/svn”为版本库根目录,不用输入!!!!!!!!

六、新建多个版本库


若要在/svn目录下添加新的版本库,直接新建相应的目录,然后设置为版本库,最后配置即可,不需要重新运行svnserve -d -r /home/svn,也不需要把该命令应用到/svn目录下你所新建的目录,如果因为误操作执行了以上命令,会导致资源库不可用,再次运行svnserve -d -r /home/svn也会报:“不能绑定服务器套接字 地址已在使用”的错误字样“(若已至此,删除掉新建的资源库,并用ps -ef | grep svnserve查看进程,kill -9 [进程号] 杀掉,重新执行svnserve -d -r /home/svn,再次新建资源库,直接配置即可使用)
比如在/svn目录下另外新建一个project2的资源库,命令如下:
# mkdir -p /home/svn/project2
# svnadmin create /home/svn/project2
# 在次配置当前版本库的三个配置文件:svnserve.conf、passwd、authzs。
(不需再运行svnserve -d -r /home/svn !!!!!!!)

七、常见问题


  1.注意打开端口的访问权限。svn服务的默认端口为3690,比如我部署在阿里云服务器上,必须先在阿里云控制台打开3690端口的外部访问权限。

  2.关闭svn服务的方式是杀掉进程,kill pid或者pkill svnserve,先使用 netstat -anp|grep svnserve 查看pid,然后 kill 16262

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值