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

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

CentOS7下配置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)

 

 


三、     安装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

 

文件说明:

1svnserve.conf文件

该文件用于控制svnserve守护进程(svnserve daemon)的配置,以便访问svn版本库。如果仅是通过http://或者file:URLs方式访问版本库,则与该文件配置不起作用。

 

[general]结点

anon-access(匿名访问)和auth-access(认证访问)选项,分别用于控制未认证用户和与认证用户对svn版本库的访问,其可选值包含writereadnone,如果设置为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

 

2password文件

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

[users]

用户名1 =用户密码1

用户名2 =用户密码2

……

用户名n =用户密码n

 

3authz文件

该文件为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]

 

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

 

3)权限可为rwrw,分别代表只可读,只可写,可读可写,这里rwrw只针对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/reposvn://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/reposvn://ip[:port]/repository_name

2)不指定路径作为版本库的跟目录里,svnserve -d方式开启的svn服务,正确的访问方式svn://192.168.1.103/svn/reposvn://[:port]/path_of_repository

 

2please 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未开启

 

目录
相关文章
|
15天前
|
存储 分布式计算 Hadoop
Centos7.9安装kerberos
Centos7.9安装kerberos
67 25
|
10天前
|
存储 Shell 网络安全
Centos7.9安装openldap
Centos7.9安装openldap
41 16
|
11天前
|
数据可视化 Linux 应用服务中间件
Centos7.9安装phpldapadmin
Centos7.9安装phpldapadmin
41 15
|
15天前
|
Java
CentOS7.8配置Adoptium-Java17运行环境
本指南介绍如何设置清华镜像源并安装 Temurin-17-JRE 运行环境。首先,编辑 `/etc/yum.repos.d/adoptium.repo` 文件,配置清华镜像源。接着,使用 `yum install -y temurin-17-jre` 命令安装 Temurin-17-JRE,并通过 `java --version` 验证安装成功。相关配置和操作界面截图附后。
33 8
|
14天前
|
网络协议 Java 应用服务中间件
centos7环境下tomcat8的安装与配置
本文介绍了在Linux环境下安装和配置Tomcat 8的详细步骤。首先,通过无网络条件下的文件交互软件(如Xftp 6或MobaXterm)下载并解压Tomcat安装包至指定路径,启动Tomcat服务并测试访问。接着,修改Tomcat端口号以避免冲突,并部署Java Web应用项目至Tomcat服务器。最后,调整Linux防火墙规则,确保外部可以正常访问部署的应用。关键步骤包括关闭或配置防火墙、添加必要的端口规则,确保Tomcat服务稳定运行。
|
2月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第16天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括配置系统源、安装 SQL Server 2019 软件包以及数据库初始化,确保 SQL Server 正常运行。
134 4
|
2月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第8天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统准备、配置安装源、安装 SQL Server 软件包、运行安装程序、初始化数据库以及配置远程连接。通过这些步骤,您可以顺利地在 CentOS 系统上部署和使用 SQL Server 2019。
153 1
|
2月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第7天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统要求检查与准备、配置安装源、安装 SQL Server 2019、配置 SQL Server 以及数据库初始化(可选)。通过这些步骤,你可以成功安装并初步配置 SQL Server 2019,进行简单的数据库操作。
|
2月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
177 3
|
2月前
|
存储 安全 Linux
VMware安装CentOS7
【11月更文挑战第11天】本文详细介绍了在 VMware 中安装 CentOS 7 的步骤,包括准备工作、创建虚拟机、配置虚拟机硬件和安装 CentOS 7。具体步骤涵盖下载 CentOS 7 镜像文件、安装 VMware 软件、创建和配置虚拟机硬件、启动虚拟机并进行安装设置,最终完成 CentOS 7 的安装。在安装过程中,需注意合理设置磁盘分区、软件选择和网络配置,以确保系统的性能和功能满足需求。
334 0