在非 root 下执行 rpmbuild 时找不到 gnutls 库

在非 root 下执行 rpmbuild 时找不到 gnutls 库

我正在尝试使用 rpmforge 中的 .spec 从最新源代码构建 ntgs - 通过 rpmbuild 以非 root 身份构建。在编译过程中,它在此步骤失败:

checking for GNUTLS... no
configure: error: ntfsprogs crypto code requires the gnutls library.
error: Bad exit status from /var/tmp/rpm-tmp.78913 (%build)

但是,我可以在 rpmbuild 之外成功编译它。所以听起来这只是在构建过程中看到库的问题。但是,我可以确认 rpmbuild 可以看到 gnutls 所在的库:

[foo@bar ~]$ rpmbuild -E '%{_libdir}' rpmbuild/SPECS/ntfsprogs.spec 
/usr/lib

图书馆位置:

[foo@bar ntfs-3g_ntfsprogs-2012.1.15]$ /sbin/ldconfig -p | grep -i gnutls
        libgnutls.so.13 (libc6) => /usr/lib/libgnutls.so.13
        libgnutls.so (libc6) => /usr/lib/libgnutls.so
        libgnutls-openssl.so.13 (libc6) => /usr/lib/libgnutls-openssl.so.13
        libgnutls-openssl.so (libc6) => /usr/lib/libgnutls-openssl.so
        libgnutls-extra.so.13 (libc6) => /usr/lib/libgnutls-extra.so.13
        libgnutls-extra.so (libc6) => /usr/lib/libgnutls-extra.so

什么原因导致在构建 RPM 时无法看到库的问题?

编辑:哦,是的,我正在运行 Centos 5.5。

答案1

ntfs-3g_ntfsprogs 的 2012.1.15 版本需要 gnutls >= 1.4.4,但 RHEL5 仅提供 1.4.1。您能够在 rpmbuild 之外对其进行编译,因为您没有--enable-cryptoconfigurespec 文件中指定它。可以通过检查 来识别这些问题config.log

一般来说,处理这种幅度的版本升级——在本例中从 1.13.1(2007 年 2 月 22 日)到 2012.1.15——将比简单地编辑 spec 文件中的“Version:”行更为复杂。

另请注意,EPEL repo 的版本为 2011.4.12(http://dl.fedoraproject.org/pub/epel/5/x86_64/repoview/ntfsprogs.html) 可能对你来说已经够新了。如果你已经在系统上安装了 rpmforge 软件包,我建议你谨慎使用,因为 rpmforge 和 EPEL 不能很好地协同工作。

相关内容