что делает следующий шаг rpm "%prep"?

что делает следующий шаг rpm "%prep"?

Предполагая,

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

Может ли кто-нибудь сказать мне, что делает следующая команда в %prepразделе файла спецификации RPM?

%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 командараспакует tarball Source1, однако не распакует tarball Source0 из-за -a 1указанной опции. -cОпция заставит его извлечь tarball в подкаталог, названный в соответствии с -n %{name}, который берется из части "Name:" файла спецификации.

%setup -q Эта команда переходит в каталог сборки, обычно /usr/src/redhat/BUILD, а затем извлекает исходные файлы. Этот макрос ожидает, что по крайней мере один из исходных файлов создаст необходимый подкаталог в /usr/src/redhat/BUILD. Этот подкаталог должен быть назван с использованием имени пакета и версии, например, telnet-1.0.1. Если вы не используете сжатый архив tar, который автоматически создаст нужный подкаталог, добавьте параметр –c к макросу %setup. Параметр –c создает подкаталог для извлечения исходных файлов.

Директива %setup может автоматически извлекать сжатые файлы tar, zip, gzip, bzip2, pack, compress и lzh. Однако наиболее широко используется формат tar-gzip.

Связанный контент