• 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目录下某些文件。

  • 相关阅读:
    Redis集群-哨兵模式原理(Sentinel)
    矩阵乘法通过缓存命中率提升运算效率
    将二叉树的子树映射成一个数,用于判断子树相同
    【GIS奇妙之旅】遥感图像分类技术
    如何完美卸载Visual Studio 2013
    linux下解决 git clone每次都要输入用户名密码问题
    Linux定时任务备份MySql和清理MySql日志
    Redis 数据迁移篇之redis-migrate-tool工具使用手册
    Java学习之this关键字
    Linux 线程属性相关函数
  • 原文地址:https://blog.csdn.net/bigwood99/article/details/126266859