编译httpd-2.4.46的RPM包

news/2024/9/17 17:18:35

目录

一、下载源码

二、编译&排错

2.1、第一次编译,解决依赖包问题。

2.2、第二次编译,解决anaconda导致的环境变量问题

2.3、第三次编译,解决apr版本过低问题


提供 apr-1.7.0、httpd-2.4.46 的RPM包下载。

apr-1.7.0-bundle.zip

httpd-2.4.46 -bundle.zip

一、下载源码

[root@lingmk ~]# cd rpmbuild/SOURCES/
[root@lingmk SOURCES]#
[root@lingmk SOURCES]# wget https://mirror.bit.edu.cn/apache//httpd/httpd-2.4.46.tar.bz2
…………[root@lingmk SOURCES]# sha256sum httpd-2.4.46.tar.bz2
740eddf6e1c641992b22359cabc66e6325868c3c5e2e3f98faf349b61ecf41ea  httpd-2.4.46.tar.bz2
[root@lingmk SOURCES]#
[root@lingmk SOURCES]# tar xvjf httpd-2.4.46.tar.bz2
…………
[root@lingmk SOURCES]# cd httpd-2.4.46/
[root@lingmk httpd-2.4.46]# ll | grep spec
-rw-r--r--  1 root 40   17313 Aug  1 22:11 httpd.spec
[root@lingmk httpd-2.4.46]# cp httpd.spec ../../SPECS/
[root@lingmk httpd-2.4.46]# cd ../../SPECS/

二、编译&排错

2.1、第一次编译,解决依赖包问题。

报错需要lua-devel,安装之。

[root@lingmk SPECS]# rpmbuild -ba httpd.spec
error: Failed build dependencies:lua-devel is needed by httpd-2.4.46-1.x86_64
[root@lingmk SPECS]#
[root@lingmk SPECS]# yum install lua-devel -y

2.2、第二次编译,解决anaconda导致的环境变量问题

