| 2025-03-6
在 Linux 系统上搭建 SVN 服务器,能有效管理项目文件的版本,促进团队协作开发。以下以常见的 Ubuntu 和 CentOS 系统为例,详细介绍搭建和部署过程,涵盖软件安装、版本库创建、权限配置以及服务启动等方面。
1、 安装 Subversion
打开终端,首先更新系统软件源:
sudo apt - get update
然后安装 Subversion 软件包:
sudo apt - get install subversion
2、 创建版本库
选择一个合适的目录来存放版本库,例如 “/srv/svn”。创建该目录并设置权限:
sudo mkdir -p /srv/svn
sudo chown -R www - data:www - data /srv/svn
sudo chmod -R 755 /srv/svn
使用 svnadmin 命令创建版本库,假设版本库名为 “projectsvn”:
sudo svnadmin create /srv/svn/projectsvn
3、 配置版本库访问权限
进入版本库的配置目录:
cd /srv/svn/projectsvn/conf
编辑 svnserve.conf 文件,进行如下配置:
anon - access = none
auth - access = write
password - db = passwd
authz - db = authz
realm = ProjectRepository
这里设置匿名用户无访问权限,认证用户有写权限。同时指定密码文件为 passwd,权限控制文件为 authz,认证域为 “ProjectRepository”。
4、 配置用户和权限
编辑 passwd 文件添加用户和密码,格式为 “用户名 = 密码”,例如:
developer1 = Dev@12345
developer2 = Dev@67890
编辑 authz 文件设置用户和用户组的权限,示例如下:
[groups]
developers = developer1, developer2
[/]
@developers = rw
*** = r
此配置创建了 “developers” 用户组,赋予组内用户在版本库根目录的读写权限,其他用户只有只读权限。
5、 启动 SVN 服务
使用 svnserve 命令启动 SVN 服务,监听指定端口(默认 3690):
sudo svnserve -d -r /srv/svn
为了让 SVN 服务在系统启动时自动运行,可创建一个 systemd 服务单元。在 “/etc/systemd/system/” 目录下创建 “svnserve.service” 文件,内容如下:
[Unit]
Description = Subversion Server
After = network.target
[Service]
ExecStart = /usr/bin/svnserve -d -r /srv/svn
Restart = always
User = www - data
Group = www - data
[Install]
WantedBy = multi - user.target
保存文件后,执行以下命令使配置生效并设置开机自启:
sudo systemctl daemon - reload
sudo systemctl start svnserve
sudo systemctl enable svnserve
1、 安装 Subversion
首先更新系统软件包:
sudo yum update -y
然后安装 Subversion:
sudo yum install subversion - y
2、 创建版本库与相关配置
这部分操作与 Ubuntu 类似。选择存放版本库的目录,如 “/var/svn”,创建目录并设置权限:
sudo mkdir -p /var/svn
sudo chown -R apache:apache /var/svn
sudo chmod -R 755 /var/svn
创建版本库,例如:
sudo svnadmin create /var/svn/myproject
进入版本库配置目录 “/var/svn/myproject/conf”,编辑 svnserve.conf、passwd 和 authz 文件进行权限和用户配置,配置内容与 Ubuntu 系统下类似。
3、 启动 SVN 服务
使用 svnserve 命令启动服务:
sudo svnserve -d -r /var/svn
若要设置开机自启,编辑 rc.local 文件,添加以下内容:
svnserve -d -r /var/svn
并赋予 rc.local 可执行权限:
sudo chmod +x /etc/rc.d/rc.local
1、 SVN 与 Apache 集成:将 SVN 与 Apache 集成,可以利用 Apache 的强大功能,如虚拟主机支持、用户认证集成等。通过配置 Apache 的 mod_dav_svn 模块,可实现通过 HTTP/HTTPS 协议访问 SVN 版本库,提高访问的便利性和安全性。
2、 备份与恢复 SVN 版本库:定期备份 SVN 版本库至关重要,以防止数据丢失。可以使用 svnadmin dump 命令导出版本库数据,使用 svnadmin load 命令进行恢复。同时,可以结合系统的定时任务(如 cron 任务)实现自动备份。
3、 SVN 性能优化:随着版本库数据量的增加,性能可能会受到影响。可以通过优化配置文件、调整服务器资源分配、使用高效的存储设备等方式来提升 SVN 服务器的性能,确保团队成员能够快速访问和操作版本库。