我试图构建一个 rpm 包,它给了我以下错误
- /usr/lib/rpm/find-debuginfo.sh /usr/src/redhat/BUILD/RPMS find: invalid predicate `' error: Bad exit status from /var/tmp/rpm-tmp.86590 (%install) 什么可能是原因。任何人都可以帮助我...谢谢
尝试BuildRoot
在您的规范文件中定义变量。find-debuginfo 脚本多次查看该目录,没有它就会死掉。
这通常看起来像:BuildRoot: %{_tmpdir}/%{name}-%{version}-%{release}
至于你的第二个问题,我不能直接看规范文件和源代码,我绝不是 RPM 专家。我会向您推荐最大 RPM 的第 13 章(网上有免费的副本),以及 Tom Callaway 关于如何制作好的 RPM 包的演示文稿中的注释——我发现这里的规范示例在过去非常有帮助。
在您的规范中,您可以在顶部执行此操作:
%define debug_package %{nil}
这应该绕过这个问题
我在尝试在 RedHat 5.3 服务器上构建时遇到了同样的问题。这是我发现的。该错误似乎是由空RPM_BUILD_ROOT
变量引起的。下面是一个违规行:
find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*.debug" -type f \
\( -perm -0100 -or -perm -0010 -or -perm -0001 \) \
-print |
如果RPM_BUILD_ROOT
尚未定义,则 find 的第一个参数是空字符串“”,这会导致此错误。有趣的是,如果您从 around 中删除引号$RPM_BUILD_ROOT
,则命令可以正常工作,因为第一个参数将变为“!”。由于不需要BuildRoot
在规范文件中定义“:”,这对我来说肯定是一个错误。