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

关于RPROVIDES、RPROVIDES:${PN}及RPROVIDES:${PN}-xxx的含义与关系问询

RPROVIDES 相关概念解析

基础的 RPROVIDES 作用

在OpenEmbedded/Yocto构建体系中,RPROVIDES是核心变量之一,用于为软件包(或其子包)定义别名。当其他软件包依赖这个别名时,系统会认为提供该别名的包已满足依赖要求。

RPROVIDES、RPROVIDES:${PN} 与 RPROVIDES:${PN}-xxx 的关系

  • RPROVIDES:直接使用不带后缀的RPROVIDES时,默认是给当前包的主包(即与包名同名的核心包)添加别名。不过更规范的写法是用RPROVIDES:${PN}明确指定主包。
  • RPROVIDES:${PN}:${PN}是构建系统的内置变量,代表当前软件包的名称(Package Name)。这种写法明确为当前包的主包添加别名,作用和直接写RPROVIDES一致,但语义更清晰。比如当前包名为glibc,RPROVIDES:${PN} = "libc"就表示glibc主包可以作为libc的替代包。
  • RPROVIDES:${PN}-xxx:这里的xxx是子包后缀(常见的有-dev、-doc、-static等),OpenEmbedded/Yocto会自动根据包的内容拆分出这些子包(比如-dev存放开发头文件和链接库,-doc存放文档)。这种写法为对应后缀的子包添加别名,精准控制子包的别名映射。

代码 RPROVIDES:${PN}-doc = "eglibc-doc" 的含义

假设当前包的名称(${PN})是glibc,那么${PN}-doc对应的就是glibc-doc这个文档子包。这行代码的作用是:让当前包的文档子包(glibc-doc)提供eglibc-doc这个别名。

简单来说,任何依赖eglibc-doc的软件包,在安装了当前包的-doc子包后,依赖关系会被系统判定为已满足,无需额外安装真正的eglibc-doc包。

内容的提问来源于stack exchange,提问作者Jaehyun Lee

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 06:27:38