Linux/SUSE安装svn客户端的问题记录
这 2 天负责架设一个支付业务的 webserver 测试项目,安装 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
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 搭建node服务(三):使用TypeScript
- Antd for Vue使用Form组件报错You cannot set a form field before rendering
- IDEA配置Resin
- BERT详解(附带ELMo、GPT介绍)
- Centos7创建LVM及扩容
- python3 使用session模拟post实现修改活码内容
- linux LVM逻辑卷的创建,扩容,缩减和删除
- shell脚本中各种括号的区别以及用法
- linux 实现centos7在线升级最新版本内核
- linux centos系统开机启动流程
- mysql的备份及恢复
- linux之iptables 基础详解
- linux 实现lvs-dr在不同网段的负载均衡调度
- docker实现Mongodb复制集
- Centos7搭建LAMP+Typecho个人博客