macOS安装旧版本SVN1.7

现在macOS自带的SVN版本是1.9的了,然而项目使用的版本还是1.7的,所以为了在命令行中使用svn,就必须另外安装1.7版本的svn
首先尝试homebrew,结果发现homebrew只提供了1.8的版本

1
2
$ brew search subversion
homebrew/versions/subversion18

去svn的官网看看,并找不到1.7版本的二进制包,不过还好,官方提供了各个版本的源码,只能尝试源码安装了

下载SVN1.7源码

  1. 首先访问SVN官网
  2. 左侧的Source Download点进去,选一个源镜像,这里我选择的是华中科技大学的镜像
  3. 下载SVN1.7的源码

尝试安装

准备工作

解压源码压缩包,进入目录
执行里面的autogen.sh脚本,发现报错

1
2
$ ./autogen.sh
zsh: ./autogen.sh: bad interpreter: /bin/sh^M: no such file or directory

^M是Windows的换行符,用dos2unix工具转换一下

1
2
$ dos2unix autogen.sh
dos2unix: converting file autogen.sh to Unix format...

没有dos2unix的话用homebrew装一个就好了brew install dos2unix

继续尝试,发现./build/buildcheck.sh这个脚本存在同样的行尾换行符的问题,用dos2unix转换之,继续尝试执行autogen.sh

1
2
3
4
$ ./autogen.sh
buildcheck: checking installation...
buildcheck: autoconf not found.
You need autoconf version 2.59 or newer installed.

缺少组件autoconf了,还好我们有homebrew,安装这些依赖都很容易。接下来的操作都差不多,提示有什么问题去解决就好了,大概需要这些第三方依赖:

  1. autoconf
  2. autoheader
  3. libtool
  4. apr
    需要把apr加入PATH环境变量
    export PATH="/usr/local/opt/apr/bin:$PATH"
  5. apr-util
    同样需要加入环境变量
    export PATH="/usr/local/opt/apr-util/bin:$PATH"

最后终于成功执行了autogen.sh,然后根据提示执行./configure(这一步需要apr和apr-util)

编译安装

最后执行makemake install,终于完成!

1
2
3
$ svn --version
svn, version 1.7.22 (r1694152)
compiled Feb 23 2017, 19:44:32

又能愉快地用命令行更新提交文件啦~