阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 7 下SVN的安装及基础配置介绍

212次阅读
没有评论

共计 5716 个字符,预计需要花费 15 分钟才能阅读完成。

CentOS 7 下 SVN 的安装及基础配置介绍

一、实践环境
二、安装操作系统
三、安装 SVN
四、基础配置
五、启动 SVN
六、客户端访问
七、常见问题排查

一、实践环境

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

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

二、安装操作系统

软件选择(SOFTWARE SELECTION):

CentOS 7 下 SVN 的安装及基础配置介绍

三、安装 SVN

[root@localhost ~]# yum install subversion

查看是否安装安装成功

[root@localhost ~]# 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) repository.

Cyrus SASL authentication is available.

四、基础配置

创建一个空文件夹, 例如 svn,作为所有版本库的根目录

[root@localhost ~]# mkdir -p /svn/

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

[root@localhost ~]# cd /svn/

[root@localhost svn]# svnadmin create –fs-type fsfs repo

# 查看 repo 目录文件

[root@localhost svn]# cd repo/

[root@localhost 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 = 权限 1

用户名 2 = 权限 2

……

用户名 n = 权限 n

@自定义分组名 1 = 权限 1

@自定义分组名 2 = 权限 2

……

@自定义分组名 n = 权限 n

& 别名 1 = 权限 1

& 别名 2 = 权限 2

……

& 别名 n = 权限 n

* = 权限

[dir_path]

用户名 1 = 权限 1

用户名 2 = 权限 2

……

用户名 n = 权限 n

@自定义分组名 1 = 权限 1

@自定义分组名 2 = 权限 2

……

@自定义分组名 n = 权限 n

& 别名 1 = 权限 1

& 别名 2 = 权限 2

……

& 别名 n = 权限 n

* = 权限

说明:

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

举例:

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

CentOS 7 下 SVN 的安装及基础配置介绍

那么可以如下设置

[repo:/] / 代表 /svn/

[repo:/test1]

[repo:/test1/test2]

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

[/]

[/test1]

[/test1/test2]

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

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

例:

[repo:/test1/test2]

shouke = rw

那么 svn:192.168.1.103/test1 进行访问,会提示认证失败

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

5) * = 权限,如果无任何权限则不填写,直接 * =,这里,* 表示除了指定的用户,自定义分组,别名之外的任何人

修改 svnserve.conf 配置

[root@localhost conf]# vim svnserve.conf

找到如下内容

[general]

……(略)

# anon-access = read

# auth-access = write

改成如下内容

[general]

……(略)

anon-access = none

auth-access = write

找到如下内容

#password-db = passwd

改成如下内容

password-db = password

找到如下内容

# authz-db = authz

改成如下内容

authz-db = authz

找到如下内容

[sasl]

……(略)

# use-sasl = true

改成如下内容

[sasl]

……(略)

use-sasl = true

新增 svn 用户

[root@localhost conf]# useradd shouke

[root@localhost conf]# passwd shouke

Changing password for user shouke.

New password:

BAD PASSWORD: The password is shorter than 8 characters

Retype new password:

passwd: all authentication tokens updated successfully.

[root@localhost conf]# vim passwd

说明:用户密码 123456

修改 password 配置文件

找到如下内容,

[users]

# harry = harryssecret

# sally = sallyssecret

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

[users]

# harry = harryssecret

# sally = sallyssecret

shouke=123456

修改 authz 配置文件

[root@localhost conf]# vim authz

……(略)

找到如下内容

[groups]

# harry_and_sally = harry,sally

# harry_sally_and_joe = harry,sally,&joe

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

[groups]

# harry_and_sally = harry,sally

# harry_sally_and_joe = harry,sally,&joe

group1 = shouke

找到如下内容

# [repository:/baz/fuz]

# @harry_and_sally = rw

# * = r

在其下新增内容,如下

# [repository:/baz/fuz]

# @harry_and_sally = rw

# * = r

[repo:/]

@group1 = rw

五、启动 SVN

[root@localhost conf]# svnserve -d -r /svn/

说明:-d 表示以 daemon 的方式运行,-r dir_path 表示把 dir_path 当作版本库的根目录,比如 /svn/repo,svn://192.168.1.103/repo,访问的就是 /svn/repo

查看

[root@localhost conf]# netstat -antp | grep svn

tcp  00 0.0.0.0:36900.0.0.0:*  LISTEN    8474/svnserve 

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

六、客户端访问

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

CentOS 7 下 SVN 的安装及基础配置介绍

七、常见问题排查

1.Unable to connect to repository at url‘svn://…’No repositroy found at snv://……,如下

CentOS 7 下 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 下测试),开放端口

[root@localhost conf]# firewall-cmd –permanent –zone=public –add-port=3690/tcp

success

[root@localhost conf]# firewall-cmd –reload

success

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

CentOS 7 下 SVN 的安装及基础配置介绍

说明:服务器 svnserve 未开启.

Ubuntu 14.04 下搭建 SVN 服务器 SVN://  http://www.linuxidc.com/Linux/2015-01/111956.htm

CentOS 7 下安装 iF.svnadmin 实现 Web 方式管理 SVN(源码安装)http://www.linuxidc.com/Linux/2016-08/134214.htm

CentOS 6.5 部署 Apache+SVN  http://www.linuxidc.com/Linux/2013-12/94315.htm

Apache+SVN 搭建 SVN 服务器 http://www.linuxidc.com/Linux/2013-03/81379.htm

Windows 下 SVN 服务器搭建和使用 + 客户端重新设置密码 http://www.linuxidc.com/Linux/2013-05/85189p5.htm

CentOS 6.6 搭建 SVN 服务器 http://www.linuxidc.com/Linux/2016-12/137864.htm

CentOS 7.2 下 Nginx+MySQL+PHP-FPM+SVN 配置 Walle 自动化部署系统详解 http://www.linuxidc.com/Linux/2016-11/137703.htm

Subversion (SVN) 的详细介绍:请点这里
Subversion (SVN) 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-12/138636.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计5716字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中