Когда я пытаюсь запустить эту команду:
rpmbuild -bb SPECS/software.spec
Я получаю сообщение об ошибке, когда файл WAR (например, файл веб-архива java tomcat) добавляется в rpm:
error: create archive failed on file /<filepath>/<filename>.war: cpio: Bad magic
Раньше этого не происходило. Единственное, что изменилось с тех пор, как это сработало, - это обновление. Кроме того, на моем компьютере с CentOS 5 таких проблем не возникает. Я компилирую и создаю один и тот же кодовый набор на обеих машинах, но CentOS 6 не будет создавать rpm.
Как мне решить эту проблему? Я уже погуглил и получил несколько (если таковые имеются) полезных ссылок. Насколько я могу судить, этого нигде в руководстве пользователя RPM нет, а в разделе «Максимальные обороты» об этом нет.
Попробуйте проверить корневой каталог rpmbuild. В моем случае диск был заполнен, и при сборке rpm не было места для создания rpm. Это не удалось из-за ошибки cpio bad magic, которая вводит в заблуждение.
ПРИМЕЧАНИЕ. Я попробовал выполнить обновление / обновление yum, но это не помогло.
Во всех своих поисках я решил, что это ошибка в версии CentOS 6 rpmbuild. Как я и подозревал, быстрое «yum update» решило проблему :) Надеюсь, это поможет.
Можете ли вы попробовать запустить rpmbuild с параметром -vv, чтобы увидеть, где именно он подавился? Вероятно, рассматриваемый файл по какой-то причине не найден в рабочем каталоге или поврежден иным образом. Магическое число относится к начальным байтам файла unix. Магия человека для подробностей.
У меня была эта проблема из-за полного / var / tmp, очистив немного места, исправил.
В моем случае, это связано с недостаточным объемом памяти оставил в моей машине. Я освободил достаточно места для RPM, и все заработало.
Я использую CpackRPM в cmake. При обновлении rpmbuild
до последней версии не помогло в моем случае, я понимаю эту ошибку из-за некоторых файлов в моих пакетах они должен работать с привилегиями root.
Итак, я выполняю cpack или создаю пакет с sudo или пользователем root.
В этом случае вам следует позаботиться о своем _tobdir
и _buildroot
переменные, на которые не влияют некоторые конфигурации в rpmbuild.