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



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

在64位系统上,所有文件都将被安装,无论规范文件的%files部分中提到什么。(32位和64位文件)。同样在32位系统上,所有文件都会被安装,无论规范文件的%files部分提到了什么,但64位文件在安装后会被删除(我写了一个删除代码)。

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

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

不,没有简单的方法。RPM被设计为将32位和64位机器视为独立的架构,这是有充分理由的你应该建立两个RPM

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

最新更新