1. 安装
CentOS通过yum安装subversion。
[root@localhost ~]# sudo yum installsubversion
直接在终端运行rm -f /var/run/yum.pid将该文件删除,然后再次运行yum
查看安装目录和版本:
[root@localhost ~]# which svnserve
/usr/bin/svnserve
[root@localhost ~]# svnserve --version
svnserve,版本 1.7.14(r1542130)
2. 建立版本库
subversion默认以/var/svn作为数据根目录,可以通过/etc/sysconfig/svnserve修改这个默认位置。
使用svnadmin建立版本库
[root@localhost ~]# sudo mkdir -p /var/svn
[root@localhost ~]# sudo svnadmin create/var/svn/svnworke
3. 配置
[root@localhost ~]# cd /var/svn/svnworke
[root@localhost svnworke]# ls
conf db format hooks locks README.txt
[root@localhost svnworke]# cd conf/
[root@localhost conf]# ls
authz passwd svnserve.conf
编辑用户文件passwd,新增用户:svn和kj:
[root@localhost conf]# vim passwd
[users]
# harry = harryssecret
# sally = sallyssecret
svn = 123456
kj = kj
编辑权限文件authz,用户svn设置可读写权限,kj设置只读权限。
[root@localhost conf]# vim authz
[/]
svn=rw
kj=r
编辑svnserve.conf:
[general]
anon-access = none #控制非鉴权用户访问版本库的权限
auth-access = write #控制鉴权用户访问版本库的权限
password-db = passwd #指定用户名口令文件名
authz-db = authz #指定权限配置文件名
realm = /var/svn/svnworke #指定版本库的认证域,即在登录时提示的认证域名称
:
启动SVN服务。
$ sudo systemctl start svnserve.service
检查服务是否启动成功。
$ ps aux | grep svn
设置成开机启动。
$ sudo systemctl enable svnserve.service
用systemctl检查服务器的防火墙配置:
[root@localhost conf]# sudo systemctl enable svnserve.service
[root@localhost conf]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: ssh dhcpv6-client
ports: 21/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
可以看到,没有telnet服务和3690端口,增加telnet服务器和3690端口:
[root@localhost conf]# sudo firewall-cmd --permanent --add-service=telnet
success
[root@localhost conf]# sudo firewall-cmd --permanent --add-port=3690/tcp
success
[root@localhost conf]# sudo firewall-cmd --reload
Success
svn启动一定要从版本库启动,不能直接启动svn,先关闭再重启svn
[root@localhost conf]# chmod 777 -R/var/svn
[root@localhost conf]# killall svnserve
[root@localhost conf]# svnserve -d -r/var/svn/