
Предполагая,
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.