在 Linux 系统中安装和配置 Subversion (SVN) 1.9 是一个比较经典的需求,需要注意的是,SVN 1.9 是一个较旧的版本(发布于 2015 年),现代 Linux 发行版(如 Ubuntu 20.04+、CentOS 8+、RHEL 8+)的软件源中通常默认提供的是更新的版本(如 1.10+ 或 1.14+)。
如果你必须使用 SVN 1.9(例如为了兼容旧系统或特定插件),以下是几种安装方法:
通过源码编译安装(推荐,最灵活)
这是确保获得精确版本 1.9.x 的最可靠方法。
安装依赖项
Ubuntu/Debian:
sudo apt-get update sudo apt-get install build-essential libapr1-dev libaprutil1-dev libserf-dev zlib1g-dev libsqlite3-dev
CentOS/RHEL:
sudo yum groupinstall "Development Tools" sudo yum install apr-devel apr-util-devel serf-devel zlib-devel sqlite-devel
下载 SVN 1.9 源码
访问 Apache SVN 官方归档页面下载 1.9 系列,下载 1.9.7(1.9 系列的最后一个版本):
wget https://archive.apache.org/dist/subversion/subversion-1.9.7.tar.gz tar -xzf subversion-1.9.7.tar.gz cd subversion-1.9.7
注意:SVN 的源码包结构特殊,它依赖 APR 和 APR-Util,你需要先下载 APR 和 APR-Util,或者让 SVN 源码自动下载它们。
下载依赖库(APR 和 APR-Util)
SVN 1.9 需要 APR >= 1.2 和 APR-Util >= 1.2,建议手动下载并解压到 SVN 源码目录下的 apr 和 apr-util 文件夹中,以避免自动下载失败。
# 进入 subversion-1.9.7 目录 cd subversion-1.9.7 # 下载 APR wget https://archive.apache.org/dist/apr/apr-1.7.0.tar.gz tar -xzf apr-1.7.0.tar.gz mv apr-1.7.0 apr # 下载 APR-Util wget https://archive.apache.org/dist/apr/apr-util-1.6.1.tar.gz tar -xzf apr-util-1.6.1.tar.gz mv apr-util-1.6.1 apr-util
编译和安装
./configure --prefix=/usr/local/svn-1.9 make sudo make install
配置环境变量
将 SVN 1.9 添加到 PATH 中:
echo 'export PATH=/usr/local/svn-1.9/bin:$PATH' >> ~/.bashrc source ~/.bashrc
验证版本
svn --version
输出应类似:
svn, version 1.9.7 (r1800392)
compiled Mar 20 2019, 12:00:00 on x86_64-unknown-linux-gnu
使用 Docker(隔离环境,推荐用于测试)
如果你不想污染系统环境,可以使用 Docker 运行 SVN 1.9。
创建一个简单的 Dockerfile:
FROM ubuntu:18.04# 安装 SVN 1.9(Ubuntu 18.04 默认仓库可能没有 1.9,所以用源码或 PPA) # 更简单的方式:使用已构建好的镜像或从源码编译 # 这里提供一个基于源码的简化示例 RUN apt-get update && apt-get install -y build-essential wget libapr1-dev libaprutil1-dev libserf-dev zlib1g-dev libsqlite3-dev RUN wget https://archive.apache.org/dist/subversion/subversion-1.9.7.tar.gz RUN tar -xzf subversion-1.9.7.tar.gz && cd subversion-1.9.7 && ./configure --prefix=/opt/svn && make && make install ENV PATH=/opt/svn/bin:$PATH CMD ["svn", "--version"]
构建并运行:
docker build -t svn-1.9 . docker run --rm svn-1.9
尝试从旧版 Linux 发行版安装(不推荐)
某些旧版 Linux 发行版的默认仓库中可能包含 SVN 1.9:
- Ubuntu 16.04 (Xenial): 默认 SVN 版本是 1.9.3。
- CentOS 7: 默认 SVN 版本是 1.7.14,但可以通过 EPEL 或其他源获取更新,但仍可能不是 1.9。
如果你使用的是 Ubuntu 16.04(已停止支持),可以直接:
sudo apt-get update sudo apt-get install subversion svn --version # 应为 1.9.3
警告:不建议在生产环境中使用已停止安全支持的旧版 Linux 发行版。
常见问题与注意事项
-
SSL/TLS 支持:
SVN 1.9 默认可能不支持较新的 TLS 版本(如 TLS 1.2/1.3),如果你的 SVN 服务器要求 TLS 1.2+,你可能需要重新编译 SVN 并启用--with-ssl和--with-openssl。 -
与新版客户端兼容性:
SVN 1.9 服务器可以与新版客户端(如 1.14)通信,但某些新功能可能不可用,反之,SVN 1.9 客户端可能无法连接要求更高安全协议的新版服务器。 -
替代方案:
如果可能,建议升级到 SVN 1.14 或更高版本,它们修复了多个安全漏洞并支持现代 TLS,大多数现代 Linux 发行版的默认仓库都提供 1.14+。 -
权限问题:
编译安装后,确保/usr/local/svn-1.9/bin有正确的执行权限。
- 最推荐:使用 源码编译 安装 SVN 1.9,确保版本精确且可定制。
- 最便捷:使用 Docker 隔离运行。
- 不推荐:依赖旧版 Linux 发行版的默认包,因为存在安全风险。
如果你需要 SVN 1.9 的特定功能(如某个旧插件),请确保你的服务器也运行在兼容的环境中,否则,强烈建议升级到最新稳定版 SVN。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/486461.html



