news 2026/4/23 8:33:34

【Yocto】将编写软件已闭源的方式发布

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Yocto】将编写软件已闭源的方式发布

文章目录

  • 需求
  • 思路
  • 实现
    • Yocto_dev上的操作
    • Yocto_rel上的操作

需求

软件开发有两个工程:

  1. 用于开发的工程:Yocto_dev
  2. 用于发布给客户的工程:Yocto_rel

将Yocto_dev中的模块Foo,已闭源的方式发布到Yocto_rel中。

思路

  1. 在Yocto_dev上构建Foo,生成Foo的rpm包
  2. 在Yocto_dev上建立名为Foo_rel的layer,在Foo_rel中将Foo的rpm包安装到镜像中。

实现

Yocto_dev上的操作

在Yocto_dev上构建Foo。构建后便可以得到${WORKDIR}/deploy-rpms/${TRANSLATED_TARGET_ARCH}/${PN}-${PV}-${PR}.${TRANSLATED_TARGET_ARCH}.rpm包.
也可以在Yocto_dev的Foo.bb中添加以下代码,用于将rpm文档拷贝到build/rpm目录下。

inherit deploy do_deploy[nostamp]="1"do_deploy(){install-d"${TOPDIR}/rpm"install-m0644"${WORKDIR}/deploy-rpms/${TRANSLATED_TARGET_ARCH}/${PN}-${PV}-${PR}.${TRANSLATED_TARGET_ARCH}.rpm""${TOPDIR}/rpm"}addtask deploy after do_package_write_rpm before do_build

Yocto_rel上的操作

创建一个名为Foo_rel的layer,结构如下

Foo_rel - files -- rpm --- Foo.rpm - Foo_rel.bb

Foo_rel.bb的作用是将files/rpm/Foo.rpm的安装到镜像。而Foo.rpm是从Yocto_dev的构建中拷贝出来的rpm包。

DESCRIPTION="Install files"LICENSE="CLOSED"SRC_URI="file://rpm"SRCREV_${PN}="${AUTOREV}"DEPENDS="rpm-native"S="${WORKDIR}/rpm"INHIBIT_PACKAGE_STRIP="1"INHIBIT_PACKAGE_DEBUG_SPLIT="1"INSANE_SKIP:${PN}+="already-stripped dev-deps file-rdeps"INSANE_SKIP:${PN}-dev+="dev-elf dev-deps file-rdeps"do__compile(){:}do_install(){rpm2cpio ${S}/Foo.rpm|cpio-idmv--no-absolute-filenames-D ${D}}FILES:${PN}="/"FILES_${PN}-dev="/"

如果有多个rpm需要安装可以将rpm都放到一起然后将do_install()变更为

do_install(){forrpm_filein${S}/*.rpm;do rpm2cpio ${rpm_file}|cpio-idmv--no-absolute-filenames-D ${D}done}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 5:05:27

探索ABB机器人视觉引导抓取:C#、Halcon与RobotStudio的梦幻联动

abb机器人视觉引导抓取C#联合halcon联合RobotStudio实现虚拟仿真九点标定海康工业相机C#上位机视觉抓取 -本链接只出源码工作站,不出任何硬件,工业相机请自备 -提供2个版本一个是有海康工业相机 和 无工业相机 1.有海康工业相机提供标定教程和咨询 2.没有…

作者头像 李华
网站建设 2026/4/23 8:32:16

基于SpringBoot + QLExpress打造动态规则引擎

一、为什么需要动态规则引擎? 在开始技术实现之前,我们先来理解为什么动态规则引擎如此重要。 1.1 传统业务规则的痛点 // 传统业务规则的痛点示例 public class TraditionalBusinessRules {public void痛点() {System.out.println("=== 传统业务规则的痛点 ==="…

作者头像 李华
网站建设 2026/4/15 15:30:35

【数据结构】栈——超详解!!!(包含栈的实现)

【数据结构】栈——超详解!!!(包含栈的实现)前言一、栈是什么?1. 后进先出(LIFO)2. 压栈&&出栈二、栈的实现1. 用什么来实现?2. 实现思路3.注意4. 代码实现&…

作者头像 李华
网站建设 2026/4/22 20:34:56

“渝”见硬核实力!凯云汽车测试解决方案亮相重庆行业盛会

11月13日,以“惟测励新,笃质致远”为主题的中国汽车检测测试与质量大会在重庆喜来登酒店隆重举行。来自国内各大汽车主机厂、检测认证机构、设备仪器企业及系统集成商的行业精英齐聚一堂,共同探讨汽车检测测试领域的新思维、新技术与新产品&a…

作者头像 李华
网站建设 2026/4/23 8:31:17

精准测试,决胜未来:控制系统测试验证解决方案

在信息化战争的战场上,“指哪打哪” 的精确打击能力,离不开控制系统的稳定运行。而一套控制系统从设计图纸落地为实战装备,中间藏着一个关键环节 —— 测试验证。凯云推出了一套完整的控制系统测试验证环境解决方案,致力于为各类装…

作者头像 李华
网站建设 2026/4/18 12:28:22

实力加冕!凯云入选国家第七批专精特新 “小巨人” 企业名单

近日,北京市经济和信息化局正式发布《关于北京市第七批专精特新 “小巨人” 企业和 2025 年专精特新 “小巨人” 复核通过企业名单进行公示的通知》。凭借国内先进、自主可控的平台产品,以及行业领先的数字化服务能力,凯云联创(北…

作者头像 李华