Build rpm生成错误

Build rpm生成错误,build,rpm,Build,Rpm,我试图构建一个rpm包,它给了我以下错误 /usr/lib/rpm/find-debuginfo.sh/usr/src/redhat/BUILD/RPMS 查找:无效的谓词`' 错误:从/var/tmp/rpm-tmp.86590(%install)退出状态不正确 可能是什么原因。有人能帮我吗?谢谢 尝试在spec文件中定义BuildRoot变量。find-debuginfo脚本多次查看该目录,如果没有它,它将消失 这通常看起来像:BuildRoot:%%{u tmpdir}/%%{name}

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

  • /usr/lib/rpm/find-debuginfo.sh/usr/src/redhat/BUILD/RPMS 查找:无效的谓词`' 错误:从/var/tmp/rpm-tmp.86590(%install)退出状态不正确 可能是什么原因。有人能帮我吗?谢谢

尝试在spec文件中定义
BuildRoot
变量。find-debuginfo脚本多次查看该目录,如果没有它,它将消失

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


至于你的第二个问题,我不能不直接看规范文件和源代码,我绝对不是RPM专家。我将推荐您阅读《最大转速》第13章(有免费的在线副本),以及Tom Callaway在上的演示中的注释-我发现这里的规范示例在过去非常有用。

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

%define debug_package %{nil}

这应该绕过这个问题

我在尝试构建RedHat 5.3服务器时遇到了同样的问题。这是我发现的。错误似乎是由空的
RPM\u BUILD\u ROOT
变量引起的。下面是一条令人不快的线:

find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*.debug" -type f \
                 \( -perm -0100 -or -perm -0010 -or -perm -0001 \) \
                 -print |

如果未定义
RPM\u BUILD\u ROOT
,则要查找的第一个参数是空字符串“”,这会导致此错误。有趣的是,如果从
$RPM\u BUILD\u ROOT
中删除引号,那么命令就可以正常工作,因为第一个参数将变成“!”。由于不需要在spec文件中定义“
BuildRoot
:”,这在我看来肯定是一个bug。

缺少BuildRoot是问题的确切根源-定义它(就像它应该从..开始)很好地解决了问题。谢谢