【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)

  • 前期环境准备

本次系统环境:centos7.6,minimal

首先关闭防火墙,NetworkManager,selinux;

其次,配置好本地yum源;

  • 第一步:通过yum命令安装svnserve

先查看系统中是否存在subversion软件?

rpm -qa|grep subversion

 

备注:

默认ISO里已经有subversion软件包了,且,最小化版本中已经装好了subversion软件包了;

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第1张图片【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第2张图片

如果已存在,可忽略此步骤;若不存在,则利用yum安装此软件:

yum -y install subversion

 

查看svn的安装目录

rpm -ql subversion

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第3张图片

# 查看svn版本:

/usr/bin/svnversion --version

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第4张图片

  • 第二步:创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)

选择在var路径下创建版本库:

mkdir /var/svnrepos

  • 第三步:创建svn版本库

在第二步建立的路径基础上,创建版本库,命令如下:

svnadmin create /var/svnrepos/test-svn  

test-svn为你预期的版本库名称,可自定义

 

创建成功后,进入test-svn目录下

cd /var/svnrepos/test-svn

进入目录,可以看见如下文件信息:

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第5张图片

# 备注:

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第6张图片

  • 第四步:配置修改

进入已经创建好的版本库目录下,也就是前文说创建的test-svn,进入conf

cd /var/svnrepos/test-svn/conf

conf目录下,一共存放三份重要的配置文件,如下:

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第7张图片

authz:负责账号权限的管理,控制账号是否读写权限

passwd:负责账号和密码的用户名单管理

svnserve.conf:svn服务器配置文件

1.编辑 passwd 文件

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第8张图片

 

如上所示:

用户名为:hg,认证密码为:xxx

用户名为:zxl,认证密码为:xxx

 

2.编辑 authz 文件(注意:[/]也是必须的)

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第9张图片

注意:在最后一行添加即可。

[/]   表示根目录,即 /var/svnrepos

hg = rw  表示用户hg对根目录具有读写权限。

zxl = rw  表示用户zxl对根目录具有读写权限。

 

