Это совпадает с
${MYVAR:+OTHERVAR}
с OTHERVAR
быть равным -x
. Другими словами, если MYVAR
сброшен или пустой указатель, пустой указатель замены; иначе, замена -x
.
Ссылки
С rpmbuild
у вас есть 2 варианта.
Вы можете указать rpmbuild
не удалять эти файлы с помощью этого переключателя, когда вы - rebuild
создаете пакет.
$ rpmbuild --rebuild --noclean ....
ПРИМЕЧАНИЕ: Это доступно в большинстве версий, к которым у меня есть доступ.
$ rpmbuild --help |& grep clean
--clean remove build tree when done
--noclean do not execute %clean stage of the build
Fedora 20
$ rpmbuild --version
RPM version 4.11.2
CentOS 5.x
$ rpmbuild --version
RPM version 4.4.2.3
Если вы используете rpmbuild --rebuild
для сборки пакета с использованием вашего собственного файла .spec
. и он не поддерживает эту опцию, вы можете добавить свою собственную процедуру в фазу % clean
этого .spec
файла.
%Clean
%if "%{noclean}" == ""
rm -rf $RPM_BUILD_ROOT
%endif
Сегодня я также столкнулся с этой проблемой в SLES 11SP4 (версия RPM 4.4.2.3): ни --noclean
, ни перезапись тега %clean
, предложенное решение не позволяет удалить скрипт /var/tmp/rpm-tmp.*
.
Однако я смог решить проблему, добавив лаконичный exit -1
в конце отлаживаемой фазы: rpmbuilder завершается с
error: Bad exit status from /var/tmp/rpm-tmp.00000 (%install)
а файл сохраняется для отладки.