本发明涉及嵌入式技术领域,具体涉及一种嵌入式系统包管理方法及其使用方法。
背景技术:
目前的嵌入式根文件系统构建方式主要包含四种,分别是buildroot、yoctoproject、openwrt,和使用发行版linux的rootfs进行定制,即desktopdistros,如ubuntu等。
这四种嵌入式根文件系统构建方式中,buildroot方式构建嵌入式根文件系统是最为优越的方式。buildroot支持源码级构建;bulidroot资源开销较小且优于yoctoproject和desktopdistros;bulidroot支持的功能丰富程度优于desktopdistros;buildroot框架学习成本低,优于yoctoproject和desktopdistros;buildroot产业化程度高,优于openwrt和desktopdistros。buildroot唯一的不足是不支持包管理机制,而yoctoproject和openwrt同样不支持包管理机制。
技术实现要素:
本发明的目的在于提供一种嵌入式系统包管理方法及其使用方法,以解决现有的buildroot构建的根文件系统中增删应用程序流程步骤过于繁琐、不支持软件包在线升级且支持的软件包不够丰富的问题。
本发明解决上述技术问题的技术方案如下:
本发明提供一种嵌入式系统包管理方法,所述嵌入式系统包管理方法包括:
s1:编译并生成固定封装格式的安装包;
s2:搭建所述安装包的包管理服务器;
s3:创建所述安装包的设备端包管理工具。
可选择地,所述步骤s1包括以下分步骤:
s11:定义所述安装包的封装格式;
s12:按照所述封装格式将所述安装包生成软件包。
可选择地,所述步骤s11包括以下分步骤:
s111:定义所述安装包的封装信息,其中,所述封装信息包括软件自身信息、软件版本信息、安装步骤信息和启动脚本;
s112:将待安装的所有文件按照目录依次存放入所述安装包。
可选择地,所述步骤s12包括以下分步骤:
s121:按照所述封装格式生成开源软件包;
s122:按照所述封装格式生成自研软件包。
可选择地,所述步骤s121中,生成所述开源软件包之前,还包括:
a1:将所述安装包拷贝至嵌入式系统的独立位置;
a2:梳理所述安装包与其他安装包之间的依赖关系;
a3:构建打包工具,以用于将所有安装内容打包,其中,所述所有安装内容包括所述安装包、所述步骤a1和所述步骤a2中的全部内容。
可选择地,所述步骤s2中,搭建所述安装包的包管理服务器用于:
提供所述安装包的url供设备端访问;和/或
对所述安装包中具体某个子安装包提供url供设备端下载,和/或
按需增加下载验证机制。
可选择地,所述步骤s3中,所述设备端包管理工具支持离线管理和在在线管理,所述离线管理包括:在无网络的状态下下载所述安装包。
可选择地,所述步骤s3中,创建所述安装包的设备端包管理工具用于:安装已经存在磁盘上的所述安装包;和/或卸载所述安装包中已制定名称的软件包;和/或更新所述安装包中已经安装的软件包;和/或查看所述安装包的信息。
可选择地,所述步骤s3中,创建所述安装包的设备端包管理工具还用于:
配置所述安装包的源地址;和/或支持从所述源地址获取该源支持的所有安装包信息,所述所有安装包信息包括所述安装包信息与所述安装包的具体下载url;和/或支持将所述安装包从url中下载到本地磁盘;和/或支持查找源中是否包含某个子安装包的功能。
基于上述技术方案,本发明还提供一种根据上述的嵌入式系统包管理方法的使用方法,所述使用方法包括:
b1:将需要的包编译并生成固定封装格式的初始安装包;
b2:通过离线安装的方式调试所述初始安装包的正确性,得到调试好的安装包;
b3:将所述调试好的安装包上传至包管理服务器中;
b4:通过工具命令查找所述包管理服务器中调试好的安装包中的某个子安装包;
b5:通过工具命令安装所述某个子安装包;
b6:运行所述某个子安装包中包含的二进制程序或动态库。
本发明具有以下有益效果:
1、简化buildroot构建的根文件系统中增删应用程序的流程步骤;
2、在buildroot构建的根文件系统中,支持软件包的在线升级;
3、提升buildroot构建的根文件系统中,支持的软件包丰富程度与数量,包括支持自研软件包的安装与各类开源软件包的重新封装打包以及安装。
附图说明
图1为本发明所提供的嵌入式系统包管理方法的流程图;
图2为图1中步骤s1的分步骤流程图;
图3为图2中步骤s11的分步骤流程图;
图4为图2中步骤s12的分步骤流程图;
图5为图4中步骤s121之前所述嵌入式系统包管理方法的分步骤流程图;
图6为本发明所提供的嵌入式系统包管理方法的使用方法的流程图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
实施例
本发明解决上述技术问题的技术方案如下:
本发明提供一种嵌入式系统包管理方法,参考图1所示,所述嵌入式系统包管理方法包括:
s1:编译并生成固定封装格式的安装包;这个过程可以是由开发者来操作的,具体来说,参考图2,所述步骤s1包括以下分步骤:
s11:定义所述安装包的封装格式;这里,参考图3,定义安装包的封装格式又包括:
s111:定义所述安装包的封装信息,其中,所述封装信息包括软件自身信息、软件版本信息、安装步骤信息和启动脚本;软件自身信息又具体包括安装包对应的cpu架构、版本号、软件名和编译名称等,安装步骤信息包括说明该安装包如何安装到嵌入式系统中的,启动脚本用于系统启动时启动该安装包中的软件。
s112:将待安装的所有文件按照目录依次存放入所述安装包,以用于安装时将对应的文件安装到相应的位置。
s12:按照所述封装格式将所述安装包生成软件包,具体的,安装包包括两部分:开源软件包,也就是编译框架自带的包;以及自研软件包,也就是通过编译框架与编译脚本实现将用户自己开发的软件一键生成软件安装包,参考图4,因而步骤s12包括以下分步骤:
s121:按照所述封装格式生成开源软件包;
生成开源软件包,主要是指将buildroot中内置的包转换为本发明所定义的封装格式的安装包。这里需要对buildroot框架进行修改,在编译完成某个包的时候,将其生成的有效文件自动生成一个指定封装格式的安装包。因此,所述步骤s121中,生成所述开源软件包之前,参考图5,还包括:
a1:将所述安装包拷贝至嵌入式系统的独立位置;
a2:梳理所述安装包与其他安装包之间的依赖关系;
a3:构建打包工具,以用于将所有安装内容打包,其中,所述所有安装内容包括所述安装包、所述步骤a1和所述步骤a2中的全部内容。
s122:按照所述封装格式生成自研软件包。
s2:搭建所述安装包的包管理服务器;
这里,搭建所述安装包的包管理服务器用于:
提供所述安装包的url供设备端访问;和/或对所述安装包中具体某个子安装包提供url供设备端下载,和/或按需增加下载验证机制。本领域技术人员可结合本发明以及实际情况对包管理服务器的功能进行选择性设置及使用,本发明不做具体限制。
s3:创建所述安装包的设备端包管理工具。
可选择地,所述步骤s3中,所述设备端包管理工具支持离线管理和在线管理,所述离线管理包括:在无网络的状态下下载所述安装包。
可选择地,所述步骤s3中,创建所述安装包的设备端包管理工具用于:安装已经存在磁盘上的所述安装包;和/或卸载所述安装包中已制定名称的软件包;和/或更新所述安装包中已经安装的软件包;和/或查看所述安装包的信息。
可选择地,所述步骤s3中,创建所述安装包的设备端包管理工具还用于:
配置所述安装包的源地址;和/或支持从所述源地址获取该源支持的所有安装包信息,所述所有安装包信息包括所述安装包信息与所述安装包的具体下载url;和/或支持将所述安装包从url中下载到本地磁盘;和/或支持查找源中是否包含某个子安装包的功能。
基于上述技术方案,本发明还提供一种根据上述的嵌入式系统包管理方法的使用方法,参考图6,所述使用方法包括:
b1:将需要的包编译并生成固定封装格式的初始安装包;
b2:通过离线安装的方式调试所述初始安装包的正确性,得到调试好的安装包;
b3:将所述调试好的安装包上传至包管理服务器中;
b4:通过工具命令查找所述包管理服务器中调试好的安装包中的某个子安装包;
b5:通过工具命令安装所述某个子安装包;
b6:运行所述某个子安装包中包含的二进制程序或动态库。
本发明具有以下有益效果:
1、简化buildroot构建的根文件系统中增删应用程序的流程步骤;
2、在buildroot构建的根文件系统中,支持软件包的在线升级;
3、提升buildroot构建的根文件系统中,支持的软件包丰富程度与数量,包括支持自研软件包的安装与各类开源软件包的重新封装打包以及安装。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。