这 2 天负责架设一个支付业务的 webserver 测试项目,安装 svn 客户端的时候出现了各种问题,来记录下。
一、简单的说下安装过程:
1 2 3 4 5 6 7 8 9 10 11 | #下载 wget http://subversion.tigris.org/downloads/subversion–1.6.9.tar.gz wget http://subversion.tigris.org/downloads/subversion–deps–1.6.9.tar.gz #解压 tar zxvf subversion–1.6.9.tar.gz tar zxvf subversion–deps–1.6.9.tar.gz #编译 cd subversion–1.6.9 ./configure —prefix=/usr/local/svn —without–berkeley–db make make install |
执行 svn –version 查看是否有版本输出,如果提示找不到命令,则如下编辑/etc/profile
vim /etc/profile
在后面追加 SVN 变量即可:
1 2 3 4 5 | #追加 export SVN_HOME=/usr/local/svn export PATH=$SVN_HOME/bin:$PATH #刷新 source /etc/profile |
二、安装过程中出现的问题:
1、提示 OpenSSL 缺失
configure 配置 SVN 时可能提示如下错误信息:
configure: error: We require OpenSSL; try –with-openssl
解决方法:编译前先安装了一个 openssl 即可
1 2 3 4 5 6 7 8 9 10 | cd /usr/local/src wget http://www.openssl.org/source/openssl–1.0.0a.tar.gz tar –zxvf openssl–1.0.0a.tar.gz cd openssl–1.0.0a ./config ./config –t make depend make make test make install |
安装之后会在/usr/local 下生成一个 ssl 目录,编译 SVN 时加上 openssl 路径即可:
1 | ./configure —prefix=/usr/lcoal/svn —without–berkeley–db —with–openssl=/usr/local/ssl |
2. zlib 依赖缺失
configure 配置 SVN 时可能提示如下错误信息:
configure: error: subversion requires zlib
解决办法:安装 zlib
1 2 3 4 5 6 7 | cd /usr/local/src wget http://zlib.net/zlib–1.2.8.tar.gz tar –xvzf zlib–1.2.8.tar.gz cd zlib–1.2.8 ./configure make make install |
3、expat 依赖缺失
configure 配置 SVN 时可能提示如下错误信息:
configure: error: no XML parser was found: expat or libxml 2.x required
解决办法:安装 expat
1 2 3 4 5 6 7 | cd /usr/local/src wget http://nchc.dl.sourceforge.net/project/expat/expat/2.1.0/expat–2.1.0.tar.gz tar –zxvf expat–2.1.0.tar.gz cd expat–2.1.0 ./configure make make install |
3、SQLite 依赖缺失
报错信息如下:
1 2 3 4 5 6 | get the sqlite 3.7.6.3 amalgamation from: http://www.sqlite.org/sqlite–amalgamation–3.7.6.3.tar.gz unpack the archive using tar/gunzip and copycopy sqlite3.c from the resulting directory to: /home/software/subversion–1.7.0–rc3/sqlite–amalgamation/sqlite3.c configure: error: Subversion requires SQLite |
如果按照文章开头的方法安装,则不会出现此错误
解决办法:加入sqlite3.c 模块后再编译
①、下载报错信息里面的sqlite-amalgamation-3.7.6.3.tar.gz 并解压:
wget http://www.sqlite.org/sqlite-amalgamation-3.7.6.3.tar.gz
②、在 svn 源码目录创建sqlite-amalgamation 文件夹
cd subversion-1.6.9
mkdir sqlite-amalgamation
③、拷贝sqlite-amalgamation-3.7.6.3.tar.gz 解压后的 sqlite3.c 到 sqlite-amalgamation 文件夹:
cp ../sqlite-amalgamation-3070800/sqlite3.c ./sqlite-amalgamation/
④、重新编译 svn 即可。
4、/usr/local/ssl/lib/libssl.a: could not read symbols: Bad value
报错信息如下:
1 2 3 4 5 6 | /usr/bin/ld: /usr/local/ssl/lib/libssl.a(s23_clnt.o): relocation R_X86_64_32 against `.rodata‘ can not be used when making a shared object; recompile with –fPIC /usr/local/ssl/lib/libssl.a: could not read symbols: Bad value collect2: ld returned 1 exit status make[1]: *** [libserf–0.la] Error 1 make[1]: Leaving directory `/usr/local/src/subversion–1.6.9/serf‘ make: *** [external–all] Error 1 |
解决办法:添加 –without-serf 参数重新编译 subversion 即可,比如:
1 | ./configure —prefix=/usr/local/svn —without–berkeley–db —without–serf |
5、不支持 http://方式
全部安装完成,使用如下命令配置 svn 的时候:
svn co http://192.168.1.101/deploy/trunk/project
会提示“无法识别的 url 方案(一般需要 svn://,http://,file:///等开头)”http://192.168.1.101…”
Ps:如果是按照文章开始的方法安装,应该不会出现这个问题。
解决办法:安装 neon 让 svn 来支持 http 和 https 方式
1 2 3 4 5 6 | wget http://www.webdav.org/neon/neon–0.29.6.tar.gz tar tar zxvf neon–0.29.6.tar.gz tar cd neon–0.29.6 ./configure —prefix=/usr/local/neon —with–ssl=openssl make make install |