2012-12-11 6 views
8

ich folgend in meinem Buildprotokoll bin immer:rpmbuild% clean Phase ohne Dateien entfernen

Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.CgE2Qn 
+ umask 022 
+ cd /export/home/svn_checkouts/*snip*/Output/release/bin/packaging/BUILD 
+ /bin/rm -rf /export/home/svn_checkouts/*snip*/Output/release/bin 
+ exit 0 

würde Ich mag rpmbuild zu vermeiden, alle in meinem Build-Verzeichnis der Dateien zu löschen, wie ich sie für andere Dinge brauche nach Die RPM ist gebaut. Kann ich dieses Verhalten außer Kraft setzen?

Ich lese, dass einige Versionen von RPM eine --noclean Argument unterstützen, aber unsere leider nicht.

Antwort

9

Es stellte sich heraus, dass ich nur meine eigene %clean Direktive in der Spezifikationsdatei bereitstellen musste und sie leer lassen, um den Standard zu überschreiben. Aus irgendeinem Grund habe ich nicht erwartet, dass das funktioniert. ;)

A definiert die % Reinigen% konditionalisieren Phase, so dass die gleiche Wirkung wie --noclean erreicht werden kann.

%Clean 
%if "%{noclean}" == "" 
    rm -rf $RPM_BUILD_ROOT 
%endif 

mit rpmbuild --define 'noclean 1' Called Reinigung zu deaktivieren.

+0

Leider funktioniert dies nicht mit RPM Version 4.11.1: Wenn noclean nicht definiert ist, wird% {noclean} auf% {n o c l e an n} (ohne Leerzeichen) und nicht auf eine leere Zeichenfolge erweitert. – Bulletmagnet

2

Für Gebäude aus spec -datei, rpmbuild hat die -bi Option. Es verlässt die $RPM_BUILD_ROOT wie es ist; es tut keine %clean.

-bi  build through %install (%prep, %build, then install) from <specfile> 

(rpmbuild --help)


Für Gebäude aus SRPM (ein Quell-RPM-Paket; yumdownloader werden Sie diejenigen bekommen), gibt es auch --recompile Option:

--rebuild build binary package from <source package> 
--recompile build through %install (%prep, %build, then install) from <source package> 

Schließlich gibt es --noclean Option für rpmbuild - aber in meinem Fall (RPM version 4.11.3) es hat nicht funktioniert.

Verwandte Themen