0

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

在 64 位系统上,所有文件都在安装规范文件的 %files 部分中提到的任何内容。(32 位和 64 位文件)。在 32 位系统上,所有文件都被安装,无论在 spec 文件的 %files 部分中提到的,但 64 位文件在安装后被删除(我写了一个删除代码)。

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

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

4

1 回答 1

0

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

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

于 2013-02-05T10:28:26.297 回答