Apache源码打包成RPM需跳过手动安装,直接用rpmbuild构建:先装Development Tools、rpm-build等工具,rpmdev-setuptree建目录结构;将httpd-2.4.59.tar.bz2放至SOURCES,用rpmbuild -ts生成SRPM,再--rebuild或-tb生成二进制RPM,最终安装验证。

Apache 源码安装后想打包成 RPM,不是“先装再打包”,而是跳过安装步骤,直接用源码构建 RPM 包。核心是利用 rpmbuild 工具,把官方 tarball(如 httpd-2.4.59.tar.bz2)转换为可分发、可批量部署的二进制 RPM。
准备构建环境
确保系统已安装 RPM 构建所需的基础工具和开发依赖:
- 安装构建工具链:
yum groupinstall "Development Tools" - 安装 RPM 构建核心包:
yum install rpm-build redhat-rpm-config yum-utils - 安装 Apache 编译依赖(避免构建时失败):
yum install apr-devel apr-util-devel pcre-devel expat-devel openssl-devel zlib-devel - 创建标准 rpmbuild 目录结构(若不存在):
rpmdev-setuptree(来自rpmdevtools包)
获取并验证源码包
下载官方 Apache httpd 源码压缩包(.tar.bz2 格式),推荐从 httpd.apache.org 获取带 GPG 签名的版本:
- 保存到
~/rpmbuild/SOURCES/目录下 - (可选)导入 Apache 发布密钥并验证签名,保障源码完整性
- 确认文件权限正常,非 root 用户也可读
生成 SRPM(源码 RPM)
SRPM 是构建二进制 RPM 的中间产物,包含源码、补丁和 SPEC 描述文件:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 执行命令:
rpmbuild -ts ~/rpmbuild/SOURCES/httpd-2.4.59.tar.bz2 - 成功后,SRPM 会生成在
~/rpmbuild/SRPMS/,例如:httpd-2.4.59-1.el8.src.rpm - 该 SRPM 可用于审计、二次修改或在其他机器上重建二进制包
构建二进制 RPM
从 SRPM 或直接从 tarball 构建适用于当前系统的二进制 RPM:
- 方式一(推荐,基于 SRPM):
rpmbuild --rebuild ~/rpmbuild/SRPMS/httpd-2.4.59-1.el8.src.rpm - 方式二(直构建):
rpmbuild -tb ~/rpmbuild/SOURCES/httpd-2.4.59.tar.bz2 - 构建成功后,RPM 文件位于
~/rpmbuild/RPMS/x86_64/(或对应平台目录) - 典型输出包括:
httpd-2.4.59-1.el8.x86_64.rpm、httpd-tools-2.4.59-1.el8.x86_64.rpm等
安装与验证生成的 RPM
构建完成后可立即安装测试,验证功能是否符合预期:
- 安装主包:
rpm -ivh ~/rpmbuild/RPMS/x86_64/httpd-2.4.59-1.el8.x86_64.rpm - 检查服务状态:
systemctl start httpd && systemctl status httpd - 确认监听端口:
ss -tlnp | grep :80 - 查看配置路径、模块目录等是否与标准 RPM 一致(如
/etc/httpd/conf/、/usr/lib64/httpd/modules/)
整个过程不涉及手动 make install,完全由 RPM 构建系统控制安装路径、文件权限、服务单元和依赖声明,适合企业环境标准化交付。

















