svn作为集中式版本管理软件,受到很多大项目的青睐,但是在现在git王道的时代,还用svn就显得不是那么极客。
奈何公司软件版本管理需要使用svn,于是就要考虑在Ubuntu系统中安装svn。
一般的,在Ubuntu系统命令行中,输入 svn ,即会跳出安装指令。如下:
root@ubuntu:~# svn 程序“svn”尚未安装。 您可以使用以下命令安装: apt-get install subversion # 然后就静精地等待安装完成 root@ubuntu:~# svn help # 显示安装内容
更奈何,公司网络限制 apt-get 的方式安装软件,于是有了这篇博文。
本文参考了一些网上的安装示例,走了一些弯路,才有了现在的一键安装脚本。感谢其他博主的辛苦努力,后面再附上参考地址。
言归正传,下面就介绍一下以源码的方式如何安装svn。
1. 一键安装
1.1 安装subversion
在研究了其他人的安装步骤后,总结:编译subversion,需要以下安装包:
- apr-1.6.5.tar.bz2
- apr-util-1.6.1.tar.bz2
- expat-2.2.7.tar.bz2
- openssl-1.0.2s.tar.gz
- scons-3.0.4.tar.gz
- serf-1.3.9.tar.bz2
- sqlite-amalgamation-3290000.zip
- zlib-1.2.11.tar.gz
- subversion-1.12.0.tar.bz2
下载并解压合集包(网盘地址:网盘 提取码:5xc9 ),运行 install.sh ,等待解压、配置并且编译源码包。大约20分钟安装完毕,脚本完成。输入 svn --version 检测是否安装成功。
root@ubuntu:桌面# svn --version svn,版本 1.12.0 (r1857323) 编译于 Jul 15 2019,11:54:36 在 x86_64-unknown-linux-gnu Copyright (C) 2019 The Apache Software Foundation. This software consists of contributions made by many people; see the NOTICE file for more information. Subversion is open source software, see http://subversion.apache.org/ 可使用以下的版本库访问模块: * ra_svn : 使用 svn 网络协议访问版本库的模块。 - 处理“svn”方案 * ra_local : 访问本地磁盘的版本库模块。 - 处理“file”方案 * ra_serf : Module for accessing a repository via WebDAV protocol using serf. - using serf 1.3.9 (compiled with 1.3.9) - 处理“http”方案 - 处理“https”方案 The following authentication credential caches are available: * GPG-Agent root@ubuntu:桌面#
如果没有下载合集包,可以编写此脚本会自行 wget 下载所需要的包(注意:复制粘贴操作请在linux系统下完成,因为linux系统和windows系统的换行符号不同,linux无法识别win系统中\r换行符,会报程序错误。)
1 # wget http://www.apache.org/dist/apr/apr-1.6.5.tar.bz2 2 tar xjf apr-1.6.5.tar.bz2 3 cd apr-1.6.5 4 ./configure --prefix=/usr/local/apache 5 make && sudo make install 6 7 cd .. 8 # wget http://distfiles.macports.org/expat/expat-2.2.7.tar.bz2 9 tar xjf expat-2.2.7.tar.bz2 10 cd expat-2.2.7 11 ./configure 12 make && sudo make install 13 14 cd .. 15 # wget http://www.apache.org/dist/apr/apr-util-1.6.1.tar.bz2 16 tar xjf apr-util-1.6.1.tar.bz2 17 cd apr-util-1.6.1 18 ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apache 19 make && sudo make install 20 21 cd .. 22 # wget https://nchc.dl.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz 23 tar xzf zlib-1.2.11.tar.gz 24 cd zlib-1.2.11 25 ./configure 26 make && sudo make install 27 28 cd .. 29 # wget http://prdownloads.sourceforge.net/scons/scons-3.0.4.tar.gz 30 tar xzf scons-3.0.4.tar.gz 31 cd scons-3.0.4 32 sudo python setup.py install 33 34 cd .. 35 # wget http://distfiles.macports.org/openssl/openssl-1.0.2s.tar.gz 36 tar xzf openssl-1.0.2s.tar.gz 37 cd openssl-1.0.2s 38 ./config -fPIC --prefix=/usr/local/openssl enable-shared 39 make && sudo make install 40 41 cd .. 42 # wget https://archive.apache.org/dist/serf/serf-1.3.9.tar.bz2 43 tar xjf serf-1.3.9.tar.bz2 44 cd serf-1.3.9 45 scons PREFIX=/usr/local/serf APR=/usr/local/apache APU=/usr/local/apache OPENSSL=/usr/local/openssl 46 sudo scons install 47 sudo ln -sf /usr/local/serf/include/serf-1/serf_bucket_util.h /usr/local/include/serf_bucket_util.h 48 sudo ln -sf /usr/local/serf/include/serf-1/serf_bucket_types.h /usr/local/include/serf_bucket_types.h 49 sudo ln -sf /usr/local/serf/include/serf-1/serf.h /usr/local/include/serf.h 50 51 sudo ln -sf /usr/local/serf/lib/libserf-1.so.1.3.0 /usr/local/lib/libserf-1.so 52 sudo ln -sf /usr/local/serf/lib/libserf-1.so.1.3.0 /usr/local/lib/libserf-1.so.1 53 sudo ldconfig 54 55 56 cd .. 57 # wget https://www.sqlite.org/2019/sqlite-amalgamation-3290000.zip 58 unzip sqlite-amalgamation-3290000.zip 59 mv sqlite-amalgamation-3290000 sqlite-amalgamation 60 61 # wget http://distfiles.macports.org/subversion/subversion-1.12.0.tar.bz2 62 tar xjf subversion-1.12.0.tar.bz2 63 mv sqlite-amalgamation subversion-1.12.0 64 cd subversion-1.12.0 65 ./configure --prefix=/usr/local/svn --with-apr=/usr/local/apache --with-apr-util=/usr/local/apache --with-zlib=/usr/local/zlib --with-serf=/usr/local/serf --with-lz4=internal --with-utf8proc=internal 66 make && sudo make install 67 sudo ln -sf /usr/local/svn/bin/* /usr/bin 68 svn help 69 70 # wget http://ftp.yz.yamagata-u.ac.jp/pub/eclipse/technology/subversive/3.0/builds/Subversive-3.0.5.I20160701-1700.zip