我有一个用于32位和64位Linux平台的组合包。使用rpmbuild构建32位和64位组合包
在64位系统上,无论在spec文件的%files部分提到了什么,都会安装所有文件(包括32位和64位文件)。 在32位系统上,无论是在spec文件的%files部分中提到的所有文件都得到安装,但在postinstall(我写了一个代码删除)期间删除了64位文件。
问题是,在32位计算机上,包管理器在查询时显示所有文件以显示软件包安装的文件。因此,在32位机器上显示64位文件(如rpm -ql)
有没有什么好方法可以删除32位机器上的64位文件?
有什么方法可以更新rpm数据包关于已删除的软件包的文件,以便我只能在使用rpm -ql进行查询时获取可用文件。 – gopu
你能解释一下spec文件中“%ifarch”宏的价值吗?要构建一个包,我们必须将“--target”(比如i386)传递给rpmbuild cas参数。如果是这样,%ifarch的值将变成i386。否则%ifarch是我们构建软件包的机器的体系结构还是我们正在安装软件包的机器的体系结构? –
gopu
如果您正在构建具有buildarch ='noarch'的RPM,那么该怎么办?对于像Perl这样的解释型语言的RPM来说呢?你还需要建立一个32位和64位版本吗?那么'noarch'是可以避免的吗? – padub