3.编辑 svnserve.conf 文件(注意:配置的前面不能有空格,一定要顶格写

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第10张图片

anon-access = none:表示禁止匿名用户访问。

auth-access = write:表示授权用户拥有读写权限。

password-db = passswd:指定用户名口令文件,即 passwd 文件。

authz-db = authz:指定权限配置文件,即 authz 文件。

realm = /var/svnrepos:指定认证域,即 /var/svnrepos 目录。

 

  • 第五步:防火墙开启

# 注意:如果防火墙关闭的话,此步骤可跳过;

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第11张图片

# 多数情况下服务器安装完成,配置完成后,无法连接svn服务器,均是防火墙问题【注意:如果是阿里云,腾讯云的服务器,还需在安全组添加端口开启规则

 

# 7版本防火墙:

查看防火墙状态

firewall-cmd --state

 

开启防火墙

systemctl start firewalld.service

 

开启端口

firewall-cmd --zone=public --add-port=3690/tcp --permanent

 

重启防火墙

systemctl restart firewalld.service

 

查看已开放的端口

firewall-cmd --list-port

 

# 6版本防火墙:

vi /etc/sysconfig/iptables

添加配置信息

 

-A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT

保存退出

 

systemctl restart iptables.service #重启防火墙使配置生效

  • :启动或关闭svn服务器

svnserve -d -r /var/svnrepos

参数:

-d:表示后台运行守护模式;

-r:表示svn服务的根目录;

# 注意。这里目录指的时版本库存放目录位置;

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第12张图片

检测svn端口3690是否已经监听:

netstat -antlp|grep svnserve

netstat -antlp|grep 3690

ps -ef | grep 'svnserve'

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第13张图片

# 关闭SVN 方法:

这里采取linux杀死进程的方式处理的

ps -ef|grep svnserve

root      4967     1  0 Aug23 ?        00:00:00 svnserve -d -r repository/  

这里  kill -9 4967杀死进程, 此4967为进程号

  • 第七步:客户端访问svn服务器

(1)Windows下常用的客户端软件常用TortoiseSVN。它是一个免费的开源的客户端。  

在windows客户端,输入地址:svn://ip地址:3690/xxxx   (iP地址为你linux的ip,xxxx为前文创建的版本库名称,3690为svn默认端口)

弹出输入用户名和密码,输入即可访问

# svn://10.10.10.130:3690/test-svn  搭建成功。

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第14张图片【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第15张图片

这里测试增加、修改、删除文件均没问题,一切正常。

 

(2)在linux服务器输入命令测试:

svn co svn://ip地址:3690/xxxx

如下为例子:

# svn co svn://10.10.10.130:3690/test-svn

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第16张图片

下载的SVN目录在家目录下:

  • SVN搭建过程其他注意事项

(1)关于版本库路径问题说明:

第一种配置:版本库目录与其根目录不是同一个。(目前推荐这种方法)

# 创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)

mkdir /var/svnrepos

# 创建svn版本库

svnadmin create /var/svnrepos/test-svn (test-svn为你预期的版本库名称,可自定义)

# 编辑 authz 文件(注意:[/]也是必须的)

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第17张图片

注意:在最后一行添加即可。

[/]   表示根目录,即 /var/svnrepos

hg = rw  表示用户hg对根目录具有读写权限。

zxl = rw  表示用户zxl对根目录具有读写权限。

 

# 启动svn服务器:

svnserve -d -r /var/svnrepos

参数:

-d:表示后台运行守护模式;

-r:表示svn服务的根目录;

# 注意。这里目录指的时版本库存放目录位置;

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第18张图片

# 注意:如果有第二个版本库的,该如何启动呢??;

只能再为第二个版本库新创建个路径了,再创建对应的版本库;

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第19张图片

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第20张图片

 

(2)authz文件的配置方法

(1)默认配置:

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第21张图片

1.配置passwd文件:# passwd文件内容不变

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第22张图片

2.编辑 authz 文件(注意:[/]也是必须的)

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第23张图片

注意:在最后一行添加即可。

[/]   表示根目录,即 /var/svnrepos

hg = rw  表示用户hg对根目录具有读写权限。

zxl = rw  表示用户zxl对根目录具有读写权限。

3.编辑 svnserve.conf 文件(注意:配置的前面不能有空格,一定要顶格写

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第24张图片

anon-access = none:表示禁止匿名用户访问。

auth-access = write:表示授权用户拥有读写权限。

password-db = passswd:指定用户名口令文件,即 passwd 文件。

authz-db = authz:指定权限配置文件,即 authz 文件。

realm = /var/svnrepos:指定认证域,即 /var/svnrepos 目录。

 

(2)组配置:(推荐这个方法)

# 参考1:

注意:

这里的/目录及[/Files]格式,描述的都是目录信息:

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第25张图片

# 一般实际配置如下:

[groups]

admin = hg, zxl

 

 

[/]

@admin = rw

@developer = rw

* =

 

# [/ProjectA]

# @admin = rw

# @developer = rw

# * =

 

# [/ProjectA/ProjectA_info]

# @admin = rw

# @developer = rw

# * =

(3)修改svn服务的端口号:

注意,这边配置了3693端口口,客户顿无法访问原来的版本库:

本人建议指定端口的启动方式,如果建立多个仓库,也便于管理。

svn默认端口为3690,需要在防火墙添加才可在svn客户端访问

 

在此,我选择用3693端口启动

启动命令:svnserve -d -r /var/svnrepos/ --listen-port 3693

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第26张图片

(4)执行svn命令:svn co svn://ip地址:3690/xxxx报错如下

这是因为修改svnserve.conf时,打开注释时,配置的前面有空格,应该顶格写。修改后即可!

(5)svn图标消失问题:

解决方法:

ctrl+f搜索ShellIconOverlayIdentifiers(这里需要一会时间,耐心等待就是的)

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第27张图片

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第28张图片【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第29张图片

重启电脑后图标依然可见:

# 注意:

自己电脑这里默认就有空格的:因此,重新启动下资源管理器就ok了,不需要重新启动电脑。

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第30张图片

结束!

【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706)_第31张图片

你可能感兴趣的:(【SVN】centos7.6搭建svn(工作实战_亲测成功_20200706))