gpt4 book ai didi

apache mod_http2 先决条件失败

转载 作者:行者123 更新时间:2023-12-05 03:12:01 25 4
gpt4 key购买 nike

我正在尝试在 CentOS 7 上使用 mod_http2 RPM 构建 apache 2.4.18。但是,在构建时出现以下故障:

checking whether to enable mod_http2... checking dependencies
checking for nghttp2... checking for user-provided nghttp2 base directory... /usr/lib64
checking for pkg-config along :/usr/lib64/pkgconfig:/usr/share/pkgconfig... adding "-I/usr/lib64/include" to CPPFLAGS
setting MOD_CFLAGS to "-I/usr/lib64/include"
setting ab_CFLAGS to "-I/usr/lib64/include"
adding "-L/usr/lib64/lib" to LDFLAGS
setting MOD_LDFLAGS to "-L/usr/lib64/lib"
checking for nghttp2 version >= 1.2.1... FAILED
configure: WARNING: nghttp2 version is too old
no
checking whether to enable mod_http2... configure: error: mod_http2 has been requested but can not be built due to prerequisite failures
error: Bad exit status from /var/tmp/rpm-tmp.aOryWX (%build)


RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.aOryWX (%build)

然而,我的 nghttp2 和 libnghttp2 版本都是 1.7.1:

Installed Packages
Name : nghttp2
Arch : x86_64
Version : 1.7.1
Release : 1.el7.centos
Size : 1.3 M
Repo : installed
From repo : local
Summary : Experimental HTTP/2 client, server and proxy
URL : https://nghttp2.org/
Licence : MIT
Description : This package contains the HTTP/2 client, server and proxy programs.

Installed Packages
Name : libnghttp2
Arch : x86_64
Version : 1.7.1
Release : 1.el7.centos
Size : 139 k
Repo : installed
From repo : local
Summary : A library implementing the HTTP/2 protocol
URL : https://nghttp2.org/
Licence : MIT
Description : libnghttp2 is a library implementing the Hypertext Transfer Protocol
: version 2 (HTTP/2) protocol in C.

在我的 httpd.spec 中,我添加了以下配置选项:

%configure \
--enable-layout=RPM \
--libdir=%{_libdir} \
--sysconfdir=%{_sysconfdir}/httpd/conf \
--includedir=%{_includedir}/httpd \
--libexecdir=%{_libdir}/httpd/modules \
--datadir=%{contentdir} \
--with-installbuilddir=%{_libdir}/httpd/build \
--enable-mpms-shared=all \
--with-apr=%{_prefix} --with-apr-util=%{_prefix} \
--enable-suexec --with-suexec \
--with-suexec-caller=%{suexec_caller} \
--with-suexec-docroot=%{contentdir} \
--with-suexec-logfile=%{_localstatedir}/log/httpd/suexec.log \
--with-suexec-bin=%{_sbindir}/suexec \
--with-suexec-uidmin=500 --with-suexec-gidmin=100 \
--enable-pie \
--with-pcre \
--enable-mods-shared=all \
--enable-ssl --with-ssl --enable-socache-dc --enable-bucketeer \
--enable-case-filter --enable-case-filter-in \
--enable-http --enable-http2 --with-nghttp2=%{_libdir} \
--disable-imagemap

我的 libnghttp2 安装在/usr/lib64 中:

sudo find / -iname "*nghttp2*"
[sudo] password for administrator:
/home/administrator/rpmbuild/RPMS/x86_64/nghttp2-1.7.1-1.el7.centos.x86_64.rpm
/home/administrator/rpmbuild/RPMS/x86_64/libnghttp2-1.7.1-1.el7.centos.x86_64.rpm
/home/administrator/rpmbuild/RPMS/x86_64/libnghttp2-devel-1.7.1-1.el7.centos.x86_64.rpm
/home/administrator/rpmbuild/RPMS/x86_64/nghttp2-debuginfo-1.7.1-1.el7.centos.x86_64.rpm
/home/administrator/rpmbuild/SRPMS/nghttp2-1.7.1-1.el7.src.rpm
/var/lib/yum/yumdb/l/56527c0ccd96b61605f75b8cb07ebee7b2901c17-libnghttp2-1.7.1-1.el7.centos-x86_64
/var/lib/yum/yumdb/n/4630c64bc127ec7ed9b842ee49923baa493c05b5-nghttp2-1.7.1-1.el7.centos-x86_64
/var/repos/centos/7/nghttp2-1.7.1-1.el7.centos.x86_64.rpm
/var/repos/centos/7/nghttp2-debuginfo-1.7.1-1.el7.centos.x86_64.rpm
/var/repos/centos/7/libnghttp2-1.7.1-1.el7.centos.x86_64.rpm
/var/repos/centos/7/libnghttp2-devel-1.7.1-1.el7.centos.x86_64.rpm
/usr/lib64/libnghttp2.so.14
/usr/lib64/libnghttp2.so.14.4.1
/usr/share/licenses/libnghttp2-1.7.1
/usr/share/nghttp2

/usr/share/nghttp2 中唯一的文件是 fetch-ocsp-response

希望我提供了足够的信息,但如果需要更多信息,请询问。问题是什么,我该如何解决?

最佳答案

对我来说,这似乎只是来自配置脚本的错误消息。

我已经检查了 EPEL 的基本配置,它使用的版本与您建议的略有不同。

你应该为构建安装 libnghttp2-devel 包(也把它放在你的 BuildRequires 中),而你需要 libnghttp2 用于运行时(把它放在你的要求)。

建议(免责声明:我是作者):如果您想要一种简单但有效且可重现的方法来根据规范构建和重建 RPM,请查看此项目:

https://github.com/alanfranz/docker-rpm-builder/

关于apache mod_http2 先决条件失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35416788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com