| 2025-03-16
在Linux 环境下搭建 SVN 服务器,能为开发团队提供高效的版本控制服务。搭建过程涉及系统更新、软件安装、版本库创建及配置等环节。
1.系统更新
搭建前,务必更新系统,确保软件包为最新版本,避免潜在兼容性问题。通过 SSH 连接到 Linux 服务器,在终端输入:
sudo yum update # 适用于CentOS等基于yum的系统
或
sudo apt update # 适用于Ubuntu等基于apt的系统
按提示输入 “y” 确认更新。更新完成后,执行sudo yum upgrade或sudo apt upgrade安装更新。此过程依网络状况和更新量而定,可能耗时较长。
2.安装 SVN 服务器软件
基于 yum 的系统(如 CentOS),使用以下命令安装:
sudo yum install subversion
基于 apt 的系统(如 Ubuntu),安装命令为:
sudo apt install subversion
安装时,系统提示确认,输入 “y” 继续。安装完成,系统具备运行 SVN 服务器的基础。
3.创建 SVN 版本库
一般在 “/var/svn/” 目录创建版本库,方便管理。以创建 “myproject” 版本库为例,执行:
sudo svnadmin create /var/svn/myproject
执行后,“/var/svn/” 目录生成 “myproject” 文件夹,此为 SVN 版本库,其 “conf” 目录存配置文件,“db” 目录存版本数据。
4.配置版本库权限
进入 “/var/svn/myproject/conf” 目录,用文本编辑器(如 vim)打开 “svnserve.conf” 文件:
sudo vim /var/svn/myproject/conf/svnserve.conf
修改以下配置项:
anon-access = none # 禁止匿名访问
auth-access = write # 授权用户可写
password-db = passwd # 指定密码文件
authz-db = authz # 指定权限控制文件
保存关闭。接着编辑 “passwd” 文件添加用户密码,在 “[users]” 部分按 “username = password” 格式添加,如:
[users]
user1 = P@ssw0rd1
user2 = P@ssw0rd2
保存关闭。再编辑 “authz” 文件设置权限,如赋予 “user1” 对 “myproject” 版本库根目录读写权:
[myproject:/]
user1 = rw
保存关闭。经此配置,实现版本库精细权限控制。
5.启动 SVN 服务器
基于 yum 的系统,用 systemctl 命令启动:
sudo systemctl start svnserve
设开机自启:
sudo systemctl enable svnserve
基于 apt 的系统,启动命令:
sudo svnserve -d -r /var/svn
设开机自启,在 “/etc/systemd/system/” 目录创建 “svnserve.service” 文件,输入:
[Unit]
Description=Subversion server
After=network.target
[Service]
ExecStart=/usr/bin/svnserve -d -r /var/svn
Restart=always
[Install]
WantedBy=multi-user.target
保存关闭,执行sudo systemctl daemon-reload和sudo systemctl enable svnserve。
至此,Linux 系统成功搭建 SVN 服务器,团队成员可通过 SVN 客户端连接,开展项目版本管理。
拓展阅读
-SVN 与 Git 对比:Git 是分布式版本控制系统,SVN 是集中式。Git 在离线工作、分支管理灵活;SVN 权限管理、代码追溯佳。项目团队可依开发需求选版本控制系统,如对权限管理要求高选 SVN,需频繁离线开发选 Git。
-使用 Apache 作为 SVN 前端:可将 Apache 作 SVN 服务器前端,利用其 HTTP/HTTPS 协议、集成用户认证功能。在基于 yum 系统,安装httpd和mod_dav_svn包,配置 Apache 虚拟主机;基于 apt 系统类似。配置后可通过浏览器访问 SVN 服务器。
-SVN 版本库备份恢复:定期备份 SVN 版本库至关重要。用svnadmin dump命令备份,如sudo svnadmin dump /var/svn/myproject > myproject_dump.svn;恢复时用svnadmin load命令,如sudo svnadmin load /var/svn/newproject < myproject_dump.svn,保障数据安全。