我正尝试在 CentOS 7 上从源代码构建 apr-utils-1.6.1(目标是获得 httpd-2.4.29),但我遇到了依赖性问题:
# rpmbuild -tb apr-util-1.6.1.tar.bz2
error: Failed build dependencies:
db4-devel is needed by apr-util-1.6.1-1.x86_64
db4-devel 在 yum 中不可用,libdb-devel 提供版本 5,不符合依赖要求。
我试过下载和安装 db4-devel,但它有自己的依赖项,我无法满足:
# rpm -iv db4-devel-4.7.25-22.el6.x86_64.rpm
warning: db4-devel-4.7.25-22.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
error: Failed dependencies:
db4 = 4.7.25-22.el6 is needed by db4-devel-4.7.25-22.el6.x86_64
db4-cxx = 4.7.25-22.el6 is needed by db4-devel-4.7.25-22.el6.x86_64
libdb-4.7.so()(64bit) is needed by db4-devel-4.7.25-22.el6.x86_64
libdb_cxx-4.7.so()(64bit) is needed by db4-devel-4.7.25-22.el6.x86_64
尝试安装 db4 也失败了,因为 Berkely DB 版本 5 已经安装并在 CentOS 7 上使用:
# rpm -iv db4-4.7.25-22.el6.x86_64.rpm
warning: db4-4.7.25-22.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
error: Failed dependencies:
db4 < 5 is obsoleted by (installed) libdb-5.3.21-20.el7.x86_64
我不太确定此时如何进行。我是否只需要减少损失并部署一个 CentOS 6 盒子? CentOS 6 好像还有db4。我正在考虑修改规范文件以删除 db4 要求,但我不确定这意味着什么,或者如何正确地做到这一点。
谢谢。
最佳答案
rpmbuild -tb apr-util-1.6.1.tar.bz2
没有 spec 文件,但是有 apr-util-1.6.1/build/rpm/apr-util.spec.in
最好使用带有常规 apr-util.spec
文件的源代码:apr-util-1.6.1-1.fc27.src.rpm
http://dl.fedoraproject.org/pub/fedora/linux/updates/27/SRPMS/Packages/a/apr-util-1.6.1-1.fc27.src.rpm
请不要以 root 身份构建 rpm 包,在/home/name/中设置非特权 rpmbuild 环境:https://www.linuxquestions.org/questions/linux-software-2/need-rpm-package-for-php-version-5-2-7-and-up-on-redhat-5-1-a-766486/#13
使用 $ rpm -Uvh apr-util-1.6.1-1.fc27.src.rpm
解压源 ... 和 $ cd rpms/SPECS/
... 将“apr-util.spec”编辑为新的依赖项,然后尝试一下:$ rpmbuild -bb apr-util.spec
关于linux - 在 CentOS 7 上从源代码构建 apr-utils -- 依赖问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47557647/