was macht der folgende RPM-Schritt „%prep“?

was macht der folgende RPM-Schritt „%prep“?

Angenommen

Source0:        %{gnu_download_url}/coreutils/coreutils-%{version}.tar.gz
Source1:        mk7distro.tar.bz2
Patch0:         hostutils.patch.bz2

%prepKann mir jemand sagen, was der folgende Befehl im Abschnitt der RPM-Spezifikationsdatei macht ?

%setup -q -n %{name} -c -a 1

Antwort1

Es ist einMakro, das die Quellen entpackt:

the %setup macro is used to unpack the original sources, in preparation for the
build. In its simplest form, the macro is used with no options and gets the name
of the source archive from the source tag specified earlier in the spec file.

Antwort2

Um die Frage genauer zu beantworten und einen aktualisierten Link bereitzustellen: Ja, die%setup-Befehldekomprimiert das Source1-Tarball, jedoch nicht das Source0-Tarball aufgrund der -a 1angegebenen Option. Die -cOption bewirkt, dass das Tarball in ein Unterverzeichnis extrahiert wird, das nach benannt ist -n %{name}, was aus dem Teil „Name:“ der Spezifikationsdatei stammt.

%setup -q Dieser Befehl wechselt in das Build-Verzeichnis, normalerweise /usr/src/redhat/BUILD, und extrahiert dann die Quelldateien. Dieses Makro erwartet, dass mindestens eine der Quelldateien das erforderliche Unterverzeichnis unter /usr/src/redhat/BUILD erstellt. Dieses Unterverzeichnis sollte mit dem Paketnamen und der Version benannt werden, z. B. telnet-1.0.1. Wenn Sie kein komprimiertes Tar-Archiv verwenden, das automatisch das richtige Unterverzeichnis erstellt, fügen Sie dem %setup-Makro die Option –c hinzu. Die Option –c erstellt das Unterverzeichnis zum Extrahieren der Quellen.

Die %setup-Direktive kann komprimierte Dateien im Tar-, Zip-, Gzip-, Bzip2-, Pack-, Compress- und Lzh-Format automatisch extrahieren. Das Tar-Gzip-Format wird jedoch am häufigsten verwendet.

verwandte Informationen