5

我试图构建一个 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) 什么可能是原因。任何人都可以帮助我...谢谢
4

3 回答 3

7

尝试BuildRoot在您的规范文件中定义变量。find-debuginfo 脚本多次查看该目录,没有它就会死掉。

这通常看起来像:BuildRoot: %{_tmpdir}/%{name}-%{version}-%{release}

至于你的第二个问题,我不能直接看规范文件和源代码,我绝不是 RPM 专家。我会向您推荐最大 RPM 的第 13 章(网上有免费的副本),以及 Tom Callaway 关于如何制作好的 RPM 包的演示文稿中的注释——我发现这里的规范示例在过去非常有帮助。

于 2009-12-15T02:14:34.017 回答
5

在您的规范中,您可以在顶部执行此操作:

%define debug_package %{nil}

这应该绕过这个问题

于 2011-06-26T19:05:36.777 回答
1

我在尝试在 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在规范文件中定义“:”,这对我来说肯定是一个错误。

于 2011-11-23T14:45:40.917 回答