环境
名称 | 版本 | 供应商 |
---|---|---|
CentOS | 7.6 | 阿里云 |
SVN | 1.7.14 | Apache |
安装
# 安装SVN
yum install subversion
# 查询SVN版本,判断是否安装成功
svnserve --version
配置
-
创建SVN仓库
# 创建'code'仓库文件夹目录 mkdir -p /opt/svnrepos/code/ # 初始化'code'仓库 svnadmin create /opt/svnrepos/code/
-
编辑用户与权限
# 打开'code'仓库配置文件夹目录 cd /opt/svnrepos/code/conf/ # 将'authz'与'passwd'文件复制至'svnrepos'目录,作为公共的权限与用户配置 cp authz /opt/svnrepos/ cp passwd /opt/svnrepos/ # 编辑'code'仓库配置 vim svnserve.conf
编辑内容如下:
[general] # 禁止匿名用户访问 anon-access = none # 授权用户拥有读写权限 auth-access = write # 用户信息使用公共配置文件 password-db = /opt/svnrepos/passswd # 用户权限使用公共配置文件 authz-db = /opt/svnrepos/authz # 指定认证域 realm = /opt/svnrepos/code/
# 保存并关闭文本编辑器 :wq
编辑公共仓库用户信息配置
# 编辑用户信息 vim /opt/svnrepos/passwd
[users] # 用户名 = 密码 admin = 123456789 user = password guest = passport
# 保存并关闭文本编辑器 :wq
编辑公共仓库用户权限配置
# 编辑用户权限 vim /opt/svnrepos/authz
[aliases] [groups] # 组名 = 用户名 root = admin code = user,guest # 根目录(/opt/svnrepos/) [/] # code组对所有版本库拥有读写权限,r为读,w为写 @root = rw # code仓库的根目录(/opt/svnrepos/code/) [code:/] # code组对此目录有读写权限 @code = rw
# 保存并关闭文本编辑器 :wq
-
创建服务脚本
cd /etc/init.d # 创建脚本文件 touch svnd chmod u+x svnd # 编辑脚本文件 vim svnd
脚本内容如下:
#!/bin/sh # chkconfig: 2345 10 90 # description: svn server SVN_HOME=/opt/svnrepos if [ ! -f "/usr/bin/svnserve" ] then echo "svnserver startup: cannot start" exit fi case "$1" in start) echo "Starting svnserve…" /usr/bin/svnserve -d --listen-port 3690 -r $SVN_HOME echo "Finished!" ;; stop) echo "Stoping svnserve…" killall svnserve echo "Finished!" ;; restart) $0 stop $0 start ;; *) echo "Usage: svn { start | stop | restart } " exit 1 esac
# 保存并关闭文本编辑器 :wq
-
启动服务
# 开启服务 service svnd start # 查看服务进程是否正常运行 ps -ef | grep 'svnserve'
-
开启自启动
# 修改默认仓库目录 vim /etc/sysconfig/svnserve
# 将此项改为自定义的仓库目录 OPTIONS="-r /opt/svnrepos"
# 保存并关闭文本编辑器 :wq # 开启系统自启动 systemctl enable svnserve.service # 重启生效 shutdow -r now # 查看进程信息 ps -aux | grep 'svn'
-
SVN服务器需要开启3690端口(默认端口)提供给客户端访问(svn://{服务器IP}/{库名})。