一、简介
SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。
二、安装
- 1、通过 yum 命令安装 svnserve,命令如下:
yum -y install subversion
验证安装:
svn help
如果安装成功,就会看见 svn 的版本信息等;
- 2、创建 SVN 仓库目录
我喜欢把 svn 仓库放在 /opt 目录下,当然,你也可以根据自己的习惯放在不同的目录,创建目录:
mkdir /opt/svn
创建一个 svn 的仓库,我的仓库名叫:goods
svnadmin create /opt/svn/goods/
进入仓库,即可以看见里面的文件
cd /opt/svn/goods/
ls
- 3、仓库文件说明
hooks 目录:放置 hook 脚步文件的目录
locks 目录:用来放置 subversion 的 db 锁文件和 db_logs 锁文件的目录,用来追踪存取文件库的客户端
format 目录:是一个文本文件,里边只放了一个整数,表示当前文件库配置的版本号
conf 目录:是这个仓库配置文件(仓库用户访问账户,权限)
- 4、修改配置文件
进入 conf 目录
cd conf/
配置文件都放在 conf 目录下,conf 目录下的文件包括:
authz:负责账号权限的管理,控制账号是否读写权限
passwd:负责账号和密码的用户名单管理
svnserve.conf:svn 服务器配置文件
我们首先修改 svnserve.conf 文件:
vim svnserve.conf
将 anon-access 前面的注释去掉,将对应的值设置为:none
将 auth-access 前面的注释也去掉
将 password-db 前面的注释也去掉
将 authz-db 前面的注释也去掉
将 realm 前面的注释也去掉,将对应的值设置为你的 svn 仓库地址:/opt/svn/goods
注意,在去掉注释后,前面的空格也要去掉
配置说明:
anon-access = none:表示禁止匿名用户访问
auth-access = write:表示授权用户拥有读写权限
password-db = passswd:指定用户名口令文件,即 passwd 文件
authz-db = authz:指定权限配置文件,即 authz 文件
realm = /opt/svn/goods:指定认证域,即 /opt/svn/goods 目录
然后修改passwd文件:
vim passwd
在文件末尾追加需要开通的账号和密码,使用 = 号连接,例如:
xiaoming = 123456
注意,用户和密码都是明文显示的
然后修改 authz 文件:
vim authz
在文件末尾追加一下内容:
[/] xiaoming=rw
配置说明:
[/]:表示根目录,即 /opt/svn/goods
xiaoming=rw:表示用户 xiaoming 对根目录具有读写权限
三、开放端口
SVN 服务的默认端口为 3690,可以通过下面的命令查看:
netstat -antp | grep svn
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 66486/svnserve
开放3690端口:
sudo firewall-cmd --permanent --add-port=3690/tcp
重启防火墙生效
sudo firewall-cmd --reload
多数情况下服务器安装完成,配置完成后,无法连接 svn 服务器,均是防火墙问题【注意:如果是阿里云,腾讯云的服务器,还需在安全组添加端口开启规则】
四、启动 SVN 服务
svnserve -d -r /opt/svn/
启动命令说明:
-d:表示svnserve.exe 将会作为一个服务程序运行在后台
-r:表示把 /opt/svn 目录作为根目录
查看 svn 服务是否启动成功:
ps -ef | grep 'svnserve'
如果启动失败,有可能是 svn 服务已经启动了,关闭进程,再次启动即可
killall svnserve
svnserve -d -r /opt/svn/
也可以使用管道的方式查找 svn 的进程号
ps -ef | grep svn
kill -9 进程号
五、本地连接 SVN 服务
使用 IDEA 或者 Eclipse 等工具安装 svn 插件后,即可连接 svn 服务,连接地址为:
svn://ip
本次安装的 svn 服务是基于 svn 协议的,并不是常见的 http 协议,请注意。
好了,本次在 Centos7 环境下搭建 SVN 服务器的学习已经全部结束!!!