天天看点

SVN CentOS7 下配置svn的安装及基础配置介绍

CentOS7 下配置svn的安装及基础配置介绍

by:授客 QQ:1033553122

目录

一、         实践环境... 1

二、         安装操作系统... 1

三、         安装SVN. 1

四、         基础配置... 2

五、         启动SVN. 7

六、         客户端访问... 8

七、         常见问题排查... 8

一、      实践环境

CentOS 7操作系统(CentOS-7-x86_64-DVD-1503-01.iso)

下载地址:http://ftp.riken.jp/Linux/centos/7/isos/x86_64/

二、      安装操作系统

软件选择(SOFTWARE SELECTION):

SVN CentOS7 下配置svn的安装及基础配置介绍

三、     

安装SVN

[root@localhost

~]# yum

install subversion

查看是否安装安装成功

~]# svnserve

--version

svnserve, version

1.7.14 (r1542130)

compiled Jun  9 2014,

18:54:44

Copyright (C)

2013 The Apache Software Foundation.

This software

consists of contributions made by many people; see the

NOTICE

file for more

information.

Subversion is

open source software, see http://subversion.apache.org/

The following

repository back-end (FS) modules are available:

*

fs_base : Module for working with a Berkeley DB

repository.

fs_fs : Module for working with a plain file (FSFS)

Cyrus SASL

authentication is available.

四、     

基础配置

创建一个空文件夹,例如

svn,作为所有版本库的根目录

~]# mkdir -p /svn/

进入svn目录,创建版本库,比如

repo

~]# cd

/svn/

svn]# svnadmin

create --fs-type fsfs repo

#

查看repo目录文件

svn]# cd repo/

repo]# ls

conf 

db  format  hooks 

locks  README.txt

[root@localhost repo]# cd conf/

[root@localhost conf]# ls

authz 

passwd 

svnserve.conf

文件说明:

1、svnserve.conf文件

该文件用于控制svnserve守护进程(svnserve

daemon)的配置,以便访问svn版本库。如果仅是通过http://

或者file:URLs方式访问版本库,则与该文件配置不起作用。

[general]结点

anon-access(匿名访问)和auth-access(认证访问)选项,分别用于控制未认证用户和与认证用户对svn版本库的访问,其可选值包含

write,read,none,如果设置为none则无对版本库的读写访问权限;设置为write则有可读可写权限;设置为read则只有读权限。

password-db用于控制密码数据库文件的位置,除非指定了一个带符号‘/’

的路径,否则文件的位置为包含该配置文件的相对路径,如果开启了SASL,则该文件配置不起作用。

authz-db选项控制基于路径访问控制的认证规则的位置。除非指定了带‘/’的路径,否则该文件位置为包含该配置文件的相对位置。如果不指定authz-db,则没有基于路径的访问控制。

realm

选项指定了版本库的认证域(authentication

realm)。如果两个版本库有同样的认认证域(authentication

realm),他们应该有相同的密码数据库,反之亦然。缺省的

realm为版本库的uuid

force-username-case

选项,在authz-db文件配置的规则下,让svnserve比较用户名之前,规范化用户名大小写(case-normalize)。合法值有

lowser

转小写;upper转大写;none采用默认的,不进行大小写转化。

[sasl]结点

用于指定是否为认证使用 Cyrus

SASL类库。默认的false。如果svnserve不带Cyrus

SASL支持编译的,那么该小节会被忽略。运行'svnserve

--version,查找如下行'Cyrus

SASL authentication is available.'

则表示支持。

该选项指定了想让SASL提供的安全级别,0表示加密,1表示仅集成检查,大于1的的值是和用于加密的有效密匙长度相关的。

(e.g.

128

代表 128-bit加密).

默认值如下

min-encryption = 0

max-encryption = 256

2、password文件

该文件为svnserve密码文件实例,每行代表一个svn用户账户

[users]

用户名1

=

用户密码1

用户名2

用户密码2

……

用户名n

用户密码n

3、authz文件

该文件为svnserve认证实例文件,定义路径和版本库(可选)的认证

其中每一行记录可能代表

1)单个用户

2)定义的一组用户([groups]节点中定义的

3)定义的一个别名([aliases]节点中定义的

4)使用$authenticated

token的所有认证用户

5)仅使用$anonymous

token的匿名用户

6)* 

任何人

[aliases]

暂时只知道是设置别名,但是具体是怎么定义的,不是很清楚,先不管吧

[groups]

自定义分组名1

用户1,用户2,……

自定义分组名2

用户3,用户4,……

自定义分组名n

用户n1,用户n2,……

说明:用户名之间用英文逗号分隔

[repository_name:dir_path]

权限1

权限2

权限n

@自定义分组名1

