centos7编译安装git出错--openssl

一、异常信息
安装步骤是这样的:
1、下载git-2.11.0.tar.gz 到 /usr/local/src

[root@tCentos7 ~]# cd /usr/local/src
[root@tCentos7 ~]# wget https://www.kernel.org/pub/software/scm/git/git-2.11.1.tar.gz

2、安装依赖的库

[root@tCentos7 ~]#yum groupinstall "Development Tools"
[root@tCentos7 ~]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-CPAN perl-devel perl-ExtUtils-Embed

3、 删除原本的安装的git

[root@tCentos7 ~]# yum remove git -y

4、编译安装

[root@tCentos7 ~]# cd /usr/local/src
[root@tCentos7 ~]# tar -zvxf git-2.11.1.tar.gz
[root@tCentos7 ~]# cd git-2.11.1
[root@tCentos7 ~]# ./configure
[root@tCentos7 ~]# make
[root@tCentos7 ~]# make install

在make这一步出错,错误代码:

imap-send.o: In function `sk_GENERAL_NAME_num':
/usr/local/include/openssl/x509v3.h:165: undefined reference to `OPENSSL_sk_num'
imap-send.o: In function `sk_GENERAL_NAME_value':
/usr/local/include/openssl/x509v3.h:165: undefined reference to `OPENSSL_sk_value'
imap-send.o: In function `sk_GENERAL_NAME_pop_free':
/usr/local/include/openssl/x509v3.h:165: undefined reference to `OPENSSL_sk_pop_free'
/usr/local/include/openssl/x509v3.h:165: undefined reference to `OPENSSL_sk_pop_free'
imap-send.o: In function `ssl_socket_connect':
/usr/local/src/git-2.11.1/imap-send.c:287: undefined reference to `OPENSSL_init_ssl'
/usr/local/src/git-2.11.1/imap-send.c:288: undefined reference to `OPENSSL_init_ssl'
/usr/local/src/git-2.11.1/imap-send.c:290: undefined reference to `TLS_method'
/usr/local/src/git-2.11.1/imap-send.c:303: undefined reference to `SSL_CTX_set_options'
collect2: error: ld returned 1 exit status
make: *** [git-imap-send] Error 1

好像跟OPENSSL有关,我升级了openssl,自带的是OpenSSL 1.0.1e-fips 11 Feb 2013,我把它升级到了openssl-1.1.0d
二、解决步骤
1、在终端使用wget下载最新没有漏洞的版本

wget https://www.openssl.org/source/openssl-1.1.0f.tar.gz

2、执行编译

cd openssl-1.1.0f/
./config  --prefix=/usr/local/related/openssl --openssldir=/usr/local/related/openssl/ssl
make && make install
./config shared --prefix=/usr/local/related/openssl --openssldir=/usr/local/related/openssl/ssl
make clean
make && make install

3、配置
备份原来的openssl命令

mv /usr/bin/openssl /usr/bin/openssl.bak

备份原来的openssl目录 (一些环境下本地include下面没有旧的openssl目录,这里我的环境是liunx7,centos6.8)

mv /usr/include/openssl  /usr/include/openssl.bak

将安装好的openssl 的openssl命令软连到/usr/bin/openssl

ln -s /usr/local/related/openssl/bin/openssl /usr/bin/openssl

将安装好的openssl 的openssl目录软连到/usr/include/openssl

ln -s /usr/local/related/openssl/include/openssl /usr/include/openssl

修改系统自带的openssl库文件,如/usr/local/lib64/libssl.so(根据机器环境而定) 软链到升级后的libssl.so

ln -s /usr/local/related/openssl/lib/libssl.so.1.1 /usr/local/lib64/libssl.so
----注意时usr/local下的lib64不是/usr/lib64,两个目录下又同名目录

在/etc/ld.so.conf文件中写入openssl库文件的搜索路径

echo "/usr/local/related/openssl/lib" >> /etc/ld.so.conf

使修改后的/etc/ld.so.conf生效

ldconfig -v

最好查看下openssl版本号,看是否已经更新成最新的,

openssl version -a

3,

使用

头文件目录:

/usr/local/related/openssl/include  

gcc编译的时候加-lssl,同时指定libssl.so。

其他:
1、openssl官网:https://www.openssl.org/source/

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值