基于BCLinux制作Apache HTTPD 2.4.63 的RPM安装包

在这之前,我写过一篇《基于 CentOS7 制作 Apache HTTPD 2.4.58 的RPM安装包》的文章。本文大部分内容和之前差不多,但因为操作系统由CentOS 7变成了BC-Linux,所以,有些内容就可以删减了。

编译环境:

操作系统:BC-Linux

httpd版本:2.4.63

制作工具:rpmbuild(这个之前的文章有介绍,看这里

下载httpd源码:

官网目前的最新版本是2.4.63(2025.1.23发布),下载备用,并放入准备好的编译机器上。

在制作RPM包之前,先检查下本地环境是否已准备好,比如,GCC。输入以下命令查看:

bash 复制代码
 gcc -v

如果提示找不到命令等错误信息,那么需要先安装gcc,命令如下:

bash 复制代码
yum install -y gcc

制作RPM包

找到安装包的位置,然后使用如下命令,即可开始制作RPM包:

bash 复制代码
rpmbuild -tb httpd-2.4.63.tar.bz2

如果没有预先按照它所依赖的那些包,则会报相应的错误。比如,没有安装GCC,则有如下错误信息:

bash 复制代码
[root@localhost SOURCES]# rpmbuild -tb httpd-2.4.63.tar.bz2
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.25sWfL
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd /root/rpmbuild/BUILD
+ rm -rf httpd-2.4.63
+ /usr/bin/bzip2 -dc /root/rpmbuild/SOURCES/httpd-2.4.63.tar.bz2
+ /usr/bin/tar -xof -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd httpd-2.4.63
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
++ echo MODULE_MAGIC_NUMBER_MAJOR
++ cpp -include include/ap_mmn.h
/var/tmp/rpm-tmp.25sWfL: line 45: cpp: command not found
++ sed -n '
/^2/p'
+ vmmn=
+ test x '!=' x20120211
+ : Error: Upstream MMN is now , packaged MMN is 20120211.
+ : Update the mmn macro and rebuild.
+ exit 1
error: Bad exit status from /var/tmp/rpm-tmp.25sWfL (%prep)

注意这句: cpp: command not found,就表示没有安装GCC。当安装了GCC后,有可能遇到如下错误:

bash 复制代码
[root@localhost SOURCES]# rpmbuild -tb httpd-2.4.63.tar.bz2
error: Failed build dependencies:
        apr-devel >= 1.4.0 is needed by httpd-2.4.63-1.x86_64
        apr-util-devel >= 1.4.0 is needed by httpd-2.4.63-1.x86_64
        autoconf is needed by httpd-2.4.63-1.x86_64
        libselinux-devel is needed by httpd-2.4.63-1.x86_64
        libuuid-devel is needed by httpd-2.4.63-1.x86_64
        libxml2-devel is needed by httpd-2.4.63-1.x86_64
        lua-devel is needed by httpd-2.4.63-1.x86_64
        openldap-devel is needed by httpd-2.4.63-1.x86_64
        openssl-devel is needed by httpd-2.4.63-1.x86_64
        pcre-devel >= 5.0 is needed by httpd-2.4.63-1.x86_64
        perl is needed by httpd-2.4.63-1.x86_64
        zlib-devel is needed by httpd-2.4.63-1.x86_64

将上面提示的依赖包都装上:

bash 复制代码
 yum install -y apr-devel apr-util-devel autoconf libselinux-devel libuuid-devel libxml2-devel openldap-devel openssl-devel pcre-devel perl zlib-devel

上面有一个依赖没有安装,因为BC-Linux提示找不到对应的包:

bash 复制代码
[root@localhost SOURCES]# yum install -y autoconf libuuid-devel apr-devel apr-util-devel openldap-devel lua-devel libxml2-devel openssl-devel
Last metadata expiration check: 0:04:17 ago on Wed 19 Mar 2025 03:47:21 PM CST.
No match for argument: lua-devel

没有lua-devel,那我们换个思路来装,去网上找到CentOS 8的lue-devel,lue-devel又依赖lue和lue-lib。所以,我们最终需要把 CentOS 8 下的lue,lue-lib,lue-devel通过本地安装的方式装上。比如类似如下命令:

bash 复制代码
rpm -ivh lue*

所有依赖安装完毕,再来执行一下打包命令:

bash 复制代码
rpmbuild -tb httpd-2.4.63.tar.bz2

如果不出意外,则会打包成功。

相关推荐
SelectDB2 小时前
驾驭 CPU 与编译器:Apache Doris 实现极致性能的底层逻辑
运维·数据库·apache
鲨莎分不晴13 小时前
大数据的“大动脉”:深度剖析 Apache Kafka 的高性能之道
大数据·kafka·apache
oMcLin14 小时前
如何在 RHEL 7 上通过配置 Apache Kafka 集群的分区机制,提升消息传递系统的吞吐量与数据流处理能力?
分布式·kafka·apache
鲨莎分不晴14 小时前
给 Hadoop 插上 SQL 的翅膀:Apache Hive 架构与实战全解
hadoop·sql·apache
oMcLin14 小时前
如何在CentOS 8上配置并调优Apache Spark集群,确保大规模数据分析任务的高效运行与资源分配?
spark·centos·apache
SelectDB1 天前
从 Greenplum 到 Doris:集群缩减 2/3、年省数百万,度小满构建超大规模数据分析平台经验
数据库·数据分析·apache
それども2 天前
Apache POI XSSFWorkbook 和 SXSSFWorkbook 的区别
apache·excel
xifangge20252 天前
PHP 错误日志在哪里看?Apache / Nginx / PHP-FPM 一次讲清
nginx·php·apache
潇凝子潇3 天前
Apache Kafka 跨集群复制实现方案
分布式·kafka·apache
大厂技术总监下海3 天前
数据湖加速、实时数仓、统一查询层:Apache Doris 如何成为现代数据架构的“高性能中枢”?
大数据·数据库·算法·apache