使用Openssl编译svn并安装
我的操作系统是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并安装的更多相关文章
- PHP5不重新编译,如何安装自带的未安装过的扩展,如soap扩展?
在虚拟机的CentOS5.5中,一键安装了PHP运行环境,但发现并没有 soap 扩展,而近期项目用需要用到 webservice. 上述的一键安装(lamp0.4),其实是源码编译安装,PHP配置文 ...
- linux下svn客户端安装及环境配置(转)
一. 源文件编译安装.源文件共两个,为: 1. 下载subversion源文件 subversion-1.6.1.tar.gz http://d136.d.iask.com/fs/800/1 ...
- OpenSSl编译
1.下载openssl代码,下载地址:http://www.openssl.org/source/ ,如果使用winrar解压失败的话(提示不能创建符号链接),可以关闭UAC.2.下载安装Active ...
- linux 下 openssl 编译和交叉编译
此随便记录一下编译openssl时遇到的各种问题以及解决办法. 点击此处下载 OpenSSL(version-1.0.1e) linux 64位系统编译32位版本: setarch i386 ./Co ...
- 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 ...
- windows下openssl编译
昨晚,在编译rabbitmq-c时,使用cmake生成vs项目文件时遇到下列错误: CMake Error at C:/Program Files/CMake/share/cmake-3.6/Modu ...
- SVN CentOS7 下配置svn的安装及基础配置介绍
CentOS7 下配置svn的安装及基础配置介绍 by:授客 QQ:1033553122 目录 一. 二. 三. 四. 五. 六. 七. 一. 实践环境 CentOS 7操作系统(CentO ...
- 【Linux】SVN的安装和配置
SVN SVN:SVN是Subversion的简称,是一种开放代码的版本控制系统,相比较RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制器服务已从CVS迁移到Su ...
- 在CentOS上以源码编译的方式安装Greenplum数据库
集群组成: 一台主机,一台从节点. 系统环境: 操作系统:CentOS 7,64位,7.4.1708(/etc/redhat-release中查看) CPU:AMD Fx-8300 8核 内存:8GB ...
随机推荐
- C语言中的位操作(15)--确定log10(N)的整数部分
本篇文章介绍一个整数的以10为底的对数的整数部分,即对于整数N,求log10(N)整数部分 方法一 : unsigned int v; //32位非0整数 int r; // r保存结果 int t; ...
- jquery 实现动态表单设计
只是实现了前台页面的动态表单的设计,并未实现后台绑定数据到数据库等功能.技术使用到的为jquery和bootstrap.俗话说有图有真相,先说下具体效果如下: 点击添加一个面板容器: 容器添加成功: ...
- asp.net中关于《%=》《%#》《%》 的用法——(转帖)
1:在.aspx页面,<% %>标签相当于在.cs页面的代码,也就是说你在.cs文件里面怎样写,就可以在.aspx文件里面的<% %>标签里面怎样写. 2:在.aspx页面,& ...
- 分享知识-快乐自己:反射机制Demo解析
Java-Reflect专题 基本反射简介: 1):JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象能够调用它的任意方法和属性;这种动态获取信息以及动 ...
- Linux 基本命令总结
0.平时自己用的命令 在跑一些程序,例如deep learning的时候,总是希望查看一下cpu.gpu.内存的使用率. (1)cpu.内存情况:使用top命令: (2)查看gpu:使用 nvidia ...
- Selenium-元素定位与操作
UI的自动化本质就是识别元素,操作元素,而元素的识别就是通过HTML的标签和属性,所以对于基本的HTML的只是是必备的 随着页面复杂度的提升,加之很多公司的开发也没有统一规范,这就给识别元素造成了非常 ...
- PHP 常量、PHP 变量全解析(超全局变量、变量的8种数据类型等)
常量特点 常量一旦被定义就无法更改或撤销定义. 常量名不需要开头的$ 与变量不同,常量贯穿整个脚本是自动全局的. 作用域不影响对常量的访问 常量值只能是字符串或数字 设置 PHP 常量 如需设置常量, ...
- pyglet模块的EventDispatcher(事件派发对象)
事件派发对象用于处理事件的派发与响应,pyglet的window对象正是继承了它才具有处理事件的能力. 步骤: 1.注册事件类型: EventDispatcher.register_event_typ ...
- python实现列队
1 列队定义 队列是项的有序结合,其中添加新项的一端称为队尾,移除项的一端称为队首.当一个元素从队尾进入队列时,一直向队首移动,直到它成为下一个需要移除的元素为止. 最近添加的元素必须在队尾等待.集合 ...
- PS色调— —通道混合
clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); Image=im ...