@自定义分组名2

@自定义分组名n

&别名1

&别名2

&别名n

* =

权限

[dir_path]

说明:

1) [repository_name:dir_path]表示名为repository_name的版本库的dir_path目录,比如

[repo:/]表示repo版本的库的根目录

举例:

svn版本库目录结构为:/svn/repo,,其中/svn为所有版本库的根,repo为其中一个版本库名称,启动方式:svnserve

-d -r /svn/,

SVN CentOS7 下配置svn的安装及基础配置介绍

那么可以如下设置

[repo:/] /代表

[repo:/test1]

[repo:/test1/test2]

如果只有一个版本库,等效做法如下

[/]

[/test1]

[/test1/test2]

其中,test1,test2都是通过svn客户端创建的目录

3)

权限可为r、w、rw,分别代表只可读,只可写,可读可写,这里r、w、rw只针对dir_path最后层级的目录生效

例:

shouke = rw

那么svn:192.168.1.103/test1

进行访问,会提示认证失败

4)

别名,用户名,自定义分组不分先后顺序

5)

权限,如果无任何权限则不填写,直接

* = 

,这里,*表示除了指定的用户,自定义分组,别名之外的任何人

修改svnserve.conf配置

conf]# vim svnserve.conf

找到如下内容

[general]

……(略)

anon-access = read

auth-access = write

改成如下内容

anon-access =

none

auth-access =

write

#password-db =

passwd

password-db =

password

authz-db = authz

authz-db =

authz

[sasl]

use-sasl = true

use-sasl =

true

新增svn用户

conf]# useradd shouke

conf]# passwd shouke

Changing password

for user shouke.

New

password:

BAD PASSWORD: The

password is shorter than 8 characters

Retype new

passwd: all

authentication tokens updated successfully.

conf]# vim passwd

说明:用户密码 123456

修改password配置文件

找到如下内容,

harry = harryssecret

sally = sallyssecret

在其下新增带背景色内容,如下

shouke=123456

修改authz配置文件

conf]# vim authz

harry_and_sally = harry,sally

harry_sally_and_joe = harry,sally,&joe

在其下新增一行内容,如下

group1 = shouke

[repository:/baz/fuz]

@harry_and_sally = rw

* = r

在其下新增内容,如下

[repo:/]

@group1 = rw

五、     

启动SVN

conf]# svnserve

-d -r /svn/

说明:-d

表示以daemon的方式运行,-r

dir_path

表示把dir_path当作版本库的根目录,比如

/svn/repo,svn://192.168.1.103/repo,访问的就是/svn/repo

查看

conf]# netstat -antp | grep svn

tcp       

0 0.0.0.0:3690           

0.0.0.0:*              

LISTEN     

8474/svnserve  

说明:如上,默认端口为3690

六、     

客户端访问

测试客户端版本:TortoiseSVN-1.9.1.26747-win32-svn-1.9.1.1441852914.msi

SVN CentOS7 下配置svn的安装及基础配置介绍

七、     

常见问题排查

1.Unable to

connect to repository at url ‘svn://…’ No repositroy found at

snv://……,如下

SVN CentOS7 下配置svn的安装及基础配置介绍

说明:访问方式不对,

1)类似svnserve

-d -r /svn/

方式(即指定路径作为根目录)开启的svn服务,正确的访问方式svn://192.168.1.103/repo

即svn://ip[:port]/repository_name

2)不指定路径作为版本库的跟目录里,svnserve

-d

方式开启的svn服务,正确的访问方式svn://192.168.1.103/svn/repo

即svn://[:port]/path_of_repository

2、

please wait

while the repository browser is initializing

说明:防火墙阻止了端口,解决方法(centos7下测试),开放端口

conf]# firewall-cmd --permanent --zone=public

--add-port=3690/tcp

success

conf]# firewall-cmd --reload

3、类似如下,目标计算机积极拒绝或者

SVN CentOS7 下配置svn的安装及基础配置介绍
SVN CentOS7 下配置svn的安装及基础配置介绍

说明:服务器svnserve未开启

作者:授客

QQ:1033553122

全国软件测试QQ交流群:7156436

Git地址:https://gitee.com/ishouke

友情提示:限于时间仓促,文中可能存在错误,欢迎指正、评论!

作者五行缺钱,如果觉得文章对您有帮助,请扫描下边的二维码打赏作者,金额随意,您的支持将是我继续创作的源动力,打赏后如有任何疑问,请联系我!!!

           微信打赏                       

支付宝打赏                  全国软件测试交流QQ群  

SVN CentOS7 下配置svn的安装及基础配置介绍
SVN CentOS7 下配置svn的安装及基础配置介绍
SVN CentOS7 下配置svn的安装及基础配置介绍