• 使用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.1.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.1.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.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.1
    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/    #这里会询问时候永久记住证书,说明成功啦 

     这里就安装成功了

  • 相关阅读:
    jQuery选择器ID、CLASS、标签获取对象值、属性、设置css样式
    shell脚本,awk取奇数行与偶数行方法。
    shell脚本,awk取中间列的方法。
    shell脚本,每5个字符之间插入"|",行末不插入“|”。
    shell脚本,tee小工具的用法。
    shell脚本,逻辑结构题练习。
    shell脚本,实现奇数行等于偶数行。
    shell脚本,编程题练习。
    shell脚本,用awk实现替换文件里面的内容。
    shell脚本,awk替换{}里面的内容
  • 原文地址:https://www.cnblogs.com/formyjava/p/5867277.html
Copyright © 2020-2023  润新知