次の rpm "%prep" ステップは何を行いますか?

次の rpm "%prep" ステップは何を行いますか?

仮定すると

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

%prepRPM 仕様ファイルのセクションで次のコマンドが何を実行するのか教えてもらえますか?

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

答え1

それはソースを解凍するマクロ:

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.

答え2

質問にもっと正確に答え、最新のリンクを提供するには、はい、%setupコマンドは Source1 tarball を解凍しますが、指定されたオプションのため Source0 tarball は解凍しません-a 1。この-cオプションにより、仕様ファイルの「Name:」部分から取得される に従って名前が付けられたサブディレクトリに tarball が抽出されます-n %{name}

%setup -q このコマンドは、ビルド ディレクトリ (通常は /usr/src/redhat/BUILD) に変更し、ソース ファイルを抽出します。このマクロでは、少なくとも 1 つのソース ファイルが /usr/src/redhat/BUILD の下に必要なサブディレクトリを作成することを想定しています。このサブディレクトリの名前は、telnet-1.0.1 のように、パッケージ名とバージョンで付ける必要があります。適切なサブディレクトリを自動的に作成する圧縮された tar アーカイブを使用していない場合は、%setup マクロに –c オプションを追加します。–c オプションは、ソースを抽出するためのサブディレクトリを作成します。

%setup ディレクティブは、tar、zip、gzip、bzip2、pack、compress、および lzh で圧縮されたファイルを自動的に抽出できます。ただし、tar-gzip 形式が最も広く使用されています。

関連情報