操作系统

Linux/SUSE安装svn客户端的问题记录

张戈 · 7月18日 · 2014年

这 2 天负责架设一个支付业务的 webserver 测试项目,安装 svn 客户端的时候出现了各种问题,来记录下。

Linux/SUSE安装svn客户端的问题记录

一、简单的说下安装过程:

#下载
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 变量即可:

#追加
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 即可

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 路径即可:

./configure --prefix=/usr/lcoal/svn --without-berkeley-db --with-openssl=/usr/local/ssl
2. zlib 依赖缺失

configure 配置 SVN 时可能提示如下错误信息:

configure: error: subversion requires zlib

解决办法:安装 zlib

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

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 依赖缺失

报错信息如下:

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

报错信息如下:

/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 即可,比如:

./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 方式

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
11 条回应
  1. 三层网布厂2014-7-18 · 16:22

    一见代码就头痛

  2. 球球2014-7-18 · 17:24

    我们项目以前也是用的svn,很不错的一个工具,同步代码,刚开始用的时候我们经常代码提交冲突。

  3. PHP二次开发2014-7-18 · 22:33

    团队开发,少不了svn的。

  4. 每日秀2014-7-18 · 22:50

    这个不错的哟 哈哈

  5. 码农杨杨2014-7-18 · 23:51

    看来得去玩玩了

  6. 圆月博客2014-7-19 · 12:10

    又一伟大技术

  7. 西安seo2014-7-19 · 14:54

    文章技术性比较强,支持

  8. 凌吉林博客2014-7-19 · 20:55

    我是弄产品的。这些字母看不懂。纯粹就是来捧场的

    • 张戈2014-7-21 · 12:53

      感谢捧场~

  9. 香港虚拟主机2014-7-21 · 8:38

    svn版本库?

  10. 夏日博客2014-7-21 · 13:11

    只会简单的 cd ,make 命令。。