我的操作系统是CentOS 6.8。公司的svn服务器安装在windows系统中,并且使用 VisualSVN 对外提供https服务。

在centos 6.8上如果我使用yum 安装svn,那么根本没法访问公司的svn服务器,回报如下

svn: OPTIONS of 'https://server.domain.local/svn/repo': SSL handshake failed: SSL error:
Key usage violation in certificate has been detected. (https://server.domain.local)

的错误(可以使用命令 svn list https://xxx.com/svn/试试看哦!)。原因是大部分window系统中的svn编译时依赖的是OpenSSL;大部分linux系统中的svn编译是依赖的是GnuTLS。尽管GnuTLS可以看作OpenSSL的已被变种,但是在某种情况下会导致GnuTLS根本不认识OpenSSL生成的证书。具体的原因可以参见 https://www.visualsvn.com/support/topic/00056/。

其中也说明了解决方法。可是因为我没有权限操作公司的windows服务器,那么只能另辟蹊径,使用OpenSSL去编译svn了。

1.下载解压subversion

cd /opt
wget http://archive.apache.org/dist/subversion/subversion-1.8.1.tar.gz
tar -zxvf subversion-1.8..tar.gz

2.下载依赖并安装,我们这里svn必须依赖apr,apr-util,sqlite,serf,openssl(这是重点,要不然就不必重新编译svn了)。

可以看到在 subversion-1.8.1目录下有一个脚本get-deps.sh。运行该脚本之后在subversion-1.8.1目录下会生成三个目录apr,apr-util,sqlite-amalgamation。但是会提示找不到serf,更别提openssl了。这里我们需要自己下载serf和openssl。

wget https://archive.apache.org/dist/serf/serf-1.2.1.tar.bz2
tar -jxvf serf-1.2..tar.bz2 wget https://www.openssl.org/source/openssl-1.0.0e.tar.gz
tar -zxvf openssl-1.0.0e.tar.gz

  a.编译安装OpenSSL    

cd openssl-1.0..e
./config --prefix=/usr/local/openssl
./config -t
make && make install

  b.编译安装apr  

cd ../apr/
./configure --prefix=/usr/local/apr
make && make install

  c.编译安装apr-util

cd ../apr-util
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install

  d.编译安装serf

cd ../serf-1.2.
yum install expat-devel
./configure --prefix=/usr/local/serf --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
make && make install

3.编译安装subversion

  a.编译安装

cd ../
yum install zlib
./configure --prefix=/usr/local/svn --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-serf=/usr/local/serf --with-openssl --with-zlib
make && make install

  b.测试  

/usr/local/svn/bin/svn list https://xxx/svn/BigData/    #这里会询问时候永久记住证书,说明成功啦 

这里就安装成功了

使用Openssl编译svn并安装的更多相关文章

  1. PHP5不重新编译,如何安装自带的未安装过的扩展,如soap扩展?

    在虚拟机的CentOS5.5中,一键安装了PHP运行环境,但发现并没有 soap 扩展,而近期项目用需要用到 webservice. 上述的一键安装(lamp0.4),其实是源码编译安装,PHP配置文 ...

  2. linux下svn客户端安装及环境配置(转)

    一.    源文件编译安装.源文件共两个,为: 1.   下载subversion源文件 subversion-1.6.1.tar.gz http://d136.d.iask.com/fs/800/1 ...

  3. OpenSSl编译

    1.下载openssl代码,下载地址:http://www.openssl.org/source/ ,如果使用winrar解压失败的话(提示不能创建符号链接),可以关闭UAC.2.下载安装Active ...

  4. linux 下 openssl 编译和交叉编译

    此随便记录一下编译openssl时遇到的各种问题以及解决办法. 点击此处下载 OpenSSL(version-1.0.1e) linux 64位系统编译32位版本: setarch i386 ./Co ...

  5. window、linux安装jdk,excel 导入oracle,WebService,window 端口查看,svn服务安装,oracle用户解锁

    内存泄露分析插件http://download.eclipse.org/mat/1.3/update-site/birt插件http://download.eclipse.org//birt/upda ...

  6. windows下openssl编译

    昨晚,在编译rabbitmq-c时,使用cmake生成vs项目文件时遇到下列错误: CMake Error at C:/Program Files/CMake/share/cmake-3.6/Modu ...

  7. SVN CentOS7 下配置svn的安装及基础配置介绍

    CentOS7 下配置svn的安装及基础配置介绍 by:授客 QQ:1033553122 目录 一. 二. 三. 四. 五. 六. 七. 一.      实践环境 CentOS 7操作系统(CentO ...

  8. 【Linux】SVN的安装和配置

    SVN SVN:SVN是Subversion的简称,是一种开放代码的版本控制系统,相比较RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制器服务已从CVS迁移到Su ...

  9. 在CentOS上以源码编译的方式安装Greenplum数据库

    集群组成: 一台主机,一台从节点. 系统环境: 操作系统:CentOS 7,64位,7.4.1708(/etc/redhat-release中查看) CPU:AMD Fx-8300 8核 内存:8GB ...

随机推荐

  1. CodeForces - 580C Kefa and Park 【BFS】

    题目链接 http://codeforces.com/problemset/problem/580/C 题意 根节点是 1 然后所有的叶子结点都是饭店 从根节点到叶子结点的路径上 如果存在 大于m 个 ...

  2. UNIDBgrid里动态添加clientevents实现回车替换TAB

    //GRID里回车替换TABfunction cellkeydown(sender, td, cellIndex, record, tr, rowIndex, e, eOpts){ if (e.get ...

  3. Eclipse debug neutron-server

    1 首先停掉neutron-server kill neutron-server in screen by ctr-c q-svc 2 cp /usr/local/bin/neutron-server ...

  4. node向html模板发送数据

    node向html模板发送数据 给模板传递数据 router.get('/', function(req, res, next) { res.render('index', { title: '张三' ...

  5. POJ 2728 Desert King:最优比率生成树

    题目链接:http://poj.org/problem?id=2728 题意: 给你n个点(x,y,z),让你求一棵生成树,使得 k = ∑ |z[i]-z[j]| / ∑ dis(i,j)最小. | ...

  6. DoTween插件

    doteeen(hotween第二个版本) hotween leantween gokit itween(多个相同动画类型的插件):性能最高的是dotween 引用命名空间:using DG.Twee ...

  7. Python基础-os、sys模块

    一,os模块import os ,sysos.system('ipconfig')#执行操作系统命令,获取不到返回结果 os.popen()#也可以执行操作系统命令,可以返回命令执行结果,但需要rea ...

  8. Oracle学习笔记_02_基本SQL

    1.select语句 (1)语法 SELECT *|{[DISTINCT] column|expression [alias],...} FROM table; (2)示例: 选择全部列 SELECT ...

  9. hibernate复习第(二)天

    今日要点: 关联映射 多对一(Employee - Department) 一对多(Department - Employee) 一对一(Person - IdCard) 多对多(teachet - ...

  10. 关于from..import 与import导入模块问题

    问题来源:导入PyQt5里面的模块时老是出错 1.from PyQt5 import QtWidgets.QApplication,QtWidgets.QtDialog #出错2.from PyQt5 ...