如何在AlmaLinux 8.10中安装32位openssl-static.i686包
解决AlmaLinux 8.10安装32位openssl-static包的问题
1. 修正仓库名称(关键错误)
AlmaLinux 8及后续版本中,原powertools仓库已重命名为CodeReady Builder (crb),你之前执行的--set-enabled powertools实际未生效。先启用正确的仓库:
sudo dnf config-manager --set-enabled crb sudo dnf install epel-release -y
2. 确认32位架构支持
先安装32位程序运行的基础依赖,确保系统允许安装i686架构包:
sudo dnf install glibc.i686 glibc-devel.i686 -y
3. 尝试安装预编译的32位openssl静态库
执行以下命令搜索并安装:
sudo dnf search openssl-static --arch=i686 # 如果搜索到匹配结果,执行安装 sudo dnf install openssl-static.i686 -y
若执行后仍提示找不到包,说明AlmaLinux 8.10的官方仓库未提供预编译的32位openssl-static包,此时需要手动编译:
4. 手动编译32位openssl静态库
步骤4.1 安装编译依赖
sudo dnf install gcc make perl-core zlib-devel.i686 -y
步骤4.2 下载并编译openssl
选择与系统默认版本匹配的源码包(AlmaLinux 8默认使用openssl 1.1.1系列,以1.1.1w为例):
# 下载源码 wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz tar -xzf openssl-1.1.1w.tar.gz cd openssl-1.1.1w # 配置32位静态编译环境,指定安装路径 ./Configure linux-elf --prefix=/usr/local/openssl-i686 --openssldir=/usr/local/openssl-i686 no-shared # 编译并安装 make -j$(nproc) sudo make install
步骤4.3 获取静态库文件
编译完成后,目标静态库文件位于指定路径:
/usr/local/openssl-i686/lib/libssl.a /usr/local/openssl-i686/lib/libcrypto.a
你可以将这些文件复制到/usr/lib目录,或在编译C代码时通过-L参数指定库路径:
gcc your_code.c -o your_program -L/usr/local/openssl-i686/lib -lssl -lcrypto -m32
补充说明
- 安装x86_64版本的openssl-static后,静态库文件位于
/usr/lib64/libssl.a,而非/usr/lib,这是64位系统的路径规范。
内容的提问来源于stack exchange,提问作者Tony B
相关产品推荐
相关产品推荐

