查看系统下有没有安装过老版本的svn:rpm -qa subversion,如果没安装过则什么都不显示
如果有老版本先运行一下yum -y remove subversion,删除老版本。
第一步:通过yum命令安装svnserve,命令:yum -y install subversion
此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行
若需查看svn安装位置,可以用命令:rpm -ql subversion
第二步:创建版本库目录(此仅为目录,为后面创建版本库提供存放位置,subversion默认是把/var/svn作为数据根目录的,开机启动默认也是从这里):mkdir /var/svn/svnrepos
第三步:创建svn版本库
在第二步建立的路径基础上,创建版本库:svnadmin create /var/svn/test(test为目录(项目或版本库)名称,后面checkout项目时会用到。)
进入相对目录
进入conf,conf目录下,一共存放三份重要的配置文件,如下:
authz:负责账号权限的管理,控制账号是否读写权限
passwd:负责账号和密码的用户名单管理
svnserve.conf:svn服务器配置文件
修改svnserve.conf:vim svnserve.conf
第四步:配置修改
原始文件内容,都被注释掉的,我们只需要去掉指定内容前注释即可,如下:
[general]
anon-access = none #控制非鉴权用户访问版本库的权限
auth-access = write #控制鉴权用户访问版本库的权限
password-db = passwd #指定用户名口令文件名,即访问时要输用户名和密码
realm = test #指定版本库的认证域,即在登录时提示的认证域名称,改成自己的版本库
修改authz文件信息:vim authz
在文件内容的末尾,添加如下:
rw表示赋予此账号可读写的权限,r为读,w为写,注意[/]中的斜杠,这里如果斜杠反了,authz-db = authz 一直会提示“认证失败”
第一种方式:单个添加:
按账号分权限
[test/]
admin = rw
test = r
备注:版本库的目录格式如下:
[<版本库>:/项目/目录]
@<用户组名> = 权限
<用户名> = 权限
其中[]內容有許多写法:
[/],表示根目录及其一下的路径,根目录是svnserver启动时指定好的,上述实例中我们指定为:/svn/svndata([/]=/svn/svndata).[/]就是表示对全部版本设置的权限
[test:/],表示对版本库test设置权限;
[test:/svnadmin],表示对版本库test中的svnadmin项目设置权限;
[test:/svnadmin/second],表示对版本库test中的svnadmin项目的目录设置权限;
权限的主体可以是用户组,用户或者*,用户组在前面要以@开头,*表示全部用户
权限分为:r ,w, rw和null ,null空表示没有任何权限。
auhtz配置文件中的每个参数,开头不能有空格,对于组要以@开头,用户不需要。
修改passwd文件信息:vim passwd
第五步:防火墙开启
多数情况下服务器安装完成,配置完成后,无法连接svn服务器,均是防火墙问题
配置防火墙端口
首先要明确CentOS7的默认防火墙为firewallD。subversion的默认端口为3690,如果没有打开会报错:
1: sudo firewall-cmd --permanent --add-service=telnet
2: sudo firewall-cmd --permanent --add-port=3690/tcp
3: sudo firewall-cmd --reload
centOS 7 防火墙开启、关闭与查看状态:
systemctl start firewalld
systemctl stop firewalld
systemctl status firewalld
出现以下情况则代表防火墙没启动用systemctl status firewalld查看防火墙状态
六:启动svn服务器
-d : 守护进程 -r : svn数据根目录
svnserve -dr /var/svn #用root权限启动
查看SVN服务:
ps aux|grep svnserve #默认端口为:3690