Linux搭建SVN服务器详细教程

b6c3b46f46673b2b42c5d31169bbfca5

Linux 系统上搭建 SVN(Subversion)服务器 是一个常见的版本控制需求,适用于团队协作和代码管理。以下是详细的搭建教程,包括安装、配置和使用。


1. 前置条件

  1. 服务器环境
    • 一台已安装 Linux 系统的服务器(如 CentOS、Ubuntu 或 Debian 等)。
    • 拥有超级用户(root)权限或 sudo 权限。
  2. 网络要求
    • 确保服务器可以连接到互联网(用于安装软件包)。
    • 开放 SVN 使用的端口(默认端口为 3690)。

2. 安装 SVN

2.1 在 CentOS/RHEL 上安装

  1. 使用 yum 安装 Subversion:

    bash
     
    sudo yum install -y subversion
  2. 检查是否安装成功:

    bash
     
    svnserve --version

    正常输出会显示 Subversion 的版本号。


2.2 在 Ubuntu/Debian 上安装

  1. 使用 apt 安装 Subversion:

    bash
     
    sudo apt update
    sudo apt install -y subversion
  2. 检查是否安装成功:

    bash
     
    svnserve --version

3. 创建 SVN 仓库

  1. 创建存放 SVN 仓库的目录:

    bash
     
    sudo mkdir -p /svn/repositories
  2. 创建一个新的 SVN 仓库:

    bash
     
    sudo svnadmin create /svn/repositories/myrepo
    • myrepo 是仓库的名称,可以根据需要替换。
  3. 设置仓库目录的权限:

    bash
     
    sudo chown -R svn:svn /svn/repositories
    sudo chmod -R 770 /svn/repositories

4. 配置 SVN 仓库权限

仓库的配置文件位于 /svn/repositories/myrepo/conf/ 目录下:

4.1 配置用户和密码

编辑 passwd 文件,添加用户和密码:

bash
 
sudo nano /svn/repositories/myrepo/conf/passwd

添加类似以下内容:

plaintext
 
[users]
admin = adminpassword
user1 = user1password
user2 = user2password

4.2 配置用户访问权限

编辑 authz 文件,设置用户的访问权限:

bash
 
sudo nano /svn/repositories/myrepo/conf/authz

添加类似以下内容:

plaintext
 
[groups]
developers = admin, user1, user2

[/]
@developers = rw
* = 
  • rw:读写权限。
  • r:只读权限。
  • *:表示所有其他用户。

4.3 配置 SVN 服务

编辑 svnserve.conf 文件,启用用户认证:

bash
 
sudo nano /svn/repositories/myrepo/conf/svnserve.conf

取消以下行的注释并设置为:

plaintext
 
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = My First SVN Repository
  • anon-access:匿名用户的权限,none 表示不允许匿名访问。
  • auth-access:认证用户的权限,write 表示允许读写。
  • password-db:指定用户密码文件。
  • authz-db:指定权限控制文件。

5. 启动 SVN 服务

5.1 启动 SVN 服务

运行以下命令启动 SVN 服务:

bash
 
sudo svnserve -d -r /svn/repositories
  • -d:以守护进程方式运行。
  • -r:指定 SVN 仓库的根目录。

5.2 检查 SVN 服务是否启动

使用以下命令检查是否启动成功:

bash
 
ps -ef | grep svnserve

5.3 设置开机自启

编辑 /etc/rc.d/rc.local 文件,添加启动命令:

bash
 
sudo echo "svnserve -d -r /svn/repositories" >> /etc/rc.d/rc.local
sudo chmod +x /etc/rc.d/rc.local

6. 测试 SVN 服务

6.1 本地测试

在服务器上测试 SVN 是否正常工作:

bash
 
svn list svn://localhost/myrepo

输入用户名和密码后,如果能看到仓库内容,说明服务正常。

6.2 远程测试

在客户端上,使用以下命令测试连接:

bash
 
svn list svn://<服务器IP>/myrepo

例如:

bash
 
svn list svn://192.168.1.100/myrepo

7. 配置防火墙

确保服务器开放 3690 端口,否则客户端无法访问。

7.1 在 CentOS 上开放端口

bash
 
sudo firewall-cmd --add-port=3690/tcp --permanent
sudo firewall-cmd --reload

7.2 在 Ubuntu/Debian 上开放端口

bash
 
sudo ufw allow 3690/tcp
sudo ufw reload

8. 常见问题及解决方法

8.1 问题:无法连接 SVN 仓库

  • 原因:服务未启动或防火墙未开放端口。
  • 解决方法
    1. 确认服务已启动:
      bash
       
      ps -ef | grep svnserve
    2. 确认防火墙端口已开放。

8.2 问题:权限不足

  • 原因:用户没有正确的权限。
  • 解决方法
    1. 检查 authz 文件中的权限设置。
    2. 确保用户名和密码正确。

8.3 问题:启动服务时提示地址被占用

  • 原因:端口冲突。
  • 解决方法
    1. 检查端口占用:
      bash
       
      netstat -tulnp | grep 3690
    2. 杀掉冲突进程或修改 SVN 使用的端口。

9. 客户端使用 SVN

9.1 SVN 命令行客户端

  1. 安装客户端

    • Ubuntu/Debian
      bash
       
      sudo apt install -y subversion
    • CentOS
      bash
       
      sudo yum install -y subversion
  2. 检出代码

    bash
     
    svn checkout svn://<服务器IP>/myrepo
  3. 提交代码

    bash
     
    svn commit -m "提交说明"

10. 总结

  1. 安装和配置

    • 安装 subversion 软件包。
    • 创建 SVN 仓库并配置用户和权限。
  2. 启动和测试

    • 启动 SVN 服务并测试连接。
    • 确保防火墙端口 3690 已开放。
  3. 客户端使用

    • 使用 SVN 客户端操作仓库(如检出代码、提交代码等)。

通过以上步骤,您可以在 Linux 服务器上成功搭建 SVN 服务器,并为团队提供高效的版本控制服务。

posted @ 2025-09-18 16:48  网硕互联  阅读(79)  评论(0)    收藏  举报