使用rpmbuild构建32位和64位的组合包

时间:2013-02-05 09:04:52

标签: linux rpm

我有一个32位和64位Linux平台的组合包。

在64位系统上,所有文件都安装了spec文件的%files部分中提到的任何内容。(32位和64位文件)。 在32位系统上,所有文件都安装了spec文件的%files部分中提到的任何文件,但是在postinstall期间删除了64位文件(我写了一个代码用于删除)。

问题是,在32位计算机上,程序包管理器在查询时显示所有文件以显示程序包安装的文件。因此,在32位计算机上显示64位文件。(例如rpm -ql)

有没有什么好方法可以在32位机器上删除64位文件?

1 个答案:

答案 0 :(得分:0)

不,没有简单的方法可以做到这一点。 RPM被设计为将32位和64位计算机视为单独的体系结构,并且有充分的理由。 您应该构建两个RPM。

通过自行删除刚刚安装在%post部分中的文件,您将在RPM数据库中创建错误。如您所述,rpm -ql将文件列为存在(根据数据库,应该存在)。再举一个例子,现在你的RPM的任何rpm -V验证都将被破坏 - 系统会认为你故意删除的文件丢失了。 rpm -Va(验证所有软件包)是许多人在尝试操作系统升级之前所做的事情,用户会认为他们需要重新安装RPM。