
最近老张问我他那边源码编译安装的openssl,执行报错找不到库文件,通过find命令查看库文件路径 /usr/local/lib64/libssl.so.1.1
和 /usr/local/openssl/lib/libssl.so.1.1
。问我怎么解决?
1. 动态库加载路径未配置
• 系统默认不会从 /usr/local/lib
或自定义路径加载库文件。需手动配置环境变量或更新动态链接器缓存。• 解决方法: 1. 设置 LD_LIBRARY_PATH
:
执行以下命令(假设库文件在/usr/local/lib
):export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH2. 更新 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. 检查 OpenSSL 安装路径:
运行以下命令确认安装目录(例如/usr/local/openssl
):/usr/local/openssl/bin/openssl version2. 临时指定 OpenSSL 使用路径: /usr/local/openssl/bin/openssl version3. 永久替换系统默认 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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




