Erstellen Sie RPM mit dem Quellverzeichnis, nicht mit Tarball


12

In meiner Organisation stellen wir unsere gesamte Software mithilfe von RPM auf unseren Produktionsmaschinen bereit. Unser (automatisierter) Erstellungsprozess umfasst das Auschecken der Quelle aus der Versionskontrolle, das Teern des Quellverzeichnisses und das Ausführen von rpmbuild mit diesem Quell-Tarball. rpmbuild verwendet diesen Tarball nur, um die Quellen zu entpacken, um daran zu arbeiten. Es scheint also, dass das gesamte Taring- und Untaring-Geschäft nur ein unnötiger zusätzlicher Schritt im Build-Prozess ist. Gibt es eine Möglichkeit, nur das Quellverzeichnis in der Spezifikationsdatei anzugeben und diese zusätzlichen Schritte zu vermeiden?

Antworten:


5

Ja, das kannst du machen. Listen Sie keine Sources auf. %prepVerwenden Sie in diesem Abschnitt nicht das %setupMakro (das die Quelle entlarvt). Schauen Sie sich einfach die Quelle an.

Beachten Sie, dass Sie in diesem Fall keine SRPMs erstellen können.


Das macht es. Ich muss nur die Erstellungsprozedur ändern, um stattdessen Dinge im Verzeichnis rpm BUILD auszuchecken. Vielen Dank!
Eddie

9

Diese Frage ist etwas alt, aber falls andere Leute sie bei der Suche finden, gibt es einen korrekteren Weg, der auch die Erstellung eines SRPM ermöglicht.

Anstatt das Setup- Makro zu verwenden, sollten Sie im Vorbereitungsabschnitt einfach selbst eingeben, was Sie tun möchten, nämlich das Quellverzeichnis von SOURCES nach BUILD zu kopieren, anstatt ein Archiv zu entpacken. Ich habe festgestellt, dass Sie dann auch eine CD in Ihr Quellverzeichnis in den Abschnitten Erstellen und Installieren einfügen müssen.

Beispiel-Snippet

%prep
# Don't use the setup macro anymore, replace it with typed-out commands
#%setup -q -n myapp-%{version}
cd %{_topdir}/BUILD
rm -rf myapp-%{version}
cp -rf %{_topdir}/SOURCES/myapp-%{version} .
cd myapp-%{version}
/usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .

%patch1 -p1 -b .cert-config
%patch2

%build
cd myapp-%{version}

%install
cd myapp-%{version}

Sollte %{_topdir}/SOURCESsein %{_sourcedir}? Und %{_topdir}/BUILDkönnte sein %{buildroot}? (Abgesehen davon %setupempfehlen die Fedora-Dokumente für ähnliche, aber unterschiedliche Situationen, in denen Sie versuchen, zusätzliche Dateien hinzuzufügen, um die extrahierten zu überschreiben , die Verwendung von %{SOURCE2}etc - fedoraproject.org/wiki/Packaging:RPM_Source_Dir )
IBBoard
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.