【问题标题】:%arm in RPM spec fileRPM 规范文件中的 %arm
【发布时间】:2018-04-16 23:22:57
【问题描述】:

我正在从源代码压缩包、补丁和 .spec 文件构建 RPM。我这样做是为了添加特定于平台的补丁。

我已阅读给定的 .spec 文件,并注意到其中有如下行:

%ifarch %{arm}

当我看到类似这样的行时,有时我会看到一个定义,例如,如下:

%global shared 0

后来,%shared 被用作 0。但是,我找不到 %arm 的定义。我猜它可能是预定义的,或者在其他地方定义(系统范围?)。

.spec 文件中的 %arm 变量是什么意思?如果是预定义的,定义在哪里?

【问题讨论】:

    标签: rpmbuild rpm-spec


    【解决方案1】:

    如果您查看/usr/lib/rpm/macrosarm 被定义为可能的 ARM 架构列表。所以那个宏是说“如果目标架构与其中的任何匹配,请执行此操作......”

    【讨论】:

      【解决方案2】:

      %{arm} 只是一个 RPM 宏,与所有其他 RPM 宏一样。

      它扩展为某种实际值,要找到该值,运行命令

      rpm --eval %{arm}
      

      在我的系统上扩展为

      armv3l armv4b armv4l armv4tl armv5tl armv5tel armv5tejl armv6l armv6hl armv7l armv7hl armv7hnl
      

      这似乎是我的开发环境支持的所有受支持的 arm 架构。

      【讨论】:

        猜你喜欢
        • 2013-08-09
        • 1970-01-01
        • 1970-01-01
        • 2011-07-19
        • 2018-06-16
        • 2011-08-02
        • 1970-01-01
        • 2014-06-24
        • 2012-10-26
        相关资源
        最近更新 更多