news 2026/6/10 2:56:49

【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/6/10 9:52:15

Spring Boot 3 + Netty 构建高并发即时通讯服务

Channel 在 Netty 中代表一个网络连接,它的生命周期包括以下几个主要状态:注册(Registered):Channel 被注册到 EventLoop 上激活(Active):Channel 连接建立并就绪非激活(Inactive):Channel 连接断开注销(Unregistered)…

作者头像 李华
网站建设 2026/6/9 18:32:22

传统仓储模式正在被淘汰,AI Agent如何重构空间利用新格局?

第一章:传统仓储模式的困境与变革契机在数字化浪潮席卷各行各业的今天,传统仓储管理模式正面临前所未有的挑战。依赖人工记录、纸质单据和静态库存管理的方式,已难以应对现代供应链对效率、准确性和实时响应的严苛要求。信息孤岛严重制约运营…

作者头像 李华
网站建设 2026/6/10 9:45:01

同轴电缆工程量计量

同轴电缆工程量计量 同轴电缆作为传统有线电视系统的主要传输介质,其结构包含内导体、绝缘层、外导体(屏蔽层)以及保护套,具备出色的抗干扰性能。可以借助CAD快速看图【批量测量】同轴电缆总长,文字查找定位管线与设计…

作者头像 李华
网站建设 2026/6/10 9:53:07

基于Matlab的扩展卡尔曼滤波(EKF)实践

基于matlab的扩展卡尔曼滤波(Extended Kalman Filter,EKF),通过卡尔曼滤波算法近似计算系统的状态估计值和方差估计值,对信号进行滤波。 程序已调通,可直接运行。程序保证可直接运行。在信号处理的领域中,扩…

作者头像 李华
网站建设 2026/6/10 9:54:56

线程安全的日期格式化:避免 SimpleDateFormat 并发问题

线程安全的日期格式化:避免 SimpleDateFormat 并发问题 一、问题产生的原因 1. 核心原因:SimpleDateFormat 内部存在可变状态 SimpleDateFormat 不是线程安全的,根本原因是它内部维护了可变的成员变量: 它包含一个 Calendar 对象作…

作者头像 李华
网站建设 2026/6/10 10:39:23

“凯云杯”,十岁啦! | 第10届全国大学生软件测试大赛在南京胜利闭幕!

12月6日至7日,第十届全国大学生软件测试大赛总决赛在南京大学、金陵科技学院隆重举行。本次大赛由全国大学生软件测试大赛组委会、中国计算机学会软件工程专业委员会、系统软件专业委员会、容错计算专业委员会联合主办,南京大学承办,凯云等单…

作者头像 李华