rpm - 如何从一个.spec生成特定于平台和独立于平台的RPM子包?

标签 rpm rpmbuild

我有以下结构的dunno.spec文件:

Name:                   dunno
Version:                 1.0
...
BuildArch:              x86_64

%description
...
%package common
Summary:                Shared files
BuildArch:              noarch

我想在运行rpmbuild -ba dunno.spec之后,我应该得到两个二进制包:
  • dunno-1.0.x86_64.rpm
  • dunno-common-1.0.noarch.rpm

  • 但是我得到:
  • dunno-1.0.x86_64.rpm
  • dunno-common-1.0.x86_64.rpm

  • 如果我从规范中删除BuildArch: x86_64行,那么我得到
  • dunno-1.0.noarch.rpm
  • dunno-common-1.0.noarch.rpm

  • 如何解决?

    RPM v4.4.2.3。

    最佳答案

    将构建分为2个软件包,一个x86_64,另一个noarch。

    您可以使用%ifarch逻辑从一个规范中进行2个构建(但
    即使烦人,通常也更容易使用2个spec文件)。

    在平台中包含独立于平台的内容也没有什么害处
    x86_64子软件包而不是noarch子软件包。

    关于rpm - 如何从一个.spec生成特定于平台和独立于平台的RPM子包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27862771/

    相关文章:

    ruby - 找出 gem 的二进制依赖项

    linux-kernel - CentOS 6.3 的内核模块签名

    linux - rpmbuild 失败错误 : Installed (but unpackaged) file(s) found:

    python - RPM 的 %files 部分需要什么

    centos - RPM 应用程序详细信息页面

    RPM Spec 文件已安装,但在 %doc 指令中未打包文件

    linux - 为 RPM 创建规范文件

    linux - 我可以从我自己的 rpm 包中安装不同的包吗?

    linux - 如何强制RPM在单个目录中安装文件,可能吗?

    docker - 在 Fedora 上构建 Docker RPM