• wget编译升级故障解决


    有几台服务器升级wget,版本1.21.3

    centos8系统升级顺利。

    centos7系统2台顺利,1台make报错。

    执行命令如下:

    ./configure --prefix=/usr --sysconfdir=/etc --with-ssl=openssl

    make

    错误信息:

    /usr/include/openssl/x509v3.h:166: undefined reference to `OPENSSL_sk_num'
    openssl.o: In function `sk_GENERAL_NAME_value':
    /usr/include/openssl/x509v3.h:166: undefined reference to `OPENSSL_sk_value'
    openssl.o: In function `sk_GENERAL_NAME_pop_free':
    /usr/include/openssl/x509v3.h:166: undefined reference to `OPENSSL_sk_pop_free'
    openssl.o: In function `pkp_pin_peer_pubkey':
    /root/wget-1.21.3/src/openssl.c:969: undefined reference to `X509_get_X509_PUBKEY'
    /root/wget-1.21.3/src/openssl.c:979: undefined reference to `X509_get_X509_PUBKEY'
    openssl.o: In function `sk_GENERAL_NAME_pop_free':
    /usr/include/openssl/x509v3.h:166: undefined reference to `OPENSSL_sk_pop_free'

    按照提示/usr/include/openssl/x509v3.h:166行错误,未定变量,与openssl.o内函数相关。

    跟安装成功的服务器对比,发现两台服务器的openssl.o文件不一样。

    openssl.o是在编译过程中生成的文件,软件包内原本不包含。应该是提取服务器openssl的某些信息,生成的。推断两台服务器openssl存在不同之处。

    输入命令:openssl version

    版本信息一致,都是1.1.1p。这两台在前些日子升级到该版本,方式编译安装。

    开始以为wget软件包有问题,重新传还是报错。

    升级openssl时创建过一些软链接,检查一遍,没有问题。

    再次陷入沉思......

    既然错误提示是openssl相关的错误,那么应该就是openssl的某个问题导致的。

    于是开始对比openssl安装目录下的文件。比较之下有了发现,不知什么原因,两个服务器的openssl安装目录下的文件有一部分不一致。

    于是,先做一个备份。然后把成功安装的服务器openssl目录打包,复制到问题服务器。覆盖问题服务器的openssl目录。

    然后先测试openssl,执行没问题。再次编译,顺利通过。

    看来问题就出在openssl目录下某些文件。

  • 相关阅读:
    lua学习笔记
    SSM - Springboot - MyBatis-Plus 全栈体系(三十五)
    当transcational遇上synchronized
    数据结构——单项链表
    为什么学了PMBOK,考了PMP证书还是管不好项目?
    第四十三章 在CSP应用程序中本地化文本 - 本地化的基础
    Oracle 处理json数据
    剑指 Offer 32 - II. 从上到下打印二叉树 II(Python3解法)
    919. Complete Binary Tree Inserter
    09【享元设计模式】
  • 原文地址:https://blog.csdn.net/bigwood99/article/details/126266859