当前位置:首页 > 云服务器 > 正文

linux服务器安装svn

在Linux服务器上安装和配置Subversion(SVN)版本控制系统,是企业开发环境中常见的部署任务,SVN用于集中管理代码、文档等文件,支持版本回溯、分支合并等核心功能,以下以CentOS 7系统为例,详细讲解SVN的安装、配置、仓库创建及权限管理全过程,同时包含服务启动、防火墙设置及常见问题处理。

安装SVN服务

首先需要通过yum包管理器安装SVN服务,在终端执行以下命令更新系统软件包列表并安装subversion:

sudo yum update y sudo yum install subversion y

安装完成后,可通过svnserve version命令验证是否成功,若显示版本信息则表明安装成功,默认情况下,SVN服务会被安装在/usr/bin/svnserve路径下,相关配置文件模板位于/usr/share/doc/subversion<version>/目录中。

创建SVN仓库

SVN仓库是存储版本数据的目录,建议创建在/var/svn路径下,首先创建仓库目录:

sudo mkdir p /var/svn

使用svnadmin命令创建新仓库,例如创建名为project_repo的仓库:

sudo svnadmin create /var/svn/project_repo

创建完成后,仓库目录会自动生成以下关键文件和文件夹:

linux服务器安装svn 第1张

  • conf/:存放配置文件的目录
  • db/:存储版本数据
  • hooks/:存放钩子脚本
  • locks/:用于锁定机制
  • format:仓库版本号文件

配置仓库权限

进入仓库配置目录/var/svn/project_repo/conf/,修改三个核心配置文件:

  1. svnserve.conf:主配置文件,定义仓库基本行为

    在文件中添加或修改以下内容:

    [general] anonaccess = none # 禁止匿名访问 authaccess = write # 允许认证用户读写 passworddb = passwd # 密码文件路径 authzdb = authz # 权限控制文件路径 realm = My SVN Repository # 仓库认证领域

  2. passwd:用户密码文件

    linux服务器安装svn 第2张

    在文件中添加用户及密码,格式为用户名 = 密码,

  3. authz:权限控制文件

    sudo vim authz

    配置示例:

    [groups] admin = user1 developers = user1, user2 [/] @admin = rw # admin组用户读写权限 * = r # 其他用户只读权限 [/project_repo/trunk] @developers = rw # developers组对trunk有读写权限
  4. 启动SVN服务

    SVN服务可通过svnserve命令启动,建议使用d(守护进程模式)和r(指定仓库根目录)参数:

    sudo svnserve d r /var/svn

    启动后可通过ps aux | grep svnserve检查进程是否运行,默认SVN服务监听3690端口,可通过netstat tuln | grep 3690验证。

    配置防火墙与SELinux

    为确保外部可访问SVN服务,需开放3690端口:

    sudo firewallcmd permanent addport=3690/tcp sudo firewallcmd reload

    若启用SELinux,需执行以下命令设置SVN相关策略:

    sudo setsebool P httpd_can_network_connect_db 1 sudo semanage port a t svn_port_t p tcp 3690

    SVN客户端访问测试

    使用svn checkout命令测试仓库连接,格式为svn://服务器IP/仓库名:

    svn checkout svn://192.168.1.100/project_repo

    根据提示输入配置文件中的用户名和密码,若成功检出文件则表示部署完成。

    常见配置优化

    1. 多仓库配置:通过r参数指定父目录,可同时管理多个仓库,如svnserve d r /var/svn。
    2. 服务自启动:通过systemctl设置开机自启: sudo systemctl enable svnserve
    3. 日志配置:在svnserve.conf中添加logfile = /var/log/svnserve.log启用日志记录。

    相关问答FAQs

    问题1:如何修改SVN仓库的默认访问端口?

    答:启动SVN服务时使用listenport参数指定新端口,例如svnserve d r /var/svn listenport 8080,同时需在防火墙开放新端口,并确保客户端连接时使用新端口号(如svn://IP:8080/仓库名)。

    问题2:SVN服务启动失败提示“权限被拒绝”如何解决?

    答:通常因SVN进程无仓库目录权限导致,执行以下命令修复:

    sudo chown R apache:apache /var/svn/project_repo # 若使用Apache运行 sudo chown R root:root /var/svn/project_repo # 若以root运行svnserve sudo chmod R 755 /var/svn/project_repo

    同时检查SELinux状态,可通过getsebool a | grep svn查看相关策略,必要时使用setsebool调整。

    linux服务器安装svn 第3张

0