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

by:授客 QQ1033553122

目录

一、

二、

三、

四、

五、

六、

七、

一、      实践环境

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

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

二、      安装操作系统

软件选择(SOFTWARE SELECTION):


三、     


安装
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/,

那么可以如下设置

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


七、     


常见问题排查

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

说明:访问方式不对,

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、类似如下,目标计算机积极拒绝或者

说明:服务器svnserve未开启

SVN CentOS7 下配置svn的安装及基础配置介绍的更多相关文章

  1. Ubuntu 18.04 下 PostgreSQL 10 的安装与基础配置

    下载安装 在命令行执行如下语句: apt-get install postgresql-10 该指令会帮助你下载如下PostgreSQL组件: name |explain | ------------ ...

  2. Centos7 下的SVN安装与配置

    Centos7 下的SVN安装与配置 1.关闭防火墙 临时关闭防火墙 systemctl stop firewalld 永久防火墙开机自关闭 systemctl disable firewalld 临 ...

  3. centos7下mysql5.7的安装与配置

    centos7下MySQL5.7的安装与配置 下载 下载地址 根据系统和版本选择红框中的四个RPM包下载即可,然后放到centos7系统中的/opt目录下,等待稍后安装. 安装前的准备 1. 检查系统 ...

  4. centos7下源码方式安装gitlab8.9+发送邮件+ldap

    CentOS7下源码方式安装gitlab 环境描述 操作系统: centos7 redis: >=2.8 mysql >=5.5.14 git >=2.7.4 架构设计 一台gitl ...

  5. CentOS7.5 系统最小化安装与初始化配置

    CentOS7.5 系统最小化安装与初始化配置 1.安装标准化的系统 1.1.系统安装期间的语言 选择:中文-简体中文,安装完成也会默认支持中文输出,便于管理 1.2.时区选择 亚洲上海,CST时区( ...

  6. inux centos7下源码 tar安装5.7.26详解

    inux centos7下源码 tar安装5.7.26图文详解 官网地址 https://dev.mysql.com/downloads/mysql/ 1.卸载Linux系统上自带的mysql插件(o ...

  7. CentOS7下MySQL5.7的安装-RPM方式

    Installing MySQL on Linux Using RPM Packages 下载安装包 mysql下载地址:https://dev.mysql.com/downloads/mysql/ ...

  8. CentOS7下搭建SVN服务器

    (1).安装SVN 1)安装SVN [root@youxi1 ~]# yum -y install subversion mod_dav_svn [root@youxi1 ~]# cat /etc/s ...

  9. Centos7下搭建SVN服务,本地提交代码自动同步到WEB目录

    1.安装SVN服务[root@bogon ~]# yum -y install subversion 2.查看svnserve安装目录[root@bogon ~]# whereis svnserves ...

随机推荐

  1. odoo开发基础--模型之基本字段类型

    定义模型的时候,和python的其他框架类似,可以对比Django,同样是一个模型即:一个class对应生成数据库中的一张表, 只是odoo的继承机制比较复杂一点,在日常的开发中,定义模型的时候, 基 ...

  2. (转)Python3之requests模块

    原文:https://www.cnblogs.com/wang-yc/p/5623711.html Python标准库中提供了:urllib等模块以供Http请求,但是,它的 API 太渣了.它是为另 ...

  3. vue通过webpack打包后怎么运行

    1. 成功使用webpack打包完成后会默认得到dist的文件夹 2. dist文件夹中有html与其他的静态文件 3. 在dist文件夹中打开命令窗口或者git,开一个服务器(像anywhere) ...

  4. i=i+1,i+=1,i++哪个执行效率最高?为什么?

    (1)i=i+1最低,它的执行过程如下:读取右i的地址i+1读取左i的地址将右值传给左边的i(编译器并不认为左右i的地址相同)(2)i+=1其次,它的执行过程如下:读取左x的地址i+1将得到的值传给i ...

  5. 执行bin/hdfs haadmin -transitionToActive nn1时出现,Automatic failover is enabled for NameNode at bigdata-pro02.kfk.com/192.168.80.152:8020 Refusing to manually manage HA state的解决办法(图文详解)

    不多说,直接上干货! 首先, 那么,你也许,第一感觉,是想到的是 全网最详细的Hadoop HA集群启动后,两个namenode都是standby的解决办法(图文详解) 这里,nn1,不多赘述了.很简 ...

  6. 摆脱定时任务的cron表达式的困扰

    一.背景 最近因为需要,需要适用Spring的task定时任务进行跑定时任务,以前也接触过,但是因为懒没有好好地理解@Scheduled的cron表达式,这次便对它做了一个全方位的了解和任务,记录下来 ...

  7. php -- 连接Mysql 数据库

    ----- 022-mysql.php ----- <!DOCTYPE html> <html> <head> <meta http-equiv=" ...

  8. Shell脚本 | 一键获取安卓应用活动名

    上篇文章提到,启动时间的计算需要用到应用启动页的活动名(Activity_Name). 如何获取活动名呢?通常有如下几种方式: 1.询问 Dev 同事 2.adb logcat ActivityMan ...

  9. Web Components实践开发Tab组件

    本文是对web components的一次实践,最终目的是做出一个tab组件,本文涉及Custom Elements(自定义元素).HTML Imports(HTML导入).HTML Template ...

  10. 工厂模式——java设计模式

    工厂模式 目录 何为工厂模式 工厂方法与抽象工厂 如何在Java EE中通过@Producers与@Inject注解实现工厂模式 如何创建自定义注解以及通过@Qualifier消除具体实现之间的歧义 ...