1. 操作总览
# 下载安装SVN
yum -y install subversion
# 根目录下创建版本库文件夹
mkdir /svnrepos
# 创建版本库test
svnadmin create /svnrepos/test
# 进入版本库test的配置文件夹下
cd /svnrepos/test/conf
# 配置用户名密码
vi passwd
# 配置用户/组权限
vi authz
# 修改版本库配置文件
vi svnserve.conf
# 防火墙开放3690端口
firewall-cmd --permanent --add-port=3690/tcp
# 重新加载防火墙
firewall-cmd --reload
# 开启SVN服务
svnserve -d -r /svnrepos
# 关闭SVN服务
pkill svnserve
Client Checkout URL: svn://yourip/test
注意:针对阿里云用户:在防火墙开启3690端口步骤后仍需手动配置实例安全组,开启3690端口
2. 配置详情
2.1 svnserve.conf 配置
# 匿名用户权限配置,none无权限,read读权限,write写权限
anon-access = none
# 认证用户权限配置
auth-access = write
# 设置密码配置文件路径
password-db = passwd
# 设置权限配置文件路径
authz-db = authz
# 设置版本库的认证域,随便起个名字
realm = userDefined
# 其他的[sasl]下的可以不配置
2.2 passwd 配置
# 这个文件是用来配置用户名和密码的
[users]
# 用户名admin,密码123
admin = 123
# 用户名guest,密码456
guest = 456
2.3 authz 配置
# authz文件用于配置用户组、用户/用户组的访问权限
# groups下配置用户组
[groups]
# admins组下有admin,super,root这三个用户
admins = admin,super,root
# guest组里有vister,zhangsan这两个用户
guest = visiter,zhangsan
# 配置版本库的访问权限
# 格式: 版本库名:路径
# 下面这个配置的意思是:对test版本库(仓库)下的所有文件路径进行配置
# admins组中的用户可以读写,guest组中用户可以读,其他没有权限访问
[test:/]
@admins = rw
@guest = r
* =
# 对根路径(svnrepos/)进行配置, admins组有读写权限
[/]
@admins = rw
* =
3. 常见问题
遇到最多的问题是:cannot connect to a repository at URL...
出错点在于:
svnserve -d -r /svnrepos
svn://yourip/test
4. Bonus time
常用防火墙操作命令
firewall-cmd --permanent --query-port=3690/tcp
firewall-cmd --permanent --add-port=3690/tcp
firewall-cmd --permanent --remove-port=3690/tcp
firewall-cmd --reload
结束SVNServe命令
pkill svnserve
如有问题,欢迎提出来共同讨论学习!