rpm构建错误

时间:2009-12-10 09:18:16

标签: build rpm

我尝试构建一个rpm包,它给了我以下错误

  • /usr/lib/rpm/find-debuginfo.sh / usr / src / redhat / BUILD / RPMS find:无效的谓词`' 错误:来自/var/tmp/rpm-tmp.86590的错误退出状态(%install) 可能是什么原因。任何人都可以帮助我...谢谢

3 个答案:

答案 0 :(得分:6)

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

这通常类似于:BuildRoot: %{_tmpdir}/%{name}-%{version}-%{release}

关于你的第二个问题,我不能不直接看到规范文件和来源,我绝不是RPM专家。我将向您推荐最大RPM的第13章(可在线免费获得副本),以及Tom Callaway在How to make good RPM packages上的演示中的注释 - 我发现这里的规范示例在过去非常有用。 / p>

答案 1 :(得分:5)

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

%define debug_package %{nil}

这应该绕过这个问题

答案 2 :(得分: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,则查找的第一个参数是空字符串“”,这会导致此错误。有趣的是,如果从$RPM_BUILD_ROOT左右删除引号,那么命令工作正常,因为第一个参数将成为“!”。由于不需要在spec文件中定义“BuildRoot:”,这对我来说当然是个错误。