2009-12-10 65 views
5

我试图建立一个rpm包这是给我下面的错误转生成错误

  • /usr/lib/rpm/find-debuginfo.sh/usr/src目录/红帽/ BUILD/RPMS 发现:无效的谓词`” 错误:错误的退出状态从/var/tmp/rpm-tmp.86590(%安装) 可能是什么。可任何一个理由帮我在这...谢谢

回答

6

尝试在您的spec文件中定义BuildRoot变量。 find-debuginfo脚本多次查找该目录,并在没有它的情况下死掉。

这通常会是这个样子:BuildRoot: %{_tmpdir}/%{name}-%{version}-%{release}

关于你的第二个问题,我不能说不用直接观看spec文件和源代码,我绝不是RPM专家。我会向你推荐最大RPM第13章(有免费在线提供的副本)以及Tom Callaway在How to make good RPM packages上的演示文稿 - 我发现这里的规范示例在过去非常有帮助。

+0

缺少BuildRoot是问题的确切根源 - 定义它(像它应该一直以...开头)解决了这个问题。谢谢! – Shirkrin 2014-04-25 08:44:21

5

在你的天赋,你可以在上面做:

%define debug_package %{nil} 

这应该回避这个问题

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:”,这对我来说肯定是一个错误。