2014-10-29 3 views
0

Я пытаюсь создать двоичный файл RPM на Cent OS 6.5, но я запутался в ошибках на этапе подготовки. Мой файл спецификации имеет следующие команды в разделе приготовительный:Ошибка зависимостей сборки RPM

%prep 
%setup -q 
wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm 
rpm -ivh epel-release-6-8.noarch.rpm 
yum -y install python-pip 
pip install ws4py request 

Но когда я бегу:

rpmbuild -v -bb --clean SPECS/ttsdk.spec 

Я получаю следующий вывод:

Preparing...    ########################################### [100%] 
    package epel-release-6-8.noarch is already installed 
error: Bad exit status from /var/tmp/rpm-tmp.Kkbk09 (%prep) 


RPM build errors: 
    Bad exit status from /var/tmp/rpm-tmp.Kkbk09 (%prep 

Похоже, что это не удается потому что пакет уже установлен, и это было бы не так, как я ожидал. Я что-то замечаю? Возможно, способ заставить команду rpm не сработать, если она уже установлена ​​или у файла спецификаций отсутствует код плохого выхода? Если требуется полный журнал или больше файла спецификации, пожалуйста, дайте мне знать.

ответ

1

Попробуйте использовать -U вместо -i?

Попробуйте использовать yum install ... вместо rpm?

Если все остальное не удается добавить || : в конец этой строки, чтобы он всегда возвращал true.

Что все сказано, что для файла spec, который нужно делать во время , мне кажется (и требуется здание как root, которое обычно обескуражено).

+0

Etan, Спасибо. Первые два предложения не сработали (хотя я переключился на yum install вместо rpm), но последний работал. Я чувствую, что это обходной путь? Мне все еще кажется странным, что уже установленный пакет вызывает сбой. Кроме того, что касается создания с правами root, это будет RPM, который предназначен для развертывания в виртуальных машинах, которые должны быть на новой установке, поэтому, когда я прислушиваюсь к предупреждениям, я меньше беспокоюсь о том, чтобы что-то испортить! –

+0

@MarkS Проблема с корневым зданием не связана с развертыванием. Это проблема построения. Вы доверяете файлу spec и строите процесс, чтобы не делать то, что не должно быть в вашей системе сборки. Такие вещи, как попытка установить пакеты и т. Д. На самом деле. =) 'yum install $ pkg.rpm', кажется, возвращает 0, когда говорит, что мне нечего делать в CentOS 5, но' rpm -U', похоже, терпит неудачу (что я согласен немного странно). Вы можете попробовать '--replacepkgs'' rpm', но это больше, чем вам нужно в этом случае. Вы также можете протестировать пакет, прежде чем пытаться его установить. –

Смежные вопросы