新闻资讯

Linux SVN 服务器搭建和配置

2025-03-06

在 Linux 系统上搭建 SVN 服务器,能有效实现团队项目的版本控制。常见的 Linux 发行版如 CentOS、Ubuntu 等,搭建步骤大致相似,但在软件包管理和路径等细节上有所不同。以下以 CentOS 7 为例,详细介绍搭建和配置过程。

安装必要软件包

1、 更新系统软件包:以 root 用户身份登录系统,打开终端执行以下命令更新系统软件包:
yum update -y
此命令会从软件源下载并安装系统和已安装软件包的最新更新,确保系统处于最新状态,避免因软件版本问题导致的兼容性故障。
2、 安装 Subversion:执行以下命令安装 Subversion 服务器及其相关依赖项:
yum install subversion -y
这将安装 Subversion 所需的核心组件,为搭建 SVN 服务奠定基础。

创建 SVN 版本库

1、 选择版本库存储目录:选择一个合适的目录用于存放 SVN 版本库,例如 “/var/svn”。使用以下命令创建该目录并设置权限:
mkdir -p /var/svn
chown -R apache:apache /var/svn
chmod -R 755 /var/svn
mkdir -p 确保目录及其父目录(如果不存在)被创建。chown 命令将目录所有者和所属组设置为 apache,因为后续 Apache 将以该用户身份访问版本库。chmod 设置目录权限为 755,即所有者有读、写、执行权限,其他用户和组只有读和执行权限。
2、 创建版本库:使用 svnadmin 命令创建 SVN 版本库,假设版本库名为 “myproject”,执行以下命令:
svnadmin create /var/svn/myproject
这将在指定目录下创建一个标准结构的 SVN 版本库,包含 conf、db 等重要目录,conf 目录用于存放配置文件,db 目录存储版本数据。

配置 SVN 版本库

1、 配置访问权限:进入版本库的 conf 目录,执行以下命令:
cd /var/svn/myproject/conf
编辑 svnserve.conf 文件,取消以下几行的注释并根据需求修改:
anon - access = none
auth - access = write
password - db = passwd
authz - db = authz
realm = MyProjectRealm
anon - access = none 禁止匿名用户访问,提高安全性;auth - access = write 允许认证用户进行写操作;password - db = passwd 指定密码文件为同目录下的 passwd 文件;authz - db = authz 指定权限控制文件为 authz;realm 定义认证域,用于标识版本库。
2、 配置用户和权限:编辑 passwd 文件添加用户和密码,每行格式为 “用户名 = 密码”,例如:
user1 = Abc@123456
user2 = Xyz@789012
编辑 authz 文件设置用户和用户组的权限,示例如下:
[groups]
developers = user1, user2

[/]
@developers = rw
*** = r
上述配置创建了 developers 用户组,包含 user1 和 user2,赋予该组在版本库根目录的读写权限,其他用户只有只读权限。

配置 Apache 与 SVN 集成(可选,若通过 Web 访问)

1、 安装 Apache 及相关模块:若要通过 Web 方式访问 SVN 服务器,需安装 Apache 及 mod_dav_svn 模块,执行以下命令:
yum install httpd mod_dav_svn -y
2、 创建 Apache 配置文件:在 Apache 的配置目录(通常为 “/etc/httpd/conf.d/”)下创建一个新的配置文件,例如 “svn.conf”:
nano /etc/httpd/conf.d/svn.conf
3、 配置 SVN 虚拟主机:在 “svn.conf” 文件中添加以下内容,配置 SVN 虚拟主机:
<Location /svn>
DAV svn
SVNParentPath /var/svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /var/svn/myproject/conf/passwd
AuthzSVNAccessFile /var/svn/myproject/conf/authz
Require valid - user

上述配置中,<Location /svn> 定义了访问 SVN 版本库的 URL 路径为 “/svn”。DAV svn 启用 SVN 的 DAV 功能;SVNParentPath /var/svn 指定 SVN 版本库的父目录;AuthType Basic 设置认证类型为基本认证;AuthName 设置认证提示信息;AuthUserFile 指定用户密码文件路径;AuthzSVNAccessFile 指定权限控制文件路径;Require valid - user 要求用户必须通过认证才能访问。
4、 启动与测试:执行以下命令启动 Apache 和 SVN 服务,并设置开机自启:
systemctl start httpd
systemctl start svnserve
systemctl enable httpd
systemctl enable svnserve
在浏览器中输入 “http:// 服务器 IP 地址 /svn/myproject”,输入在 passwd 文件中设置的用户名和密码,若能正常访问版本库,则搭建成功。


拓展阅读:

1、 SVN 版本库备份与恢复:定期备份 SVN 版本库至关重要。可使用 svnadmin dump 命令将版本库数据导出为一个文件,如 svnadmin dump /var/svn/myproject > myproject.dump。恢复时,使用 svnadmin load 命令,如 svnadmin load /var/svn/newproject < myproject.dump,将备份数据导入到新的版本库。
2、 SVN 与其他版本控制系统对比:与 Git 等其他版本控制系统相比,SVN 是集中式的,所有版本数据存储在服务器端。而 Git 是分布式的,每个客户端都有完整的版本库副本。SVN 适合对版本控制要求相对传统、集中管理的项目,而 Git 在开源项目和分布式团队开发中更具优势。
3、 优化 SVN 服务器性能:为提升 SVN 服务器性能,可调整 svnserve.conf 中的缓存参数,如 cache - size。同时,合理设置 Apache 的线程和进程数量,在 httpd.conf 文件中通过 MaxClients、ThreadsPerChild 等参数进行优化,以适应不同的并发访问需求。

新闻资讯
热门专题
最新专题
友情链接