背景
原来想在Linux机上开Samba共享,在Windows机上把工作目录映射到网络驱动器,用Source Insight编辑代码后就不用来回同步文件了。
然而在使用中发现,Windows机用的SVN客户端版本是1.9.4,而CentOS自带的版本是1.7.14。
用Windows更新过SVN Work Directory后,一不小心就更到了SVN1.8版格式(应该可以选不更新格式吧?)
这样弄完,Linux机上就无法使用SVN了(使用1.7版格式,提示客户端版本太旧)。
网上搜RPM包但是CentOS木有更新的版本了,无奈只好琢磨编译安装最新版!这样两个平台都用1.9版的,就应该没问题了!
环境
[root@linuxidc ~]# cat /etc/RedHat-release
CentOS Linux release7.2.1511 (Core)
且是Minimal Install
安装
主要参考官网的安装说明,这里没有研究最小依赖安装环境,不过也挺小的了。
安装开发环境工具
[root@linuxidc ~]# yum -y groupinstall "Deveolpment tools"
这里也会把svn客户端安上,但是是1.7.14版本的,移除它
[root@linuxidc ~]# yum -y remove subversion
根据安装说明,这里需要几个依赖
安装依赖
[root@linuxidc ~]# yum -y install yum install Python-devel zlib openssl openssl-devel file-libs libtool libtool-devel
查看版本
[root@linuxidc ~]# rpm -qa | grepautoconf
autoconf-2.69-11.el7.noarch
[root@linuxidc ~]# rpm -qa | greplibtool
libtool-2.4.2-21.el7_2.x86_64
[root@linuxidc ~]# gcc --versiongcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11)
Copyright (C)2015 Free Software Foundation, Inc.
下载svn源码包
[root@linuxidc ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/subversion/subversion-1.9.5.tar.gz
[root@linuxidc ~]# tar zxvf subversion-1.9.5.tar.gz
[root@linuxidc ~]# cd subversion-1.9.5[root@linuxidc subversion-1.9.5]# ll-rw-rw-r--. 1 1000 1000 2032 Mar 11 2013aclocal.m4-rwxrwxr-x. 1 1000 1000 7726 Jul 27 2015 autogen.sh
-rw-rw-r--. 1 1000 1000 94 Feb 23 2010BUGS
drwxrwxr-x. 6 1000 1000 4096 Nov 21 21:57build-rw-rw-r--. 1 1000 1000 48346 Jun 24 2015build.conf-rw-rw-r--. 1 1000 1000 850308 Nov 21 21:57 build-outputs.mk-rw-rw-r--. 1 1000 1000 325464 Nov 21 21:07CHANGES-rw-rw-r--. 1 1000 1000 14126 Jan 26 2015COMMITTERS-rwxrwxr-x. 1 1000 1000 877735 Nov 21 21:57configure-rw-rw-r--. 1 1000 1000 55079 Nov 17 12:00configure.ac
drwxrwxr-x. 4 1000 1000 66 Nov 21 21:57doc-rw-rw-r--. 1 1000 1000 23 Nov 21 21:57 gen-make.opts-rwxrwxr-x. 1 1000 1000 10988 May 14 2015 gen-make.py-rwxrwxr-x. 1 1000 1000 4859 Aug 4 12:00 get-deps.sh
-rw-rw-r--. 1 1000 1000 58579 Dec 12 2015INSTALL-rw-rw-r--. 1 1000 1000 19889 Jan 30 2015LICENSE-rw-rw-r--. 1 1000 1000 40217 Dec 10 2015 Makefile.in
-rw-rw-r--. 1 1000 1000 1132 Apr 21 2016NOTICE-rw-rw-r--. 1 1000 1000 2303 Jun 1 2016README
drwxrwxr-x. 36 1000 1000 4096 Nov 21 21:57subversion
drwxrwxr-x. 14 1000 1000 4096 Nov 21 21:57tools-rw-rw-r--. 1 1000 1000 41944 Dec 7 2015 win-tests.py
使用自带脚本下载svn依赖(前面加了===的为get-deps.sh脚本下载的依赖)
[root@linuxidc subversion-1.9.5]# ./get-deps.sh[root@linuxidc subversion-1.9.5]# ll-rw-rw-r--. 1 1000 1000 2032 Mar 11 2013aclocal.m4===drwxr-sr-x. 25 5000 10001 4096 Feb 8 2012apr===drwxr-xr-x. 19 500 1000 4096 Sep 8 2012 apr-util-rwxrwxr-x. 1 1000 1000 7726 Jul 27 2015 autogen.sh
-rw-rw-r--. 1 1000 1000 94 Feb 23 2010BUGS
drwxrwxr-x. 6 1000 1000 4096 Nov 21 21:57build-rw-rw-r--. 1 1000 1000 48346 Jun 24 2015build.conf-rw-rw-r--. 1 1000 1000 850308 Nov 21 21:57 build-outputs.mk-rw-rw-r--. 1 1000 1000 325464 Nov 21 21:07CHANGES-rw-rw-r--. 1 1000 1000 14126 Jan 26 2015COMMITTERS-rwxrwxr-x. 1 1000 1000 877735 Nov 21 21:57configure-rw-rw-r--. 1 1000 1000 55079 Nov 17 12:00configure.ac
drwxrwxr-x. 4 1000 1000 66 Nov 21 21:57doc-rw-rw-r--. 1 1000 1000 23 Nov 21 21:57 gen-make.opts-rwxrwxr-x. 1 1000 1000 10988 May 14 2015 gen-make.py-rwxrwxr-x. 1 1000 1000 4859 Aug 4 12:00 get-deps.sh
-rw-rw-r--. 1 1000 1000 58579 Dec 12 2015INSTALL-rw-rw-r--. 1 1000 1000 19889 Jan 30 2015LICENSE-rw-rw-r--. 1 1000 1000 40217 Dec 10 2015 Makefile.in
-rw-rw-r--. 1 1000 1000 1132 Apr 21 2016NOTICE-rw-rw-r--. 1 1000 1000 2303 Jun 1 2016README===drwxr-xr-x. 6 501 games 4096 Oct 21 2014serf===drwxr-xr-x. 2 root root 71 Dec 20 2012 sqlite-amalgamation
drwxrwxr-x. 36 1000 1000 4096 Nov 21 21:57subversion
drwxrwxr-x. 14 1000 1000 4096 Nov 21 21:57tools-rw-rw-r--. 1 1000 1000 41944 Dec 7 2015 win-tests.py===drwxr-xr-x. 14 501 games 4096 Apr 29 2013 zlib
下载serf构建工具
[root@linuxidc subversion-1.9.5]# cd serf
[root@linuxidc serf]# wget http://prdownloads.sourceforge.net/scons/scons-local-2.3.0.tar.gz
[root@linuxidc serf]# tar zxvf scons-local-2.3.0.tar.gz
按照如下顺序安装
安装apr
[root@linuxidc ~]# cd ~/subversion-1.9.5/apr
[root@linuxidc apr]# ./buildconf
[root@linuxidc apr]# ./configure
[root@linuxidc apr]# make[root@linuxidc apr]# make install
安装apr-util
[root@linuxidc ~]# cd ~/subversion-1.9.5/apr-util
[root@linuxidc apr-util]# ./buildconf
[root@linuxidc apr-util]# ./configure --with-apr=/usr/local/apr/bin/apr-1-config
[root@linuxidc apr-util]# make[root@linuxidc apr-util]# make install
安装serf
[root@linuxidc ~]# cd ~/subversion-1.9.5/serf
[root@linuxidc serf]# ln -s /root/subversion-1.9.5/serf/scons.py /usr/local/bin/scons
[root@linuxidc serf]# scons APR=/usr/local/apr/bin/apr-1-config APU=/usr/local/apr/bin/apu-1-config OPENSSL=/usr PREFIX=/usr/local
[root@linuxidc serf]# scons install
安装svn-client
[root@linuxidc ~]# cd ~/subversion-1.9.5/[root@linuxidc ~]# ./configure --with-serf=/usr/local --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config
[root@linuxidc ~]# make[root@linuxidc ~]# make install
使用
[root@linuxidc serf]# svn --version
svn, version1.9.5(r1770682)
compiled Jan4 2017, 07:40:17 on x86_64-unknown-linux-gnu
Copyright (C)2016The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICEfile for moreinformation.
Subversion is open source software, see http://subversion.apache.org/
The following repository access (RA) modules are available:* ra_svn : Module foraccessing a repository using the svn network protocol.- handles 'svn'scheme* ra_local : Module foraccessing a repository on local disk.- handles 'file'scheme* ra_serf : Module foraccessing a repository via WebDAV protocol using serf.- using serf 1.3.8 (compiled with 1.3.8)- handles 'http'scheme- handles 'https'scheme
The following authentication credential caches are available:* Plaintext cache in /root/.subversion* GPG-Agent
CentOS 7.2下Nginx+MySQL+PHP-FPM+SVN配置Walle自动化部署系统详解 http://www.linuxidc.com/Linux/2016-11/137703.htm
Subversion (SVN) 的详细介绍:请点这里
Subversion (SVN) 的下载地址:请点这里