探索开明软件包:应用开发指南轻松掌握,快速上手!
开明软件包格式,是openKylin社区Kaiming SIG为应对传统包格式存在的系统与应用无明确界限、发行版碎片化、兼容性等问题而开发的一款全新软件包格式,满足ISV(Independent Software Vendors)应用发布和应用独立发布需求,并支持沙箱隔离,允许共享部分基础库,为主要Linux桌面提供原生集成。
一、开明软件包框架结构
开明软件包主要包括部署文件(deploy)、应用数据(files)、元数据文件(matedata),导出文件(exports)四部分:
-
部署文件:存放开明包安装来源、安装大小、版本、安装时间等信息
-
应用数据:应用本身二进制、动态库、配置文件等
-
元数据文件:包含运行时依赖、扩展依赖、权限信息、二进制命令、环境变量等内容
-
导出文件:针对应用,主要包含desktop、icon、dbus.service等对外暴露的文件
开明软件包运行过程,首先解析元数据文件,获取到应用运行所需的上下文内容,然后通过mount namespace和bind mount构建应用运行的rootfs,通过xdg-dbus-proxy进行dbus转发,最后chroot进入rootfs环境执行二进制命令启动应用。接下来请跟随文章教程完成您的第一个开明包构建和安装运行。
二、开明命令介绍
以下是部分开明软件包使用命令介绍,更多命令详情可参考文末链接:开明命令使用手册。
-
kaiming install :安装开明应用
-
kaiming export :离线导出开明应用
-
kaiming list:列出所有已安装的应用
-
kaiming run:运行一个已安装的开明应用
-
kaiming enter :进入运行沙箱内部环境
-
kaiming uninstall:卸载开明应用
-
......
三、编译程序
1.安装开明命令包和开明编译包
$ sudo apt install kaiming kaiming-builder
其中,kaiming ( >= 0.15.9 ) 是包管理器客户端,提供了相关开明命令,用于管理开明包格式应用的安装、卸载、运行、更新、信息查看等操作。kaiming-builder提供了开明包对应的编译命令,可以将您的源码编译成开明软件包格式。
2.安装runtime和配套的SDK
开明包要求每个应用程序指定一个依赖的runtime。runtime由SDK和Platform组成,SDK在应用编译和调试时使用,Platform在应用执行时使用。在编译应用程序时,需要先将runtime下载到本地:
$ sudo kaiming install top.openkylin.Sdk top.openkylin.Platform # 默认编译所需最小的runtime
3.创建应用程序
进入您的项目根目录,这里我们采用一个简单的脚本案例来说明。
#!/bin/sh
echo "Hello world, start your first kaiming app!"
现在将其粘贴到一个空文件中并将其另存为hello.sh。
4.配置源码所需清单
这里以top.openkylin.Hello.yaml清单文件为例,文件内容:
id: top.openkylin.Hello # 应用程序名branch: stable # 应用分支runtime: top.openkylin.Platform # 所需runtime
runtime-version: '2.0' # runtime版本
sdk: top.openkylin.Sdk # 配套的SDK
command: hello.sh # runtime执行的命令
modules: # 编译模块
- name: hello # 模块名称
buildsystem: simple # 使用的构建系统。如autotools、cmake、meson、simple、qmake等
build-commands: # 在构建期间运行的一组命令
- install -D hello.sh /app/bin/hello.sh # 执行 install 命令将hello.sh 安装到可执行目录
sources: # 包含一个指向源码指针,它们可以有多种类型,通过type属性来区分。
- type: file # 本地源码类型
path: hello.sh # 和type格式对齐,表示将复制到源目录的本地文件的路径
举例程序较为简单,在更复杂的应用程序中,清单将列出多个模块。由于yaml清单涉及内容较多,关于yaml清单的详细描述请参考官方文档说明(链接附在文末)。
5.构建应用程序
使用命令kaiming-builder来进行软件包编译:
kaiming-builder build top.openkylin.Hello.yaml
如果您想共享该应用程序,可以将其放入存储库中。通过将--repo参数传递给来kaiming-builder来完成:
$ rm -rf build/ repo/ .kaiming-builder/ #第二次编译时需要,删除当前的编译目录、缓存和存储库repo
$ kaiming-builder build --repo=repo top.openkylin.Hello.yaml
此命令将构建清单中列出的每个模块并将其安装到本地存储库repo中。其中,生成的build目录是构建后的程序结构。如下图:
我们可以看到,hello.sh是在 files/bin/hello.sh下,这种情况就是正确编译结果,之后会通过kaiming install安装到系统的指定位置/opt/kaiming中。到这里,恭喜您已完成一个应用程序制作!
四、测试运行
1.安装应用程序
现在我们准备添加刚刚创建的存储库并安装应用程序。通过kaiming install命令完成,要验证构建后的包是否可以成功安装,请运行以下命令:
$ sudo kaiming install --repo=repo top.openkylin.Hello # top.openkylin.Hello 为 top.openkylin.Hello.yaml 清单文件中的应用程序名
2.运行应用程序
接下来,通过以下命令来尝试运行该应用程序:
$ kaiming run top.openkylin.Hello
运行成功,终端输出:
Hello world, start your first kaiming app!
以上是编译开明软件包格式的简单流程,各位小伙伴你学会了吗?更多内容,敬请期待。
-
开明命令使用手册:
https://gitee.com/openkylin/community/blob/master/sig/KaiMing/%E5%BC%80%E6%98%8E%E7%94%A8%E6%88%B7%E6%93%8D%E4%BD%9C%E6%89%8B%E5%86%8C/%E5%BC%80%E6%98%8E%E5%91%BD%E4%BB%A4%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C/README.md#/openkylin/community/blob/master/sig/KaiMing/%E5%BC%80%E6%98%8E%E7%94%A8%E6%88%B7%E6%93%8D%E4%BD%9C%E6%89%8B%E5%86%8C/%E5%BC%80%E6%98%8E%E5%91%BD%E4%BB%A4%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C/installation.md -
yaml清单说明:
https://gitee.com/openkylin/community/blob/master/sig/KaiMing/%E5%BC%80%E6%98%8E%E7%94%A8%E6%88%B7%E6%93%8D%E4%BD%9C%E6%89%8B%E5%86%8C/%E5%BC%80%E6%98%8E%E7%BC%96%E5%8C%85%E6%89%8B%E5%86%8C/manifest.md

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Redisson 3.34.0 发布,官方推荐的 Redis 客户端
Redisson 3.34.0现已发布,这是一个 Java 编写的 Redis 客户端,具备驻内存数据网格(In-Memory Data Grid)功能,并获得了 Redis 的官方推荐。 此版本更新内容如下: Feature 添加了 RJsonBuckets 对象 为RMapCacheNative对象添加remainTimeToLive(Set keys)和clearExpire(Set keys)方法 为RScript对象添加了eval()和evalSha()方法,以便在 Redis 集群的所有节点上执行 Improvement 针对 Apache Tomcat 会话管理的性能优化 在RedissonClient.shutdown()方法中将 quietPeriod 的默认值设为 0 将 protobuf 从 3.16.3 升级到 4.27.2 Fixed Apache Tomcat 会话管理器抛出的请求中的 CROSSSLOT Keys 未 hash 到同一个 slot(自 3.32.0 以来的回归) 集群拓扑扫描中不应跳过空分区 ClusterConnectionManager...
- 下一篇
三个 90 后小伙自学技术搭建黄色网站被刑拘
合肥警方微信公众号消息称,三个“90”后年轻小伙因嫌打工辛苦赚钱慢,便自学开设淫秽色情网站牟利,最终因涉嫌制作、复制、出版贩卖、传播淫秽物品罪被依法刑事拘留。 据悉,涉案的唐某某、姚某某是中学同学,一次偶然的机会看到了网络上一些需要付费观看、且收入可观的境外黄色网站,从而兴起了借此发家致富的想法。 虽然两人只有大专学历,对网络技术也不精通,但却通过整日泡在贴吧、论坛上,自学了搭建网站的技术。同时四处搜罗淫秽音频、视频,上传至网站上,通过充会员以及零售方式实现了盈利。 随后两人又拉了朋友钱某某入伙负责广告推广,在三人的“努力”下,网站的访问量激增。截止到2024年,非法牟利资金达到五十余万元。6月26日,民警将三人抓获。 办案民警指出,“通过网络传播淫秽物品的行为,不仅扰乱了互联网的管理秩序,也容易污染青少年的身心健康,甚至诱发犯罪,危害不容小觑”。目前,案件正在进一步侦办中。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- 2048小游戏-低调大师作品
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS关闭SELinux安全模块