
Angenommen
Source0: %{gnu_download_url}/coreutils/coreutils-%{version}.tar.gz
Source1: mk7distro.tar.bz2
Patch0: hostutils.patch.bz2
%prep
Kann 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 1
angegebenen Option. Die -c
Option 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.