开明软件包格式,是openKylin社区Kaiming SIG为应对传统包格式存在的系统与应用无明确界限、发行版碎片化、兼容性等问题而开发的一款全新软件包格式,满足ISV(Independent Software Vendors)应用发布和应用独立发布需求,并支持沙箱隔离,允许共享部分基础库,为主要Linux桌面提供原生集成。
一、开明软件包框架结构
开明软件包主要包括部署文件(deploy)、应用数据(files)、元数据文件(matedata),导出文件(exports)四部分:
开明软件包运行过程,首先解析元数据文件,获取到应用运行所需的上下文内容,然后通过mount namespace和bind mount构建应用运行的rootfs,通过xdg-dbus-proxy进行dbus转发,最后chroot进入rootfs环境执行二进制命令启动应用。接下来请跟随文章教程完成您的第一个开明包构建和安装运行。
二、开明命令介绍
以下是部分开明软件包使用命令介绍,更多命令详情可参考文末链接:开明命令使用手册。
三、编译程序
1.安装开明命令包和开明编译包
其中,kaiming ( >= 0.15.9 )是包管理器客户端,提供了相关开明命令,用于管理开明包格式应用的安装、卸载、运行、更新、信息查看等操作。kaiming-builder提供了开明包对应的编译命令,可以将您的源码编译成开明软件包格式。
2.安装runtime和配套的SDK
开明包要求每个应用程序指定一个依赖的runtime。runtime由SDK和Platform组成,SDK在应用编译和调试时使用,Platform在应用执行时使用。在编译应用程序时,需要先将runtime下载到本地:
3.创建应用程序
进入您的项目根目录,这里我们采用一个简单的脚本案例来说明。
现在将其粘贴到一个空文件中并将其另存为hello.sh。
4.配置源码所需清单
这里以top.openkylin.Hello.yaml清单文件为例,文件内容:
举例程序较为简单,在更复杂的应用程序中,清单将列出多个模块。由于yaml清单涉及内容较多,关于yaml清单的详细描述请参考官方文档说明(链接附在文末)。
5.构建应用程序
使用命令kaiming-builder来进行软件包编译:
如果您想共享该应用程序,可以将其放入存储库中。通过将–repo参数传递给来kaiming-builder来完成:
此命令将构建清单中列出的每个模块并将其安装到本地存储库repo中。其中,生成的build目录是构建后的程序结构。如下图:
我们可以看到,hello.sh是在 files/bin/hello.sh下,这种情况就是正确编译结果,之后会通过kaiming install安装到系统的指定位置/opt/kaiming中。到这里,恭喜您已完成一个应用程序制作!
四、测试运行
1.安装应用程序
现在我们准备添加刚刚创建的存储库并安装应用程序。通过kaiming install命令完成,要验证构建后的包是否可以成功安装,请运行以下命令:
2.运行应用程序
接下来,通过以下命令来尝试运行该应用程序:
运行成功,终端输出:
以上是编译开明软件包格式的简单流程,各位小伙伴你学会了吗?更多内容,敬请期待。
未经允许不得转载:岩猫星空网 » 探索开明软件包:应用开发指南轻松掌握,快速上手!