Назад | Перейти на главную страницу

rpmbuild для Cent OS 6: «cpio: bad magic»

Когда я пытаюсь запустить эту команду:

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.