凌峰创科服务平台

Linux服务器如何安装SVN?

在Linux服务器上安装Subversion(SVN)版本控制系统,可以为企业或团队提供高效的代码管理和版本追踪功能,以下是详细的安装步骤和配置过程,以CentOS 7系统为例,其他发行版如Ubuntu可参考类似流程调整命令。

安装前的准备

首先确保服务器已更新系统软件包,并安装必要的编译工具,执行以下命令:

sudo yum update -y
sudo yum install -y gcc make

若使用Ubuntu系统,可替换为:

sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential

安装SVN服务

SVN可通过官方源或第三方仓库安装,推荐使用yum/apt直接安装,以简化流程:

  • CentOS系统
    sudo yum install -y subversion
  • Ubuntu系统
    sudo apt install -y subversion

    安装完成后,验证版本:

    svnserve --version

创建SVN仓库

  1. 创建仓库目录
    例如在/var/svn下创建项目仓库:

    sudo mkdir -p /var/svn/project1
    sudo svnadmin create /var/svn/project1
  2. 设置仓库权限
    确保SVN进程有读写权限:

    sudo chown -R apache:apache /var/svn/project1  # 若使用Apache集成
    sudo chmod -R 770 /var/svn/project1

配置SVN服务

SVN默认通过svnserve提供服务,需修改配置文件:

  1. 编辑仓库配置
    进入仓库conf目录,修改svnserve.conf

    sudo nano /var/svn/project1/conf/svnserve.conf

    取消以下行注释并修改:

    [general]
    anon-access = none          # 禁止匿名访问
    auth-access = write        # 允许认证用户写
    password-db = passwd        # 密码文件路径
    authz-db = authz           # 权限控制文件路径
    realm = My SVN Repository   # 仓库名称
  2. 创建用户和权限

    • 编辑passwd文件添加用户:

      sudo nano /var/svn/project1/conf/passwd

      (格式:用户名 = 密码):

      [users]
      user1 = password123
      user2 = password456
    • 编辑authz文件设置权限:

      sudo nano /var/svn/project1/conf/authz

      示例配置:

      [groups]
      admin = user1
      developers = user1, user2
      [/]
      @admin = rw
      * = r

启动SVN服务

  1. 启动并设置开机自启

    sudo svnserve -d -r /var/svn  --listen-port 3690  # 后台运行,指定根目录和端口
    sudo systemctl enable svnserve  # CentOS系统
    sudo systemctl start svnserve

    Ubuntu系统需先创建服务文件:

    sudo nano /etc/systemd/system/svnserve.service
    ```后执行:
    ```bash
    sudo systemctl daemon-reload
    sudo systemctl enable --now svnserve
  2. 检查服务状态

    sudo netstat -tuln | grep 3690

客户端连接测试

使用SVN客户端(如TortoiseSVN或命令行)连接:

svn checkout svn://服务器IP:3690/project1

输入配置的用户名和密码即可完成检出。

常见问题解决

  • 权限问题:确保svnserve运行用户对仓库目录有权限,可尝试调整selinux设置。
  • 端口冲突:若3690端口被占用,可通过--listen-port指定其他端口。
  • 无法连接:检查防火墙规则,开放3690端口:
    sudo firewall-cmd --permanent --add-port=3690/tcp
    sudo firewall-cmd --reload

相关问答FAQs

Q1: 如何修改SVN仓库的默认端口?
A1: 启动SVN服务时使用--listen-port参数指定新端口,例如svnserve -d -r /var/svn --listen-port 8080,同时需在防火墙开放新端口,并确保客户端连接时使用新端口号。

Q2: SVN如何与Apache集成实现Web访问?
A2: 需安装mod_dav_svn模块,配置Apache虚拟主机指向SVN仓库,并启用HTTP基本认证,具体步骤包括:安装模块、编辑httpd.conf添加<Location>块,配置SVNListParentPathSVNPath,重启Apache服务,集成后可通过http://服务器IP/svn/project1访问仓库。

分享:
扫描分享到社交APP
上一篇
下一篇