Linux部署SVN详细步骤是怎样的?新手必看指南
Linux环境下部署SVN服务器的完整指南
准备工作与环境检查
在Linux系统中部署SVN(Subversion)服务器前,需确保系统满足基本要求并完成相关准备工作,推荐使用CentOS或Ubuntu等主流发行版,本文以CentOS 7为例进行说明,确保系统已更新至最新状态,执行sudo yum update -y(CentOS)或sudo apt update && sudo apt upgrade -y(Ubuntu)。

检查系统是否已安装必要的依赖包,如gcc、make、openssl-devel等,可通过yum groupinstall "Development Tools" -y安装开发工具集,建议为SVN服务创建独立用户,如sudo useradd -m -s /bin/bash svnuser,并设置密码,确保服务运行安全性。
安装SVN服务
SVN的安装可通过包管理器或源码编译两种方式完成,推荐使用包管理器安装,操作简便且稳定性高。
-
通过Yum安装(CentOS)
执行sudo yum install subversion -y,安装完成后通过svnserve --version验证安装是否成功,若显示版本信息则表示安装成功。 -
通过Apt安装(Ubuntu)
执行sudo apt install subversion -y,同样可通过svnserve --version确认安装。
若需自定义安装路径或启用特定功能,可下载SVN源码并编译安装,从官网获取最新源码包(如subversion-1.14.2.tar.gz),解压后执行./configure --prefix=/usr/local/svn、make、sudo make install完成编译安装。
创建版本库
版本库是SVN存储数据的核心,需合理规划目录结构,假设版本库存放路径为/var/svn/repos,执行以下步骤:
- 创建目录:
sudo mkdir -p /var/svn/repos - 创建版本库:
sudo svnadmin create /var/svn/repos/myproject - 设置权限:
sudo chown -R svnuser:svnuser /var/svn/repos
版本库创建后,进入myproject目录,会看到conf、db、hooks等子目录,其中conf目录包含三个关键配置文件:svnserve.conf(主配置文件)、passwd(用户密码)、authz(权限控制)。
配置SVN服务
-
编辑主配置文件
打开svnserve.conf,取消以下行的注释并修改:
[general]
anon-access = none # 禁止匿名访问
auth-access = write # 允许认证用户读写
password-db = passwd # 密码文件路径
authz-db = authz # 权限控制文件路径
realm = MyProject SVN # 认证域名称 -
配置用户与密码
编辑passwd文件,添加用户及密码,格式为username = password,[users]
admin = 123456
developer = abcdef -
配置权限控制
编辑authz文件,设置用户或用户组的访问权限,示例配置如下:[groups]
admin_group = admin
dev_group = developer
[/]
@admin_group = rw # 管理员组对根目录有读写权限
@dev_group = rw # 开发组对根目录有读写权限
* = r # 其他用户只读
[myproject:/trunk] # 仅开发组可访问trunk目录
@dev_group = rw
启动与优化SVN服务
-
启动SVN服务
通过命令行启动SVN服务:sudo svnserve -d -r /var/svn/repos
参数说明:
-d表示后台守护进程运行,-r指定版本库根目录。 -
设置开机自启
在CentOS中,可通过创建systemd服务实现开机自启,创建文件/etc/systemd/system/svnserve.service如下:[Unit]
Description=Subversion Protocol Daemon
After=network.target
[Service]
Type=forking
User=svnuser
Group=svnuser
ExecStart=/usr/bin/svnserve -d -r /var/svn/repos
Restart=always
[Install]
WantedBy=multi-user.target执行
sudo systemctl enable svnserve并sudo systemctl start svnserve启用服务。 -
防火墙与端口配置
SVN默认使用3690端口,需开放防火墙规则:sudo firewall-cmd --permanent --add-port=3690/tcp
sudo firewall-cmd --reload
客户端连接与验证
使用SVN客户端(如TortoiseSVN或命令行工具)连接服务器,命令行连接示例:

svn checkout svn://服务器IP/myproject /local/path
输入用户名和密码后,若成功下载项目文件,则表示部署成功。
常见问题与维护
-
权限问题
若提示权限不足,检查authz文件配置及目录权限,确保svnuser用户对版本库有读写权限。 -
服务无法启动
检查端口占用情况:sudo netstat -tulnp | grep 3690,若端口被占用,可修改svnserve.conf中的listen-port或停止冲突进程。 -
备份与恢复
定期备份版本库,使用svnadmin hotcopy命令创建完整备份:sudo svnadmin hotcopy /var/svn/repos/myproject /backup/svn/myproject_backup
恢复时,将备份文件复制到版本库目录并重启SVN服务。
通过以上步骤,即可在Linux系统中完成SVN服务器的部署与配置,合理规划版本库结构、精细控制权限,并定期维护,可确保SVN服务稳定高效运行,为团队协作提供可靠支持。