![Cent OS 6 上的 rpmbuild:“cpio:坏魔法”](https://linux22.com/image/581117/Cent%20OS%206%20%E4%B8%8A%E7%9A%84%20rpmbuild%EF%BC%9A%E2%80%9Ccpio%EF%BC%9A%E5%9D%8F%E9%AD%94%E6%B3%95%E2%80%9D.png)
当我尝试运行此命令时:
rpmbuild -bb SPECS/software.spec
当 WAR 文件(如 tomcat java web 存档文件)被添加到 rpm 时出现错误:
error: create archive failed on file /<filepath>/<filename>.war: cpio: Bad magic
以前不会发生这种情况。自从这个方法奏效以来,唯一改变的事情就是升级。此外,在我的 CentOS 5 机器上没有发生类似的问题。我在两台机器上编译和构建了完全相同的代码集,但 CentOS 6 不会创建 rpm。
我该如何解决这个问题?我已经在 Google 上搜索过了,得到的有用链接很少(如果有的话)。据我所知,RPM 用户指南中没有提到这一点,而且 Maximum RPM 也没有关于此的部分。
答案1
尝试检查您的 rpmbuild 根目录。就我而言,磁盘已满,rpm build 没有空间来创建 rpm。它失败并出现 cpio bad magic 错误,这是一个误导性错误。
注意:我尝试了 yum 升级/更新,但没有帮助。
答案2
经过所有搜索,我认定这是 CentOS 6 的 rpmbuild 版本的一个 bug。正如我所料,快速的“yum update”解决了这个问题 :) 希望这对你有所帮助。
答案3
您可以尝试使用 -vv 运行 rpmbuild,以便查看它到底在哪里阻塞?可能由于某种原因,相关文件未在工作目录中找到,或者已损坏。Magic number 指的是 unix 文件的起始字节。有关详细信息,请参阅 Man magic。
答案4
就我而言,这是由于存储空间不足留在我的机器上。我已经清理了 RPM 所需的足够空间,然后一切都正常工作。