报错 /usr/lib64/libapr-1.so: undefined reference to `uuid_generate@UUID_1.0'。

  1. 使用/usr/lib64/libapr-1.so时遇到一个未定义的uuid……。
  2. 我们用ldd命令看看/usr/lib64/libapr-1.so的库依赖,包含uuid的是libuuid.so.1。
  3. 我们再locate命令看看哪里有libuuid.so.1,发现在anaconda里面也有libuuid.so.1。

原因就是这个冲突导致的。我们可以查看PATH环境变量,果然anaconda排在前面。我们使用conda deactivate取消anaconda的环境变量。再次编译。

[root@lingmk SPECS]# rpmbuild -ba httpd.spec
…………
/usr/lib64/libapr-1.so: undefined reference to `uuid_generate@UUID_1.0'
collect2: error: ld returned 1 exit status
make[1]: *** [httpd] Error 1
make[1]: Leaving directory `/root/rpmbuild/BUILD/httpd-2.4.46'
make: *** [all-recursive] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.7JVKVB (%build)RPM build errors:Bad exit status from /var/tmp/rpm-tmp.7JVKVB (%build)
[root@lingmk SPECS]#
[root@lingmk SPECS]# ldd /usr/lib64/libapr-1.so | grep uuidlibuuid.so.1 => /lib64/libuuid.so.1 (0x00007fa4f959d000)
[root@lingmk SPECS]#
[root@lingmk SPECS]# locate libuuid.so.1
/data/anaconda3/lib/libuuid.so.1
/data/anaconda3/lib/libuuid.so.1.0.0
/data/anaconda3/pkgs/libuuid-1.0.3-h1bed415_2/lib/libuuid.so.1
/data/anaconda3/pkgs/libuuid-1.0.3-h1bed415_2/lib/libuuid.so.1.0.0
/usr/lib64/libuuid.so.1
/usr/lib64/libuuid.so.1.3.0
[root@lingmk SPECS]#
[root@lingmk SPECS]# echo $PATH
/data/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@lingmk SPECS]#
[root@lingmk SPECS]# conda deactivate
[root@lingmk SPECS]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@lingmk SPECS]#

2.3、第三次编译,解决apr版本过低问题

报错找不到文件/root/rpmbuild/BUILDROOT/httpd-2.4.46-1.x86_64/usr/lib64/httpd/modules/mod_mpm_event.so。

据说是由于apr(Apache Portable Runtime)的版本太低,CentOS7自带的是1.4.x版本的,需要将升级apr升级到1.5.x以上才行,目前最新的是1.7.0版本。我们先完成支线任务编译apr,再继续编译apache。编译成功。


[root@lingmk SPECS]# rpmbuild -ba httpd.spec
…………
+ grep TEXTREL
+ exit 0
Processing files: httpd-2.4.46-1.x86_64
error: File not found: /root/rpmbuild/BUILDROOT/httpd-2.4.46-1.x86_64/usr/lib64/httpd/modules/mod_mpm_event.so
Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.fP4iVM
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd httpd-2.4.46
+ DOCDIR=/root/rpmbuild/BUILDROOT/httpd-2.4.46-1.x86_64/usr/share/doc/httpd-2.4.46
+ export DOCDIR
+ /usr/bin/mkdir -p /root/rpmbuild/BUILDROOT/httpd-2.4.46-1.x86_64/usr/share/doc/httpd-2.4.46
+ cp -pr ABOUT_APACHE /root/rpmbuild/BUILDROOT/httpd-2.4.46-1.x86_64/usr/share/doc/httpd-2.4.46
+ cp -pr README /root/rpmbuild/BUILDROOT/httpd-2.4.46-1.x86_64/usr/share/doc/httpd-2.4.46
+ cp -pr CHANGES /root/rpmbuild/BUILDROOT/httpd-2.4.46-1.x86_64/usr/share/doc/httpd-2.4.46
+ cp -pr LICENSE /root/rpmbuild/BUILDROOT/httpd-2.4.46-1.x86_64/usr/share/doc/httpd-2.4.46
+ cp -pr NOTICE /root/rpmbuild/BUILDROOT/httpd-2.4.46-1.x86_64/usr/share/doc/httpd-2.4.46
+ exit 0RPM build errors:File not found: /root/rpmbuild/BUILDROOT/httpd-2.4.46-1.x86_64/usr/lib64/httpd/modules/mod_mpm_event.so
[root@lingmk SPECS]#
[root@lingmk SPECS]# cd ../SOURCES/
[root@lingmk SOURCES]# wget https://mirrors.bfsu.edu.cn/apache//apr/apr-1.7.0.tar.bz2
[root@lingmk SOURCES]# sha256sum apr-1.7.0.tar.bz2
e2e148f0b2e99b8e5c6caa09f6d4fb4dd3e83f744aa72a952f94f5a14436f7ea  apr-1.7.0.tar.bz2
[root@lingmk SOURCES]#
[root@lingmk SOURCES]# tar xvjf apr-1.7.0.tar.bz2
[root@lingmk SOURCES]# cp apr-1.7.0/apr.spec ../SPECS/
[root@lingmk SOURCES]# cd ../SPECS/
[root@lingmk SPECS]#
[root@lingmk SPECS]# rpmbuild -ba apr.spec
…………
Wrote: /root/rpmbuild/SRPMS/apr-1.7.0-1.src.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/apr-1.7.0-1.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/apr-devel-1.7.0-1.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/apr-debuginfo-1.7.0-1.x86_64.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.FxdyDh
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd apr-1.7.0
+ rm -rf /root/rpmbuild/BUILDROOT/apr-1.7.0-1.x86_64
+ exit 0
[root@lingmk SPECS]# cd ../RPMS/x86_64/
[root@lingmk x86_64]# yum localinstall apr-1.7.0-1.x86_64.rpm apr-devel-1.7.0-1.x86_64.rpm
[root@lingmk x86_64]# cd ../../SPECS/
[root@lingmk SPECS]# rpmbuild -ba httpd.spec
…………
Wrote: /root/rpmbuild/SRPMS/httpd-2.4.46-1.src.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/httpd-2.4.46-1.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/httpd-devel-2.4.46-1.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/httpd-manual-2.4.46-1.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/httpd-tools-2.4.46-1.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/mod_authnz_ldap-2.4.46-1.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/mod_lua-2.4.46-1.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/mod_proxy_html-2.4.46-1.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/mod_ssl-2.4.46-1.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/httpd-debuginfo-2.4.46-1.x86_64.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.nL1uTo
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd httpd-2.4.46
+ rm -rf /root/rpmbuild/BUILDROOT/httpd-2.4.46-1.x86_64
+ exit 0
[root@lingmk SPECS]#

 


http://lihuaxi.xjx100.cn/news/235964.html

相关文章

07-09-Exchange Server 2019-配置-Outlook 2019

[在此处输入文章标题] 《系统工程师实战培训》 -07-部署邮件系统 -09-Exchange Server 2019-配置-Outlook 2019 作者:学 无 止 境 QQ交流群:454544014 MSUCDemo01 MSUCDemo02 MSUCDemo03 MSUCDemo04 MSUCDemo05 启用邮箱 MSUCDemo01i-x-Cloud.com MSUCDe…

MySQL00-这都不知道还TM学啥MySQL

目录 一、MySQL架构概述 1.1、客户端连接器 1.2、连接层 1.3、可插拔存储引擎 1.4、文件系统与文件 二、配置文件 三、数据文件 四、日志文件(以MySQL5.7.32为例) 4.1、错误日志 Error Log 4.2、一般查询日志 General Query Log 4.3、二进制日…

从入门到放弃的javaScrip——队列

队列数据结构 队列是遵循FIFO(First In First Out,先进先出,也称为先来先服务)原则的一组有序的项。队列在尾部添加新元素,并从顶部移除元素。最新添加的元素必须排在队列的末尾。 现实中,很常见的例子就是…

node 压缩模块速成

1. 压缩与解压缩处理可以使用zlib模块进行压缩及解压缩处理,压缩文件以后可以减少体积,加快传输速度和节约带宽 代码2. 压缩对象压缩和解压缩对象都是一个可读可写流方法说明zlib.createGzip返回Gzip流对象,使用Gzip算法对数据进行压缩处理zlib.createGu…

MySQL从5.7.32升级到8.0.22

目录 一、备份与导出数据 二、升级到MySQL-8.0.22同时解决字符集问题 2.1、卸载MySQL-5.7.32 2.2、安装MySQL-8.0.22 2.3、修改配置文件 my.cnf 三、导入数据及配置 3.1、重新创建数据库wordpress 3.2、导入表结构和数据 3.3、启动httpd 今天,贫僧的个人博客…

Java面试题总结-Day4

<?xml version"1.0" encoding"utf-8"?> Java面试题总结-Day4Java面试题总结-Day4 Table of Contents 1. ArrayList和LinkedList区别 1.1. 是否线程安全1.2. 底层数据结构1.3. 插入和删除是否受元素位置的影响1.4. 是否支持快速随机访问1.5. 内存空…

STM32中EXTI和NVIC的关系

&#xff08;1&#xff09;NVIC(嵌套向量中断)&#xff1a;NVIC是Cortex-M3核心的一部分&#xff0c;关于它的资料不在《STM32的技术参考手册》中&#xff0c;应查阅ARM公司的《Cortex-M3技术参考手册》Cortex-M3的向量中断统一由NVIC管理。 &#xff08;2&#xff09;EXTI(外部…

matplotlib01-plot折线图、scatter散点图

目录 一、plot绘制折线图一般用法 二、scatter绘制散点图一般用法 记录一下数据可视化的python库matplotlib&#xff0c;研究并纪录一下。 matplotlib.pyplot.subplots函数。subplots可以绘制一个或多个图表。返回变量fig表示整张图片&#xff0c;变量ax表示图片中的各个图表…