错误:解压缩存档失败:cpio:安装rpm

时间:2017-10-26 08:17:32

标签: cmake redhat rpm

我使用

打包了rpm
  make package

命令,并将生成的rpm复制到另一台具有公司特定操作系统的计算机。现在,当我尝试使用

安装rpm时
  rpm --nodeps -i filename.rpm

我得到的错误与标题中的错误相同。

所以我跑了

  rpm -qa | grep rpm

在用于构建rpm包的机器上,得到了这个:

  rpm-4.8.0-37.el6.x86_64
  rpm-devel-4.8.0-37.el6.x86_64
  rpm-python-4.8.0-37.el6.x86_64
  rpm-libs-4.8.0-37.el6.x86_64
  rpm-build-4.8.0-37.el6.x86_64
  redhat-rpm-config-9.0.3-51.el6.noarch

经过一番调查后,我尝试删除了redhat-rpm-config软件包和bam,rpm安装在另一台机器上运行。现在,这是一个解决方案,但我不认为我可以为我们将在创建rpm时使用的每台机器卸载此软件包。在使用cmake创建rpm包时,有没有其他方法可以忽略这个redhat-rpm-config-9.0.3-51.el6.noarch?

3 个答案:

答案 0 :(得分:2)

您要安装的系统的RPM版本是什么?它的来源是否可在某处公开获取?

如果使用较新的RPM /发行版构建二进制RPM,则可能存在各种兼容性问题。通常,我们使用buildroot中的RPM和redhat-rpm-config版本(由mock创建)本身构建二进制RPM,它与目标RPM版本匹配,即使构建主机具有较新的RPM版本。

如果这不是您的选择,我会查看由redhat-rpm-config控制的特定RPM功能。立即向我伸出的是有效载荷压缩:

# Use XZ compression for binary payloads
%_binary_payload w2.xzdio

其他更改包括对较大文件的支持,但这似乎不是问题,因为卸载redhat-rpm-config包不会改变它。

答案 1 :(得分:0)

您很可能在不同的操作系统上使用rpmbuild进行二进制RPM,而不是目标操作系统。您应该使用“mock”来构建包。

dnf install mock
mock -r epel-6-x86_64 yourpackage.src.rpm

答案 2 :(得分:0)

要解决“错误:解压缩归档失败:cpio:恶魔”问题,请在机器上安装RPM软件包:

1 /列出安装在服务器机器上的rpm pkgs(生成rpm pkg的机器):    $ rpm -qa | grep rpm                  ...。                  ...。 2 /如果给定列表中存在pkg redhat-rpm-config-9.0.3-51.el6.noarch,请将其卸载:

$ rpm -e redhat-rpm-config-9.0.3-51.el6.noarch

3 /现在生成pkg并将其转移到您的开发机器上。 Pkg安装应该可以工作。

 Philippe.