编译和安装openssl-1.0.2 (一)

完整操作步骤

1. 安装依赖
# Debian/Ubuntu
apt-get update && apt-get install -y build-essential zlib1g-dev

# RHEL/CentOS
yum groupinstall -y "Development Tools" && yum install -y zlib-devel

2. 编译 OpenSSL
# 下载源码
wget https://www.openssl.org/source/old/1.0.2/openssl-1.0.2u.tar.gz
tar -xzf openssl-1.0.2u.tar.gz
cd openssl-1.0.2u

# 配置并编译(关键修正点:enable-zlib)
LDFLAGS="-Wl,-rpath=/opt/openssl-1.0.2/lib" \
./config --prefix=/opt/openssl-1.0.2 \
         --openssldir=/opt/openssl-1.0.2/ssl \
         shared enable-zlib

make depend     # 确保依赖关系正确
make -j$(nproc) # 并行编译
make install    # 安装到 /opt/openssl-1.0.2


三、验证配置

1. 检查 zlib 支持

查看生成的 Makefile 是否包含 -DZLIB 和 -lz

grep -E "ZLIB|zlib" Makefile

输出应类似:

CFLAG= ... -DZLIB ... 
LIB= ... -lz ...

2. 验证 rpath 嵌入

检查编译后的 openssl 命令是否包含正确的 RUNPATH

readelf -d /opt/openssl-1.0.2/bin/openssl | grep 'RUNPATH'

预期输出:

0x000000000000001d (RUNPATH) Library runpath: [/opt/openssl-1.0.2/lib]

3. 测试运行
/opt/openssl-1.0.2/bin/openssl version
# 应输出:OpenSSL 1.0.2u  20 Dec 2019


四、常见问题

1. 若编译报错 undefined reference to zlib
  • 原因‌:未安装 zlib 开发包或 enable-zlib 未生效。
  • 解决‌:
    # 确保安装 zlib 开发包后重新配置
    make clean
    ./config ... enable-zlib  # 重新执行配置
    make
    

2. 若运行时找不到库
  • 原因‌:rpath 未正确嵌入或路径错误。
  • 解决‌:
    # 检查 RUNPATH
    readelf -d /opt/openssl-1.0.2/bin/openssl | grep RUNPATH
    
    # 临时修复(不推荐长期使用)
    export LD_LIBRARY_PATH=/opt/openssl-1.0.2/lib:$LD_LIBRARY_PATH
    


五、最终命令总结

参数作用
LDFLAGS="-Wl,-rpath=..."硬编码运行时库路径,避免依赖系统环境变量
--prefix=/opt/openssl-1.0.2指定安装根目录
--openssldir=...指定 OpenSSL 配置文件目录(默认同 --prefix 时可省略)
shared生成动态库(.so
enable-zlib启用 zlib 压缩支持(需提前安装 zlib 开发包)

通过以上修正和验证,可以确保 OpenSSL 1.0.2u 正确编译并隔离于系统库,同时支持 zlib 压缩功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dlz0836

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值