centos 安装 subversion1.8及更高版本
前言
一般而言,各发行版系统中内置的软件包都不是最新的,所以使用默认 yum 进行安装 subversion 时,安装的大多数都为低版本(1.7.X)。然而,在某些情况下,我们必须要使用高版本,此时我们可以使用以下两种方法进行高版本的安装。两种安装方式各有优缺点
yum 安装(适用于网络环境OK、所需版本在 yum 仓库中存在情况下)
-
先在 http://opensource.wandisco.com/centos/ 查找出自己需要使用的源,比如我需要使用的就是 http://opensource.wandisco.com/centos/7/svn-1.11/RPMS/x86_64/
注意:有一些版本源里面也是没有的,需要自己去检查一下是否存在,比如 http://opensource.wandisco.com/centos/7/ 目录下最高版本就是 1.11,其它高版本目录下内容为空
-
在服务器上新增一个 yum 仓库地址:
vi /etc/yum.repos.d/wandisco-svn.repo
内容如下:[WandiscoSVN] name=Wandisco SVN Repo baseurl=http://opensource.wandisco.com/centos/$releasever/svn-1.11/RPMS/$basearch/ enabled=1 gpgcheck=0
其中 $releasever 表示当前系统的发行版本,可通过
rpm -qi centos-release
命令查看,内容如下:
其中 $basearch 表示当前系统硬件架构(CPU指令集),可通过
arch
命令查看,内容如下:
-
安装
yum clean all yum makecache yum install subversion
-
验证
svn --version
源码安装(适用于所有新版本,依赖多,需考虑依赖版本问题)
- 官网源码编译安装介绍 https://svn.apache.org/repos/asf/subversion/trunk/INSTALL
- 依赖下载,所需依赖可以通过下载源码包之后,目录里面有一个 get-deps.sh 的脚本,从中分析可以得到所需要的依赖、版本以及其下载地址
- bzip2-1.0.6 解压 serf 安装包时需要
- apr-1.5.0
- apr-util-1.5.1
- Python-3.9.1
- scons-3.0.1
- zlib-1.2.8
- openssl-1.1.1h
- serf-1.3.9
- sqlite-3.8.11.1
- subversion-1.14.0
- 依赖安装(提供一个百度云下载地址 链接:https://pan.baidu.com/s/1GKXkr86J-jle5FZJFaCq9w 提取码:cq5u )
-
安装 bzip2
tar -zxvf bzip2-1.0.6.tar.gz cd bzip2-1.0.6 make && make install
-
安装 apr
tar -zxvf apr-1.5.0.tar.gz cd apr-1.5.0 ./configure --prefix=/opt/apr make && make install
-
安装 apr-util (依赖于前面安装的 apr)
tar -zxvf apr-util-1.5.1.tar.gz cd apr-util-1.5.1 ./configure --prefix=/opt/apr-util --with-apr=/opt/apr make && make install
-
安装 python3
yum install libffi-devel -y tar -zxvf Python-3.9.1.tgz cd Python-3.9.1 ./configure --prefix=/opt/python3 make && make install
-
安装 scons(依赖于下面安装的 python3)
tar -xzvf scons-3.0.1.tar.gz cd scons-3.0.1 ../python3/bin/python3 setup.py install --prefix=/opt/scons
-
安装 zlib
tar -zxvf zlib-1.2.8.tar.gz cd zlib-1.2.8 ./configure make && make install
-
安装 openssl
tar -zxvf openssl-1.1.1h.tar.gz cd openssl-1.1.1h ./config shared zlib --prefix=/opt/openssl make && make install
-
安装 serf
bzip2 -dc serf-1.3.9.tar.bz2 | tar -xf - cd serf-1.3.9 ../scons/bin/scons PREFIX=/opt/serf APR=/opt/apr APU=/opt/apr-util OPENSSL=/opt/openssl ../scons/bin/scons install
设置共享库
vi /etc/ld.so.conf
,在文件中添加 serf 的lib路径:/opt/serf/lib
执行
ldconfig
-
安装 sqlite
unzip -q sqlite-amalgamation-3081101.zip
-
- subversion 安装
环境变量设置:在tar -xzvf subversion-1.14.0.tar.gz mv sqlite-amalgamation-3081101 subversion-1.14.0/sqlite-amalgamation cd subversion-1.14.0 ./configure --prefix=/opt/subversion --with-apr=/opt/apr --with-apr-util=/opt/apr-util --with-zlib --enable-maintainer-mode --with-serf=/opt/serf --enable-mod-activation --with-lz4=internal --with-lz4=internal --with-utf8proc=internal make && make install
vi /etc/profile
末尾增加以下内容:
保存后执行export SVNPATH=/opt/subversion/bin export PATH=$SVNPATH:$PATH:$HOME/bin
source /etc/profile
- 验证
svn --version
可能碰到的问题
- configure: error: no acceptable C compiler found in $PATH
原因:没有C编译器
解决:yum -y install gcc - zipimport.ZipImportError: can't decompress data; zlib not available
原因:没有zip解压缩类库
解决:yum -y install zlib* - 安装 serf 的时候,出现 importlib.metadata.PackageNotFoundError: SCons;
原因:最开始的时候,我下载的是 scons 最新版本,估计是版本问题,我也懒得去查原因了,所以将 scons 换成低版本 3.0.1,最好解决
解决:将 scons 更换为低版本 3.0.1 - unzip: command not found
解决:yum install unzip - 安装openssl时报错,提示需要安装 You need Perl 5
解决:安装 perl-5.28.0.tar.gztar zxvf perl-5.28.0.tar.gz cd perl-5.28.0 ./Configure -des -Dprefix=$HOME/localperl make make test make install
- 安装 subversion 出现 ./svn: error while loading shared libraries: libserf-1.so.1: cannot open shared object file: No such file or directory
解决:需要将 serf 设置在共享库里之后从新编译安装:vi /etc/ld.so.conf
在文件中增加以下内容
保持之后执行ldconfig,重新编译 subversion/opt/serf/lib
- 安装 python3 的时候,make 的时候一直显示 checking for... ,进入死循环
原因:系统时间的原因。如果系统时间比python的发布时间要早,make就会进入死循环
解决:使用 date 命令重新设置一下系统时间就行了
参考文档:https://blog.csdn.net/baidu_36748884/article/details/81365398