专利名称:数字电视接收终端的嵌入式系统的包管理系统及方法
技术领域:
本发明涉及嵌入式系统的包管理系统及方法,特别是涉及数字电视接收终端的嵌入式系统的包管理系统及方法。
背景技术:
现有数字电视接收终端几乎不接收第三方软件的安装,其所承载的业务均是由生产厂家固化在数字电视接收终端的嵌入式系统中,第三方无法利用数字电视接收终端来承载自己的业务,其原因在于对于在嵌入式系统下承载自己的业务时,我们不可能直接把下载的软件包安装到系统当中,需要对软件包进行编译,处理其依赖关系,而有依赖关系的软件包的安装是非常麻烦的,比如A软件包依赖于B软件包,B软件包依赖与C软件包,我们想要安装的是A软件包,当我们不知道依赖情况的前提下,我们会直接去安装A软件包,然而中途会中止安装,提示需要先安装B软件包,于是我们又去安装B软件包,结果中途又中止安装,提示需要先安装C软件包。这种重复来重复去的操作对于用户来说是非常不方便的,会浪费很多的时间,而且也会让系统产生很多的垃圾文件。同样,在系统的开发和应用中经常会遇到一些问题(1)用户不小心删除了某些文件导致软件包的功能无法运行;(2)由于操作的失误造成某些文件的损坏而致使软件包的功能无法运行;(3)由于某些不恰当软件的安装导致的软件包的功能无法运行;(4)由于对软件的配置不当导致软件包的功能无法运行;(5)其他一些原因导致的软件包的功能无法运行。对于有依赖关系的软件来说,用户无法知道问题出自哪里,从而只能重新安装系统 (恢复出厂设置)。
发明内容
本发明所要解决的技术问题是,提供一种数字电视接收终端的嵌入式系统的包管理系统及方法。本发明的技术问题通过以下技术手段予以解决 一种数字电视接收终端的嵌入式系统的包管理系统,包括 数据源设置模块,用于设置软件包的数据源;
同步模块,用于将数据源中的软件包信息列表同步至本地;
软件包安装模块,该软件包安装模块包括安装命令接收模块,用于接收用户的安装命令;安装分析模块,用于根据所述软件包信息列表在数据源中查找到安装命令所指向的软件包,并根据该软件包中的依赖关系描述文件分析出该软件包的所有依赖软件包及相互之间的依赖关系;安装执行模块,根据分析模块的分析结果从数据源下载并安装所述依赖软件包及安装命令所指向的软件包。优选地,还包括软件包修复模块,该软件包修复模块包括修复命令接收模块,用于接收用户的修复命令;修复分析模块,根据所述软件包信息列表在数据源中查找到与修复命令所指向的软件包版本相同的软件包,并根据该软件包中的依赖关系描述文件分析出
4该软件包的所有依赖软件包;修复执行模块,将修复命令所指向的软件包及其依赖软件包与数据源中与其版本相同的软件包及其依赖软件包进行逐一对比,查找出损坏或缺失的文件,并将数据源中相应的文件替换或拷贝至对应的安装目录中。优选地,还包括依赖关系网构建模块,用于根据所有已安装软件包的依赖关系描述文件,构建所有已安装软件包的依赖关系网;软件包卸载模块,该软件包卸载模块包括 卸载命令接收模块,用于接收用户的卸载命令;卸载分析模块,用于根据所述依赖关系网分析出所有依赖卸载命令所指向软件包的软件包;卸载执行模块,用于根据卸载分析模块的分析结果,卸载所述卸载命令所指向的软件包及所有依赖该软件包的软件包。本发明的一种数字电视接收终端的嵌入式系统的包管理方法,包括 数据源设置步骤设置软件包的数据源;
同步步骤将数据源中的软件包信息列表同步至本地;
软件包安装步骤接收用户的安装命令;根据所述软件包信息列表在数据源中查找到安装命令所指向的软件包,并根据该软件包中的依赖关系描述文件分析出该软件包的所有依赖软件包及相互之间的依赖关系;根据分析结果从数据源下载并安装所述依赖软件包及安装命令所指向的软件包。优选地,还包括软件修复步骤接收用户的修复命令;根据所述软件包信息列表在数据源中查找到与修复命令所指向的软件包版本相同的软件包,并根据该软件包中的依赖关系描述文件分析出该软件包的所有依赖软件包;将修复命令所指向的软件包及其依赖软件包与数据源中与其版本相同的软件包及其依赖软件包进行逐一对比,查找出损坏或缺失的文件,并将数据源中相应的文件替换或拷贝至对应的安装目录中。优选地,依赖关系网构建步骤根据所有已安装软件包的依赖关系描述文件,构建所有已安装软件包的依赖关系网;软件卸载步骤接收用户的卸载命令;根据所述依赖关系网分析出所有依赖卸载命令所指向软件包的软件包;卸载所述卸载命令所指向的软件包及所有依赖该软件包的软件包。与现有技术相比,本发明的有益效果在于只要软件包的提供方在软件包提供依赖关系描述文件,在安装前用户自行设置好软件包的数据源后,本发明的包管理系统自动将数据源中的信息列表同步至本地,从而系统便能够查找到待安装软件包,并自动根据待安装软件包中的依赖关系描述文件,在数据源中下载并安装所有依赖软件及目标软件。优选方案中,利用修复模块,能够通过对待修复软件包及其依赖包的文件进行对比分析,修复缺失或损坏文件,从而避免了重新安装。优选方案中,利用卸载模块,能够将待卸载软件包及其依赖该软件包的软件一并删除,从而避免了因依赖软件包被卸载而无法运行的软件包占用系统资源。
图1是本发明具体实施方式
的管理方法流程图。
具体实施例方式下面对照附图并结合优选具体实施方式
对本发明进行详细的阐述。如图1所示,一种数字电视接收终端的嵌入式系统的包管理系统及方法,用于管理嵌入式系统中软件包的安装,尤其是具有依赖关系的软件包的安装,包管理系统包括数据源设置模块、同步模块、软件包安装模块、软件包修复模块、依赖关系网构建模块、软件包卸载模块,软件包安装模块包括安装命令接收模块、安装分析模块和安装执行模块,软件包修复模块包括修复命令接收模块、修复分析模块和修复执行模块,软件包卸载模块包括卸载命令接收模块、卸载分析模块和卸载执行模块,所述方法包括以下步骤
数据源设置步骤通过数据源设置模块,设置软件包的数据源,在利用本发明的方法进行软件安装、修复、卸载等操作的数据来源,该来源可以是本地或远端的任意存储设备,例如光盘、网络、专用服务器等等;
同步步骤同步模块将数据源中的软件包信息列表同步至本地;每一次更改数据源均必须进行一次同步,以保证数据源中的数据与嵌入式系统中记录的软件包信息列表的一致性;
软件包安装步骤安装命令接收模块接收用户的安装命令;安装分析模块根据所述软件包信息列表在数据源中查找到安装命令所指向的软件包,并根据该软件包中的依赖关系描述文件分析出该软件包的所有依赖软件包及相互之间的依赖关系;安装执行模块根据分析结果从数据源下载并安装所述依赖软件包及安装命令所指向的软件包;
同样本发明的方法还可以用于修复或卸载已安装好的软件包,其分别包括以下步骤 软件修复步骤修复命令接收模块接收用户的修复命令;修复分析模块根据所述软件包信息列表在数据源中查找到与修复命令所指向的软件包版本相同的软件包,并根据该软件包中的依赖关系描述文件分析出该软件包的所有依赖软件包;修复执行模块将修复命令所指向的软件包及其依赖软件包与数据源中与其版本相同的软件包及其依赖软件包进行逐一对比,查找出损坏或缺失的文件,并将数据源中相应的文件替换或拷贝至对应的安装目录中;
依赖关系网构建步骤依赖关系网构建模块根据所有已安装软件包的依赖关系描述文件,构建所有已安装软件包的依赖关系网;
软件卸载步骤卸载命令接收模块接收用户的卸载命令;卸载分析模块所述依赖关系网分析出所有依赖卸载命令所指向软件包的软件包;卸载执行模块根据分析结果,卸载所述卸载命令所指向的软件包及所有依赖该软件包的软件包。 下面结合一个更加具体的实施例——如何利用本发明的方法安装基于Directfb 编译的weWdt浏览器,对本发明的方法进行进一步的阐述
作为软件weWdt浏览器的提供者,其在对源代码进行交叉编译前,应根据weWdt浏览器承载业务的需要确定其依赖软件包及依赖关系,根据依赖包及依赖关系,并对所有依赖软件分包进行交叉编译,最后对weWdt浏览器进行交叉编译;(本发明推荐软件开发者利用scratchboU的交叉编译链来进行编译,编译过程中无须手动指定所需要的头文件和库文件的路径,这样带来了极大的方便和快捷);编译完成后,根据业务需要删除编译产生的多余的文件后,对剩下的文件进行分包,然后再打包成最终的用于安装在数字电视接收终端中的软件包;为使得最终的软件包能够应用本发明的方法进行安装,编译者需要创建一个特定格式的依赖关系描述文件,用于描述该软件包的依赖关系,例如A软件包依赖于 B软件包,那么在A软件包中的依赖关系描述文件需要记载其对B软件包的依赖关系;对 weWdt浏览器及其所有依赖的软件包编译并打包完成后,将最终形成的多个软件包(包括weWdt浏览器及其依赖软件包),放置于同一目录下,并创建一个软件包信息列表以记录所有软件包的基本信息以形成一个数据源。所述基本信息至少应软件包的名称,还可以包括存储路径、开发者、发布时间等等信息。webkit浏览器的提供者可以将该数据源记录在光盘、FLASH等存储器上,或通过网络发布,或存储在特定的服务器。利用本发明的方法来安装上述weWdt浏览器时,首先须手动指定安装软件包的数据源,假设数据源为光盘,插入光盘后,同步模块自动读取数据源中的软件包信息列表文件,并将其下载至本地;当安装命令接收模块接收到用户安装weWdt浏览器的命令时,首先通过软件包信息列表判断数据源中是否存在weWdt浏览器软件包,如果不存在,则报错并终止安装,如果存在,则继续安装;安装分析模块,通过软件包信息列表在数据源中查找到weWdt浏览器软件包,并将其下载至本地,读取weWdt浏览器软件包中的依赖关系描述文件并分析出weWdt浏览器软件包所有的依赖软件包及其依赖关系,然后由安装执行模块从数据源中下载所有的依赖软件包,并根据依赖关系的逻辑顺序进行安装,例如weWdt 浏览器依赖于Cairo软件包,而Cairo软件包又依赖于freetype软件包,那么则先安装 freetype软件包,然后安装Cairo软件包,然后再安装weWdt浏览器。同样也本发明的软件修复功能优选的实施流程如下
假设运行过程中发现C软件包不能运行,而C软件包依赖于D、E两个软件包,D软件包依赖于F软件包,E软件包依赖于G软件包,其修复过程如下 1.从服务器下载版本一样的C软件包。2.寻找出C软件包的全部安装文件,与下载软件包里的文件进行逐一对比,查找出损坏或者缺失的文件。把下载的软件包里相应的文件解压替换或者拷贝到C软件的相应安装目录里。3.根据C软件包中的依赖关系描述文件分析出其依赖的软件包D和E,下载版本一样的软件包D和E,查找出直接依赖软件包D和E的全部安装文件,并与下载的软件包的文件进行逐一对比,查找出损坏或者缺失的文件。把下载的软件包里相应的文件解压替换或者拷贝到相应软件的相应安装目录里。4.分别从D、E软件包的依赖关系描述文件中获得其依赖软件包的信息,下载版本一样的软件包F和G,查找出本地文件中依赖软件包F和G全部安装文件,并与下载的软件包的文件进行逐一对比,查找出损坏或者缺失的文件。把下载的软件包里相应的文件解压替换或者拷贝到相应软件的相应安装目录里。5.完成自动修复。上述修复过程只是一个具体示例,本发明不限于上述示例。软件包的依赖关系可能保护多级依赖关系、甚至是一个网状的依赖关系,而各级依赖软件包可能由不同的开发者开发,这就导致依赖关系描述文件可能存在不同的情况,该文件可能仅仅记载了其直接依赖的软件包信息,也可能还保护其所有依赖软件包的信息(包括直接依赖和间接依赖), 对于仅仅记载直接依赖的软件包的信息需要安装上述方式层层进行对比,而如果要修复的软件包的依赖关系描述文件记载了所有的依赖软件包信息,则整个修复过程中只需要读取待修复的软件的依赖关系描述文件即可。为了方便对所有软件的管理,本发明的包管理系统还利用依赖关系网构建模块构建所有已安装文件的依赖关系网,在每一次安装新的软件时,均将新软件的依赖关系加入
7该依赖关系网。由于在具有依赖关系的软件中,某一个软件包被卸载后,所有依赖于该软件包的软件均无法正常运行,而成为系统垃圾文件,因此,本发明的包管理系统在卸载用户卸载命令所指向的软件包的同时,也根据所述依赖关系网将依赖用户卸载命令所指向的软件包的软件一并卸载。以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明的保护范围。
权利要求
1.一种数字电视接收终端的嵌入式系统的包管理系统,其特征在于,包括数据源设置模块,用于设置软件包的数据源;同步模块,用于将数据源中的软件包信息列表同步至本地;软件包安装模块,该软件包安装模块包括安装命令接收模块,用于接收用户的安装命令;安装分析模块,用于根据所述软件包信息列表在数据源中查找到安装命令所指向的软件包,并根据该软件包中的依赖关系描述文件分析出该软件包的所有依赖软件包及相互之间的依赖关系;安装执行模块,根据分析模块的分析结果从数据源下载并安装所述依赖软件包及安装命令所指向的软件包。
2.根据权利要求1所述的包管理系统,其特征在于还包括软件包修复模块,该软件包修复模块包括修复命令接收模块,用于接收用户的修复命令;修复分析模块,根据所述软件包信息列表在数据源中查找到与修复命令所指向的软件包版本相同的软件包,并根据该软件包中的依赖关系描述文件分析出该软件包的所有依赖软件包;修复执行模块,将修复命令所指向的软件包及其依赖软件包与数据源中与其版本相同的软件包及其依赖软件包进行逐一对比,查找出损坏或缺失的文件,并将数据源中相应的文件替换或拷贝至对应的安装目录中。
3.根据权利要求1所述的包管理系统,其特征在于还包括依赖关系网构建模块,用于根据所有已安装软件包的依赖关系描述文件,构建所有已安装软件包的依赖关系网;软件包卸载模块,该软件包卸载模块包括卸载命令接收模块,用于接收用户的卸载命令;卸载分析模块,用于根据所述依赖关系网分析出所有依赖卸载命令所指向软件包的软件包;卸载执行模块,用于根据卸载分析模块的分析结果,卸载所述卸载命令所指向的软件包及所有依赖该软件包的软件包。
4.一种数字电视接收终端的嵌入式系统的包管理方法,其特征在于,包括数据源设置步骤设置软件包的数据源;同步步骤将数据源中的软件包信息列表同步至本地;软件包安装步骤接收用户的安装命令;根据所述软件包信息列表在数据源中查找到安装命令所指向的软件包,并根据该软件包中的依赖关系描述文件分析出该软件包的所有依赖软件包及相互之间的依赖关系;根据分析结果从数据源下载并安装所述依赖软件包及安装命令所指向的软件包。
5.根据权利要求4所述的包管理方法,其特征在于还包括软件修复步骤接收用户的修复命令;根据所述软件包信息列表在数据源中查找到与修复命令所指向的软件包版本相同的软件包,并根据该软件包中的依赖关系描述文件分析出该软件包的所有依赖软件包; 将修复命令所指向的软件包及其依赖软件包与数据源中与其版本相同的软件包及其依赖软件包进行逐一对比,查找出损坏或缺失的文件,并将数据源中相应的文件替换或拷贝至对应的安装目录中。
6.根据权利要求4所述的包管理方法,其特征在于还包括依赖关系网构建步骤根据所有已安装软件包的依赖关系描述文件,构建所有已安装软件包的依赖关系网;软件卸载步骤接收用户的卸载命令;根据所述依赖关系网分析出所有依赖卸载命令所指向软件包的软件包;卸载所述卸载命令所指向的软件包及所有依赖该软件包的软件包。
全文摘要
本发明公开了一种数字电视接收终端的嵌入式系统的包管理系统及方法,该系统包括数据源设置模块,用于设置软件包的数据源;同步模块,用于将数据源中的软件包信息列表同步至本地;软件包安装模块,该软件包安装模块包括安装命令接收模块,用于接收用户的安装命令;安装分析模块,用于根据所述软件包信息列表在数据源中查找到安装命令所指向的软件包,并根据该软件包中的依赖关系描述文件分析出该软件包的所有依赖软件包及相互之间的依赖关系;安装执行模块,根据分析模块的分析结果从数据源下载并安装所述依赖软件包及安装命令所指向的软件包。本发明实现在嵌入式系统中一步安装有依赖关系的软件包,简化了安装过程。
文档编号H04N21/443GK102419711SQ20111036348
公开日2012年4月18日 申请日期2011年11月16日 优先权日2011年11月16日
发明者吴焕声, 涂睿, 秦利福, 胡勇, 苏慧 申请人:深圳市佳创视讯技术股份有限公司