在CentOS系统中安装Subversion(SVN)可以通过多种方式实现,其中源码安装提供了更高的灵活性和自定义能力,本文将详细介绍如何从源码编译安装SVN,并涵盖环境准备、依赖安装、编译配置、服务启动等关键步骤,确保整个过程清晰易懂。

环境准备与依赖安装
在开始源码安装前,需确保系统已安装必要的编译工具和依赖库,CentOS系统默认可能未预装这些组件,可通过yum包管理器进行安装,执行以下命令安装基础开发工具:
sudo yum groupinstall "Development Tools" -y sudo yum install openssl-devel zlib-devel expat-devel neon-devel -y
Development Tools组包含gcc、make等编译工具,而openssl-devel、zlib-devel等则是SVN运行所需的依赖库,neon-devel用于支持HTTP/HTTPS协议访问,若仅通过file协议访问可省略此依赖。
下载SVN源码
从Apache官方镜像站获取最新稳定版SVN源码包,以1.14.1版本为例,使用wget命令下载:
wget https://archive.apache.org/dist/subversion/subversion-1.14.1.tar.gz tar -xzf subversion-1.14.1.tar.gz cd subversion-1.14.1
下载完成后解压并进入源码目录,准备编译配置。
编译与安装配置
SVN的编译配置通过./configure脚本实现,可根据需求指定安装路径和功能模块,以下为常用配置参数:

./configure --prefix=/usr/local/svn --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-neon --with-ssl
参数说明:
--prefix:指定安装路径,默认为/usr/local--with-apr:指定APR库路径,需提前安装APR(建议从源码安装匹配版本)--with-neon:启用WebDAV支持--with-ssl:启用SSL加密传输
配置完成后执行编译和安装:
make -j$(nproc) sudo make install
-j$(nproc)参数利用多核CPU加速编译,具体核数可通过nproc命令查看。
环境变量配置与验证
为方便命令行调用,需将SVN的可执行文件路径加入系统环境变量,编辑/etc/profile文件:
echo 'export PATH=$PATH:/usr/local/svn/bin' | sudo tee -a /etc/profile source /etc/profile
验证安装是否成功:

svnserve --version
若显示版本信息,则表示安装成功。
创建版本库与配置服务
- 创建版本库:
sudo mkdir -p /var/svn/repos sudo svnadmin create /var/svn/repos/myrepo sudo chown -R apache:apache /var/svn/repos
- 配置权限:
编辑版本库
conf/svnserve.conf文件,设置匿名访问权限和用户认证:[general] anon-access = none auth-access = write password-db = passwd authz-db = authz
- 启动SVN服务:
svnserve -d -r /var/svn/repos
参数
-d表示后台运行,-r指定版本库根目录。
常见问题处理
- 编译错误:若出现
apr not found错误,需单独下载并安装APR库,确保版本与SVN兼容。 - 服务启动失败:检查端口占用(默认3690)和目录权限,确保
/var/svn/repos属主为apache。
FAQs
Q1: 源码安装与yum安装有何区别?
A1: 源码安装可自定义功能模块(如启用SSL或WebDAV),适用于特殊需求;yum安装依赖系统预编译包,过程简单但灵活性较低,生产环境若无需定制功能,推荐使用yum安装以节省时间。
Q2: 如何升级已通过源码安装的SVN?
A2: 首先备份现有版本库和配置文件,然后下载新版本源码,重复编译安装步骤(无需执行make clean),升级后建议使用svnadmin upgrade命令迁移版本库格式,确保兼容性。