2009-12-10 4 views
5

Я пытался построить оборотов пакет, который дает мне следующую ошибкумин ошибка сборки

  • /usr/lib/rpm/find-debuginfo.sh/USR/SRC/RedHat/BUILD/RPMS находка : неверный предикат '» ошибки: плохое состояние выхода из /var/tmp/rpm-tmp.86590 (% установки) , что может быть причиной .can любого помочь мне в этом ... Спасибо

ответ

6

Попробуйте определить переменную BuildRoot в вашем файле spec. Сценарий find-debuginfo несколько раз попадает в этот каталог и умрет без него.

Это, как правило выглядеть примерно так: BuildRoot: %{_tmpdir}/%{name}-%{version}-%{release}

Что касается второго вопроса, то я не могу сказать, не видя спецификации файла и источники прямо, и я ни в коем случае не эксперт RPM. Я порекомендую вам главу 13 Максимального RPM (имеются копии, доступные бесплатно онлайн), а также заметки из презентации Тома Каллауэя по адресу How to make good RPM packages. Я нашел примеры примеров здесь, чтобы быть очень полезными в прошлом.

+0

Отсутствует BuildRoot - это точный корень проблемы - определение его (как и должно было начинаться с) решает проблему. Благодаря! – Shirkrin

5

В вашей спецификации вы можете сделать это в верхней части:

%define debug_package %{nil} 

Это должно обойти эту проблему

1

Я просто ударил эту же проблему при попытке создать на сервере под RedHat 5.3. Вот что я нашел. Похоже, что ошибка вызвана пустой переменной RPM_BUILD_ROOT. Ниже одна обижая линия:

find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*.debug" -type f \ 
       \(-perm -0100 -or -perm -0010 -or -perm -0001 \) \ 
       -print | 

Если RPM_BUILD_ROOT не был определен, то первый аргумент, чтобы найти это пустая строка «», которая вызывает эту ошибку. Интересно, что если вы удаляете кавычки примерно с $RPM_BUILD_ROOT, тогда команда отлично работает, так как первым аргументом станет «!». Поскольку в спецификационном файле не требуется определять «BuildRoot:», это, безусловно, похоже на ошибку.