Я пытаюсь создать двоичный файл 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 не сработать, если она уже установлена или у файла спецификаций отсутствует код плохого выхода? Если требуется полный журнал или больше файла спецификации, пожалуйста, дайте мне знать.
Etan, Спасибо. Первые два предложения не сработали (хотя я переключился на yum install вместо rpm), но последний работал. Я чувствую, что это обходной путь? Мне все еще кажется странным, что уже установленный пакет вызывает сбой. Кроме того, что касается создания с правами root, это будет RPM, который предназначен для развертывания в виртуальных машинах, которые должны быть на новой установке, поэтому, когда я прислушиваюсь к предупреждениям, я меньше беспокоюсь о том, чтобы что-то испортить! –
@MarkS Проблема с корневым зданием не связана с развертыванием. Это проблема построения. Вы доверяете файлу spec и строите процесс, чтобы не делать то, что не должно быть в вашей системе сборки. Такие вещи, как попытка установить пакеты и т. Д. На самом деле. =) 'yum install $ pkg.rpm', кажется, возвращает 0, когда говорит, что мне нечего делать в CentOS 5, но' rpm -U', похоже, терпит неудачу (что я согласен немного странно). Вы можете попробовать '--replacepkgs'' rpm', но это больше, чем вам нужно в этом случае. Вы также можете протестировать пакет, прежде чем пытаться его установить. –