我们为32位和64位平台构建我们产品的rpms。在rpm规范中,产品名称的定义类似于
Name: foo我们将--target i586传递给rpmbuild命令行来构建32位rpm,并将--target x86_64传递给rpmbuild来构建64位rpm。我们将rpm arch编码到产品的安装目录中,这样我们就可以同时安装32位和64位版本的产品。
我们可以很好地安装rpms。例如:安装foo产品的32位和64位变体,版本4.1:
rpm -i foo-4.1-i586.rpm
rpm -i foo-4.1-x86_64.rpm但当我们尝试升级到已安装产品的4.2版32位变体时:
rpm -U foo-4.2-i586.rpmrmp可删除已安装产品的32位和64位变体。这是不受欢迎的。所以问题是:我们应该如何调整规范文件或rpm命令行,以便我们只对选定的体系结构进行升级?显而易见的解决方案是在spec文件的包名中编码arch,如下所示:
Name: foo-%{_arch}但这看起来并不像是包名称的通用方法。请给我建议。
https://stackoverflow.com/questions/47730343
复制相似问题