我正在从源代码手动构建 httpd-2.2.17 。为了确保我的配置选项正确,我检查了最新的 CENTOS apache srpm(适用于 httpd-2.2.3)。在 httpd.spec 中我找到这一行:
# forcibly prevent use of bundled apr, apr-util, pcre
rm -rf srclib/{apr,apr-util,pcre}
我想知道为什么需要这样做?使用默认 httpd 源中包含的 apr 有什么问题?
答案1
这是因为 apache RPM 规范文件对 apr-devel、apr-util-devel 和 pcre-devel 软件包有一个“BuildRequire”,并且打包者希望构建使用打包版本而不是 apache tarball 中捆绑的版本。
对于它的价值,这是添加该行所做的更改,也许这将有助于回答您的问题:链接文本
这是 6 年前的编辑,因此它与当前的软件包并不相同,但您可以在补丁的其他地方看到如何添加 apr-devel 打包版本中的 apr-config。
答案2
它们被封装在一起以方便用户。在发行版维护的系统中,还有许多其他软件使用 apr、apr-util 和 pcre,单独安装它们是有意义的。单独安装它们可以节省内存(因为内存中只有一份库函数和数据副本)并且更容易升级(特别是安全更新),因为您不必重新下载和重新安装嵌入这些库的所有软件。