2009-12-10 13 views
5

Ich versuchte, ein RPM-Paket zu bauen, die mir die folgenden Fehlerrpm Buildfehler

  • /usr/lib/rpm/find-debuginfo.sh/usr/src/redhat/BUILD/RPMS schenkt Fund : ‚ungültig Prädikat` Fehler: Bad Exit-Status von /var/tmp/rpm-tmp.86590 (% installieren) , was der Grund .can einem in dieser mir helfen könnte ... Danke

Antwort

6

Versuchen Sie, die Variable BuildRoot in Ihrer Spezifikationsdatei zu definieren. Das Skript find-debuginfo schaut mehrmals in dieses Verzeichnis und wird ohne es sterben.

Diese in der Regel etwas aussehen wird: BuildRoot: %{_tmpdir}/%{name}-%{version}-%{release}

Was Ihre zweite Frage, ich kann nicht sagen, ohne Spec-Datei zu sehen und Quellen direkt, und ich bin keineswegs ein RPM-Experte. Ich werde Sie zu Kapitel 13 von Maximum RPM empfehlen (es gibt Kopien, die frei online verfügbar sind), und die Notizen von Tom Callaway's Präsentation auf How to make good RPM packages - Ich habe die Spezifikationsbeispiele hier gefunden, um in der Vergangenheit sehr hilfreich zu sein.

+0

Fehlendes BuildRoot ist die genaue Wurzel des Problems - es zu definieren (wie es sein sollte, um mit zu beginnen ..) löst das Problem gut. Vielen Dank! – Shirkrin

5

In Ihrem spec können Sie dies an der Spitze:

%define debug_package %{nil} 

Dies sollte umgehen dieses Problem

1

Ich traf gerade das gleiche Problem, wenn auf einem RedHat 5.3-Server zu bauen versucht. Hier ist was ich gefunden habe. Der Fehler scheint durch eine leere RPM_BUILD_ROOT Variable verursacht zu werden. Im Folgenden finden Sie eine Codezeile:

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

Wenn RPM_BUILD_ROOT nicht definiert ist, dann wird das erste Argument ist eine leere Zeichenkette „“ zu finden, die diesen Fehler verursacht. Interessanterweise funktioniert der Befehl gut, wenn Sie die Anführungszeichen von etwa $RPM_BUILD_ROOT entfernen, da das erste Argument das "!" Werden würde. Da in der Spezifikationsdatei kein "BuildRoot:" definiert werden muss, sieht das für mich wie ein Fehler aus.