本文讲解SVN从源码的构建流程,和其中遇到的一些问题。
在install依赖库的时候通过configure --prefix
指定install路径,其他项目引用依赖库的时候--with-
来指定依赖库的install路径。
详细命令
apr
1 | wget http://mirror.bit.edu.cn/apache//apr/apr-1.7.0.tar.gz |
apr-util
1 | wget http://mirror.bit.edu.cn/apache//apr/apr-util-1.6.1.tar.gz |
qlite
1 | wget http://www.sqlite.org/2017/sqlite-autoconf-3210000.tar.gz |
scons
1 | wget http://prdownloads.sourceforge.net/scons/scons-2.5.0.tar.gz |
openssl
1 | wget https://www.openssl.org/source/old/1.0.1/openssl-1.0.1u.tar.gz |
serf
serf主要是为了提供http方式的checkout
serf编译会有问题,需要参考本文做一些修改。
1 | wget https://www.apache.org/dist/serf/serf-1.3.9.tar.bz2 |
subversion
这里需要将openss和serf加到PKG_CONFIG_PATH
里面,否则会导致configure失败。
此外,还有可能出现expat缺失的问题,这个最好不要从源码编译了,因为--with-expat
的配置有点麻烦。我们可以直接下载expact-devel包即可。
1 | export PKG_CONFIG_PATH=/usr/local/serf/lib/pkgconfig:/root/subversion_build/third/openssl/lib/pkgconfig |
如果出现
1 | # svn --version |
则
1 | ln -s /usr/local/serf/lib/libserf-1.so.1.3.0 /usr/lib64/libserf-1.so.1 |
注意pkg-config返回错误码,而不是打印,所以最好加上--print-errors
获取错误,如
1 | /usr/bin/pkg-config /usr/local/serf/lib/pkgconfig/serf-1.pc --exists --print-errors |