我使用
打包了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?
答案 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.