You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bitbake中deploy/rpm下四类软件包名称的决定因素是什么

Bitbake生成RPM包名称的规则解析

Bitbake生成的四类RPM包(普通包、调试包、开发包、源码包)名称,主要由配方内的核心变量、包类型规则,以及构建配置(比如cmake版本设置)共同决定,具体细节如下:

一、包名的核心组成结构

所有RPM包的名称都基于统一的变量模板:

${PN}-${PV}-${PR}.${ARCH}.rpm

其中关键变量的含义:

  • PN:包的基础名称,默认是配方文件的文件名(去掉.bb后缀),也可在配方中通过PN = "xxx"手动指定
  • PV:包的版本号,这就是你观察到的cmake设置会影响的部分——当配方inherit cmake后,Bitbake会自动读取CMakeLists.txt里的VERSION配置(比如PROJECT(MyApp VERSION 1.2.3)),将其同步到PV变量;若配方手动设置了PV,cmake的版本配置会覆盖该值(除非显式禁止)
  • PR:包的修订号,默认值为r0,构建变更时会自动递增,也可手动修改
  • ARCH:目标架构,由构建环境的TARGET_ARCH变量决定(如x86_64、armhf等)

二、四类包的具体名称规则

普通运行包

名称直接遵循核心模板:${PN}-${PV}-${PR}.${ARCH}.rpm,是提供程序运行时核心文件的主包,默认是配方生成的基础包(除非通过PACKAGES变量自定义包集合)。

调试包

名称格式为:${PN}-dbg-${PV}-${PR}.${ARCH}.rpm,Bitbake会自动生成该包的前提是:

  • 未设置INHIBIT_PACKAGE_DEBUG_SPLIT = "1"(默认允许拆分调试包)
  • 构建时启用了调试符号(如设置DEBUG_BUILD = "1")
    调试包包含编译生成的.debug符号文件,用于程序调试。

开发包

名称格式为:${PN}-dev-${PV}-${PR}.${ARCH}.rpm,生成条件包括:

  • 配方继承了devshell、pkgconfig等开发相关类
  • 配方中通过PACKAGES显式声明了${PN}-dev
    该包包含头文件、.pc配置文件、静态库等开发所需资源。

源码包(SRPM)

名称格式为:${PN}-${PV}-${PR}.src.rpm,由do_package_write_rpm任务生成,包含配方对应的源码、补丁、构建配置等完整源码构建资源。

三、自定义包名的方式

若需修改默认包名,可通过PACKAGES和PKG_*_NAME变量实现,示例:

# 添加自定义包
PACKAGES += "${PN}-utils"
# 指定自定义包的名称
PKG_${PN}-utils_NAME = "my-app-utils"

最终生成的自定义包名称会变为:my-app-utils-${PV}-${PR}.${ARCH}.rpm

内容的提问来源于stack exchange,提问作者Patrick M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 02:45:25