暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

源码编译安装的openssl,执行报错找不到库文件

运维笔谈 2025-05-13
2893

 

最近老张问我他那边源码编译安装的openssl,执行报错找不到库文件,通过find命令查看库文件路径 /usr/local/lib64/libssl.so.1.1
 和 /usr/local/openssl/lib/libssl.so.1.1
。问我怎么解决?

1. 动态库加载路径未配置

  • • 系统默认不会从 /usr/local/lib
     或自定义路径加载库文件。需手动配置环境变量或更新动态链接器缓存。
  • • 解决方法
    1. 1. 设置 LD_LIBRARY_PATH

      执行以下命令(假设库文件在 /usr/local/lib
      ):
      export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
    2. 2. 更新 ldconfig
       缓存

      创建软链接并更新缓存:
      sudo ln -s usr/local/lib/libssl.so.1.1 usr/lib64/libssl.so.1.1
      sudo ln -s usr/local/lib/libcrypto.so.1.1 usr/lib64/libcrypto.so.1.1
      sudo ldconfig


2. OpenSSL 安装路径冲突

  • • 若手动编译安装 OpenSSL 1.1.1g,需确保安装路径正确且优先级高于系统默认版本。
  • • 解决方法
    1. 1. 检查 OpenSSL 安装路径:
      运行以下命令确认安装目录(例如 /usr/local/openssl
      ):
      /usr/local/openssl/bin/openssl version
    2. 2. 临时指定 OpenSSL 使用路径:
      /usr/local/openssl/bin/openssl version
    3. 3. 永久替换系统默认 OpenSSL(谨慎操作):
      将 /usr/local/openssl/bin
       添加到 PATH
      ,并替换系统链接:
      sudo mv /usr/bin/openssl usr/bin/openssl.bak
      sudo ln -s usr/local/openssl/bin/openssl usr/bin/openssl


3. 验证库文件完整性

  • • 确认库文件是否完整且存在符号链接:
    ls -l /usr/local/lib | grep libssl
    # 应显示 libssl.so.1.1 和 libcrypto.so.1.1 的软链接

  • • 若缺失符号链接,手动创建:
    cd /usr/local/lib
    sudo ln -s libssl.so.1.1.1g libssl.so.1.1
    sudo ln -s libcrypto.so.1.1.1g libcrypto.so.1.1


4. 检查编译安装步骤

  • • 如果是手动编译安装,请确保以下步骤正确执行:
    ./Configure --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared linux-x86_64
    make
    sudo make install

  • • 安装完成后,验证库文件是否生成于 /usr/local/openssl/lib
     。

5. 排查多版本冲突

  • • 系统可能同时存在多个 OpenSSL 版本(如系统自带的和手动安装的 ):
    which openssl
    # 检查输出路径是否为新安装的 OpenSSL

  • • 若冲突,可通过环境变量或软链接强制使用新版本 。

最终验证

执行以下命令确认问题是否解决:

openssl version
# 应输出 OpenSSL 1.1.1g

 

文章转载自运维笔谈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论