依赖包下载:
scons-2.4.1.tar.gz https://nchc.dl.sourceforge.net/project/scons/scons/2.4.1/scons-2.4.1.tar.gz
serf-1.3.9.tar.bz2 https://downloads.apache.org/serf/serf-1.3.9.tar.bz2
apr-util-1.6.1.tar.gz https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
apr-1.7.0.tar.bz2 https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.7.0.tar.bz2
subversion-1.13.0.tar.bz2 http://archive.apache.org/dist/subversion/subversion-1.13.0.tar.bz2
编译,安装:
先按照这哥们的,
编译安装 apr
➜ tar -jxvf apr-1.7.0.tar.bz2
➜ cd apr-1.6.5
➜ ./configure --prefix=/opt/svn/apr
➜ make && make install
编译安装 apr-util
➜ tar -zxvf apr-util-1.6.1.tar.gz
➜ cd apr-util-1.6.1
➜ ./configure /opt/svn/apr-util --with-apr=/opt/svn/apr
➜ make && make install
编译安装 Subversion
➜ tar -jxvf subversion-1.13.0.tar.bz2
➜ cd subversion-1.10.2
➜ ./configure --prefix=/opt/svn/bin --with-apr=/opt/svn/apr --with-apr-util=/opt/svn/apr-util --with-lz4=internal --with-utf8proc=internal --libdir=/opt/svn/serf --with-serf=/opt/svn/serf
➜ make && make install
编译完成后,下载代码出现问题:
➜ /opt/svn/bin/bin/svn up
Updating '.':
svn: E170000: Unrecognized URL scheme for 'http://XXX.XXX.XXX.XXX/svn/
搜索后,找到:
svn 1.8版本之前的需要neon,1.8版本之后弃用neon而改使用serf
➜ tar -zxf scons-2.4.1.tar.gz
➜ cd scons-2.4.1
➜ sudo python setup.py install
➜ tar -jxf serf-1.3.9.tar.bz2
➜ cd /data/serf-1.3.8
➜ scons PREFIX=/opt/svn/serf APR=/opt/svn/apr APU=/opt/svn/apr-util
➜ scons -Y /opt/svn_build_from_ground/serf-1.3.9
➜ scons PREFIX=/opt/svn/serf LIBDIR=/opt/svn/serf
➜ scons PREFIX=/opt/svn/serf install
重现编译
./configure --prefix=/opt/svn/svn --with-apr=/opt/svn/apr --with-apr-util=/opt/svn/apr-util --with-lz4=internal --with-utf8proc=internal --with-serf=/opt/svn/serf && make -j clean && make -j && make install -j
报错:
An appropriate version of serf could not be found, so libsvn_ra_serf will not be built. If you want to build libsvn_ra_serf, please install serf 1.3.4 or newer.
vim config.log
configure:5557: checking for serf_context_create in -lserf-1
configure:5582: gcc -o conftest -g -O2 -g -O2 -pthread -DLINUX -D_REENTRANT -D_GNU_SOURCE -I/opt/svn/apr/include/apr-1 -I/opt/svn/apr-util/include/apr-1 -I/opt/svn/serf/include/serf-1 -L/opt/svn/serf/lib conftest.c -lserf-1 -L
/opt/svn/apr-util/lib -laprutil-1 -L/opt/svn/apr/lib -lapr-1 -lz >&5
/usr/bin/ld: cannot find -lserf-1
collect2: error: ld returned 1 exit status
检查这里提到的每个目录,
-I/opt/svn/apr/include/apr-1
-I/opt/svn/apr-util/include/apr-1
-I/opt/svn/serf/include/serf-1
-L/opt/svn/serf/lib
-L/opt/svn/apr-util/lib
-L/opt/svn/apr/lib
发现/opt/svn/serf/lib 这个目录不存在,安装默认在 /opt/svn/serf下面,/opt/svn/serf/lib 没创建目录。
➜ mkdir /opt/svn/serf/lib
➜ cd /opt/svn/serf
➜ cp libserf* lib/ -a
这样,configure 就成功了