我将软件打包为 RPM,并按体系结构(32 位或 64 位)将其分发到不同的包中。
我的 32 位软件包中的某些库具有无法在 64 位系统中执行的二进制文件(除非安装了一些其他库)。
我已经使用file
命令来检测口译员执行这些二进制文件所需的,然后添加所需的库作为包的依赖项。这只能解决部分问题,因为其他所需的库可能会与最终用户主机上安装的 64 位版本发生冲突。
所以为了简单起见,我想知道是否有一种方法可以配置rpmbuild
禁止在64位系统中安装32位软件包(就像32位系统不允许安装64位软件包一样)。
有任何rpmbuild
选择或.spec可用的价值?
答案1
您不需要为此采取某种解决方法。默认情况下,您的 rpm 是针对您正在构建的架构而构建的。在 64 位系统上构建时,构建的 rpm 将被命名为 package-version-release。x86_64.rpm;因此只能安装在 64 位系统上。
rpmbuild 还会自动确定大部分依赖项(除非您在规范文件中使用 Autoreqprov=no )。所以在打包32位应用程序时; rpmbuild 通常应该创建正确的要求(如 libc 32 位等...)。
当构建 32 位应用程序并将其打包到 64 位计算机上时,您可能想要做的唯一一件事就是强制生成的包为i586架构,您可以在规范文件中使用
BuildArch: i586