Alibaba Cloud Linux 3 安装 SVN

一、适用于 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
相关推荐
m0_474606781 小时前
Linux安装docker教程
linux·运维·docker
落霞的思绪1 小时前
Mybatis读取PostGIS生成矢量瓦片实现大数据量图层的“快显”
linux·运维·mybatis·gis
像风一样的男人@1 小时前
linux --防火墙
linux·运维·服务器
网硕互联的小客服2 小时前
Centos系统如何更改root账户用户名?需要注意什么?
linux·运维·服务器·数据库·安全
lisanmengmeng2 小时前
zentao的prod环境升级(一)
linux·运维·数据库·docker·容器·禅道
wunianor2 小时前
[高并发服务器]DEBUG日志
linux·运维·服务器·c++
nbsaas-boot2 小时前
SQL Server 存储过程设计规范(事务与异常处理)
linux·数据库·设计规范
Jason_zhao_MR3 小时前
米尔RK3506核心板SDK重磅升级,解锁三核A7实时控制新架构
linux·嵌入式硬件·物联网·架构·嵌入式·嵌入式实时数据库
网硕互联的小客服3 小时前
遇到网站500内部服务器错误如何处理?如何预防这样的问题发生?
运维·服务器·安全
叮咚侠3 小时前
Ubuntu 24.04.3 LTS 中 vdb 的 UUID 永久挂载没有显示的磁盘的操作步骤
linux·运维·ubuntu·挂载磁盘