一、适用于 CentOS/RHEL 系统
更新系统包
powershell
sudo yum update -y
安装 SVN 服务
powershell
sudo yum install subversion -y

验证安装
powershell
svnserve --version

二、适用于 Ubuntu/Debian 系统
更新系统包
powershell
sudo apt update -y && sudo apt upgrade -y
安装 SVN 服务
powershell
sudo apt install subversion -y
验证安装
powershell
svnserve --version
三、创建 SVN 仓库(通用步骤)
创建仓库目录
powershell
sudo mkdir -p /usr/local/svn/project_repo # 仓库存放路径,可自定义
初始化仓库
powershell
sudo svnadmin create /usr/local/svn/project_repo
配置仓库权限
powershell
cd /usr/local/svn/project_repo/conf
修改用户密码文件(passwd)
编辑passwd,添加用户(格式:用户名 = 密码):
powershell
cat >> passwd <<'EOF'
admin = 123456 # 管理员用户
dev1 = abc123 # 开发者用户
EOF
cat >> passwd <<'EOF' 中的 >> 是追加重定向运算符,会将后续输入的内容添加到 passwd 文件的末尾,而不会覆盖文件原有的内容。
如果是覆盖操作,要使用 > 运算符,例如 cat > passwd <<'EOF' 才会清空原文件内容后写入新内容。
修改权限控制文件(authz)
编辑authz,配置用户 / 组对仓库的权限:
powershell
sudo vi authz
示例(允许admin读写,dev1只读):
powershell
[/] # 表示仓库根目录
admin = rw # 读写权限
dev1 = r # 只读权限
修改服务配置文件(svnserve.conf)
编辑svnserve.conf,开启权限配置(去掉以下行的注释并修改):
powershell
sudo vi svnserve.conf
需修改的配置:
powershell
anon-access = none # 禁止匿名访问
auth-access = write # 授权用户可写
password-db = passwd # 引用密码文件
authz-db = authz # 引用权限文件
realm = /usr/local/svn/project_repo # 仓库路径(客户端会显示)
四、启动 SVN 服务
启动服务
以/usr/local/svn为根目录启动(仓库需放在该目录下):
powershell
sudo svnserve -d -r /usr/local/svn --listen-port 3690
-d:后台运行
-r:指定根目录(客户端访问时可简化路径)
--listen-port 3690:默认端口 3690,可自定义
设置开机自启
CentOS/RHEL:
编辑/etc/rc.d/rc.local,添加启动命令:
powershell
sudo echo "svnserve -d -r /var/svn --listen-port 3690" >> /etc/rc.d/rc.local
sudo chmod +x /etc/rc.d/rc.local
Ubuntu/Debian:
编辑/etc/rc.local(若不存在则创建),添加启动命令:
powershell
sudo echo "svnserve -d -r /var/svn --listen-port 3690" >> /etc/rc.local
sudo chmod +x /etc/rc.local
五、开放阿里云安全组端口
SVN 默认使用 3690 端口,需在阿里云控制台开放:
进入 ECS 实例的安全组配置
添加规则:
端口范围:3690/3690
授权对象:0.0.0.0/0(按需限制来源)
六、客户端测试访问
在本地通过 SVN 客户端测试连接:
powershell
# 检出仓库(替换为服务器公网IP)
svn checkout svn://服务器公网IP/project_repo
七、常用 SVN 命令
powershell
# 停止SVN服务
sudo pkill svnserve
# 查看SVN服务进程
ps -ef | grep svnserve
# 提交文件
svn commit -m "提交说明"
# 更新文件
svn update