一种管理软件安装/卸载的方法

文档序号:6540447阅读:151来源:国知局
专利名称:一种管理软件安装/卸载的方法
技术领域
本发明涉及计算机系统中软件安装/卸载技术,特别涉及一种管理软件安装/卸载的方法。
背景技术
在一个计算机系统中,往往会安装各种类型的计算机软件,以适应不同用户的不同需求。在这些软件之间很可能存在着依赖关系,即有些软件必须依赖于其他软件才能正常运行。这就要求在安装软件的时候,必须首先安装该软件所依赖的其他软件。同样,在卸载软件的时候,也必须先卸载依赖于该软件的其他软件,否则,卸载该软件后会造成依赖于该软件的其他软件无法正常运行。
目前,软件对自身安装的管理可以分为三类。第一类,在软件安装过程中不考虑软件之间的依赖关系,直接安装软件,但所安装的软件可能因为缺少所依赖的软件而无法正常运行。第二类,预先在安装软件中设置软件对自身的管理程序,在软件安装过程中软件自身的管理程序检查用户端是否存在该软件所依赖的软件,如果存在,则直接安装该软件,如果不存在,则给用户端发出提示信息,由用户端安装该软件所依赖的软件后,再安装该软件,但是这种软件安装过程中必须需要用户端的客户参与,增加了客户安装软件的麻烦。第三类,预先在安装软件中设置软件对自身的管理程序以及该软件所依赖软件的安装程序或该软件所依赖软件安装程序的来源信息,在软件安装过程中软件自身的管理程序检查用户端是否存在该软件所依赖的软件,如果存在,则直接安装该软件,如果不存在,则根据设置在安装软件中的该软件所依赖软件程序的来源信息或直接从安装软件中获取该软件的安装信息,安装该软件所依赖的软件后,再安装该软件,但是这种软件安装过程中需要给每一个软件再额外设置软件对自身的管理程序,以及该软件所依赖软件的安装程序或该软件所依赖软件安装程序的来源信息,这不仅增大了安装软件占用的存储空间,而且对每一个安装软件进行设置比较繁琐。
更进一步地,目前没有对软件卸载的管理,无法对要卸载的软件进行软件依赖关系的判断,如果卸载了一个其他软件依赖的软件,则会导致其他软件无法正常运行。
因此,如何在不增大软件存储空间的基础上简便地安装具有软件依赖关系的软件,以及卸载具有软件依赖关系的软件,而不造成该软件和依赖于该软件的其他软件无法正常运行成为了亟待解决的问题。

发明内容
有鉴于此,本发明的主要目的在于提供一种管理软件安装/卸载的方法,该方法不仅能够在不增大软件存储空间的基础上简便地安装具有软件依赖关系的软件,保证所安装软件正常运行,而且在卸载具有软件依赖关系的软件时,保证用户端中的其他软件正常运行。
根据上述目的,本发明的技术方案是这样实现的一种管理软件安装/卸载的方法,设置软件依赖关系信息描述文件,该方法还包括当安装软件时,用户端根据设置的软件依赖关系信息描述文件判断是否存在要安装软件所依赖的软件,如果存在,用户端先安装被依赖的软件,再安装要安装软件;否则,用户端安装要安装软件;当卸载软件时,用户端根据设置的软件依赖关系信息描述文件判断是否存在依赖于要卸载软件的软件,如果存在,用户端不卸载软件或者用户端将要卸载的软件和依赖于所卸载软件的软件都进行卸载;否则,用户端卸载要卸载的软件。
所述的软件依赖关系信息描述文件包括软件的正常运行所需要依赖的软件及版本、软件的正常运行所需要依赖的软件组件及版本。
所述的软件依赖关系信息描述文件为用户端已安装软件的依赖关系信息描述文件时,该文件存储在用户端设置的本地软件信息库中。
所述的软件依赖关系信息描述文件为用户端未安装软件的依赖关系信息描述文件时,该文件存储在提供软件安装程序的软件安装单元中。
在所述用户端先安装被依赖软件后,该方法进一步包括用户端将被依赖软件的依赖关系信息描述文件保存在设置的本地软件信息库中,并且标记为被动安装;在所述安装要安装软件后,该方法进一步包括用户端将软件的依赖关系信息描述文件保存在设置的本地软件信息库中,并且标记为主动安装。
所述用户端先安装被依赖软件的过程为用户端设置提供预安装接口的软件管理服务单元,用于存储软件安装程序的软件安装单元调用软件管理服务单元的预安装接口,由软件管理服务单元获取被依赖软件的安装程序并安装被依赖软件;或者由用户端要安装软件的安装程序获取被依赖软件的安装程序,安装被依赖软件。
在所述将要卸载的软件和依赖于所卸载软件的软件都进行卸载后,该方法进一步包括用户端将设置在本地软件信息库中的要卸载软件以及依赖于所卸载软件的软件对应的依赖关系信息描述文件进行删除。
该方法进一步包括用户端判断要卸载软件和依赖于所卸载软件的软件所依赖的标记为被动安装的软件是否还被用户端已安装的其它软件所依赖,如果不存在依赖于该被动安装软件的其它软件,用户端卸载该标记为被动安装的软件,并将设置在本地软件信息库中的该被动安装软件的依赖关系信息描述文件进行删除;否则,用户端不做处理,结束。
所述的软件为具有一个或一个以上组件的软件。
当软件进行修改时,该方法进一步包括软件增加组件,用户端根据设置组件的软件依赖关系信息描述文件判断用户端是否已安装要安装组件依赖的软件以及组件,如果未安装,用户端先安装被依赖的软件以及组件,再安装要安装组件;否则,用户端安装要安装组件;当卸载组件时,用户端根据设置组件的软件依赖关系信息描述文件判断用户端是否存在依赖于要卸载组件的软件以及组件,如果存在,用户端不卸载要卸载组件或者用户端将要卸载的组件和依赖于要卸载组件的软件以及组件都进行卸载;否则,用户端卸载要卸载的组件。
从上述方案可以看出,本发明在用户端预先设置用于存储已安装软件依赖关系信息描述文件的本地软件信息库,当要卸载软件或软件中的组件时,用户端可以根据本地软件信息库存储的已安装软件依赖关系信息描述文件判断是否存在依赖于要卸载软件的软件,如果有,则不卸载软件;否则,卸载软件。因此,本发明提供的方法在卸载具有软件依赖关系的软件时,保证依赖所要卸载软件的其他软件正常运行。本发明还在提供安装程序的软件安装单元设置了软件依赖关系信息描述文件,当安装软件或软件的组件时,用户端可以根据从安装单元中获取的软件依赖关系信息描述文件确定所安装软件的正常运行是否依赖于其他软件,如果是,用户端可以先安装被依赖的其他软件后,再安装要安装的软件或组件。由于本发明不像现有技术那样要在软件安装程序中设置管理软件安装的程序,也可以不设置被依赖软件,节省了空间,所以本发明在不增大软件存储空间的基础上简便地安装具有软件依赖关系的软件,保证所安装软件正常运行。


图1为本发明软件安装/卸载的管理框架图;图2为本发明的管理软件安装/卸载的方法具体实施例示意图。
具体实施例方式
为了使本发明的目的、技术方案和优点更加清楚明白,以下举具体实施例并参照附图,对本发明进行进一步详细说明。
本发明提供的方法能够在软件安装过程中,直接由用户端判断是否需要安装该软件所依赖的软件,如果需要,则安装该软件所依赖的软件后再安装该软件;如果不需要,则直接安装该软件。本发明提供的方法还能够在软件卸载过程中,直接由用户端判断计算机系统中是否存在有依赖于要卸载软件的软件,如果存在,则提示用户是否同时卸载软件和依赖于要卸载软件的软件,或者提示用户不卸载该软件,否则,直接卸载该软件。
本发明提供的方法还可以修改已安装软件中的各个组件,即针对已安装软件中的每个组件,判断是否需要安装或卸载其他软件或组件。
图1为本发明软件安装/卸载的管理框架图,该管理框架包括具有软件安装/卸载程序和软件依赖关系信息的软件安装单元100,在用户端中,软件安装/卸载管理服务单元101以及具有已经安装软件的依赖关系信息的本地软件信息库102。
用户端中的软件安装/卸载管理服务单元101是实际负责管理软件安装/卸载过程的部分,该单元为软件安装单元100提供三个接口预安装接口、预卸载接口和预修改接口,分别供软件安装单元100在软件安装过程、卸载过程和修改过程中使用。当软件安装单元100通过这三个接口和软件安装/卸载管理服务单元101进行信息交互时,由软件安装/卸载管理服务单元101对软件依赖关系进行判断,安装或卸载相关的所依赖软件以及安装或卸载相关所依赖的软件组件。
在软件安装以及修改过程中,软件安装单元100需要提供描述软件依赖关系信息,以便软件管理服务单元101更新本地软件信息库102所保存软件的依赖关系信息。在软件卸载过程中,软件管理服务单元101直接从本地软件信息库102中获取该软件的依赖关系信息。
本发明中的本地软件信息库102中用于保存已安装软件的依赖关系信息,在本地软件信息库102中,将已安装软件的标记分为主动安装和被动安装两类。其中,标记为主动安装的软件是指用户端主动运行软件安装程序完成安装的软件;标记为被动安装的软件是指由于被所需要安装软件依赖而由软件安装/卸载管理服务单元101被动安装的软件。
软件的依赖关系信息可以存储在软件的依赖关系信息描述文件中,再将软件的依赖关系信息描述文件存储在软件安装单元100或/和本地软件信息库102中。软件的依赖关系信息包括该软件的正常运行所需要依赖的软件及其版本、该软件的正常运行所需要依赖的软件组件及其版本。
以下分别对软件管理服务单元101执行各个过程进行详细叙述。
1、软件的预安装过程软件的预安装是指当一个软件依赖于其他软件时,即只有当其他软件存在时该软件才能正常运行,由软件管理服务单元101安装该软件所依赖的其他软件的过程。
软件管理服务单元101为软件安装单元100提供了预安装接口,软件安装单元100通过此接口给软件管理服务单元101提供预先存储的软件的依赖关系信息描述文件。软件管理服务单元101接收到软件的依赖关系信息描述文件后判断该软件所依赖的软件是否已经在用户端安装,并且判断所安装被依赖软件的版本是否为软件的依赖关系信息描述文件中被依赖软件的版本,如果被依赖软件没有被安装或者所安装的被依赖软件的版本不是软件的依赖关系信息描述文件中被依赖软件的版本,则由软件管理服务单元101通过某种预先设定的方式,如通过计算机网络,获取该被依赖软件的安装程序,在安装完成后,将被依赖软件的软件依赖关系信息描述文件保存在本地软件信息库102中,同时标记被依赖软件为被动安装后,继续安装该软件,将该软件的软件依赖关系信息描述文件保存在本地软件信息库102,同时标记为主动安装。如果被依赖软件已经被安装并且所安装的被依赖软件的版本是软件的依赖关系信息描述文件中的被依赖软件的版本,则软件管理服务单元101直接安装该软件。
如果通过某种预先设定的方式没有获取到被依赖软件或者被依赖软件没有安装成功,则软件管理服务单元101发送提示信息后由用户选择是否安装该软件,或者管理服务单元101直接不安装该软件。
2、软件的预卸载过程软件的预卸载过程是在软件卸载的过程中,由软件管理服务单元101根据本地软件信息库102保存的所有软件依赖关系信息描述文件检查是否存在依赖于该软件的其他软件,并卸载依赖于该软件的其他软件。
软件管理服务单元101为软件安装单元100提供了预卸载接口,软件安装单元100在卸载软件的过程中,调用预卸载接口,由软件管理服务单元101卸载依赖于该软件的其它软件。
在软件卸载的过程中,首先软件管理服务单元101判断是否存在依赖于该软件的其他软件,如果不存在,则从软件安装单元100获取软件卸载程序,直接卸载该软件。如果存在,则由用户选择是否同时卸载该软件以及依赖于该软件的其他软件。如果用户选择不卸载,则不卸载该软件,结束卸载过程。如果用户选择卸载,则软件管理服务单元101完成卸载该软件以及卸载依赖于该软件的其他软件的过程,将保存在本地软件信息库102中的该软件以及依赖于该软件的其他软件对应的依赖关系信息描述文件进行删除。
在将保存在本地软件信息库102中的该软件以及依赖于该软件的其它软件的依赖关系信息描述文件进行删除之前,软件管理服务单元101根据这些软件(包括该软件以及依赖于该软件的其它软件)的依赖关系信息描述文件判断该软件所依赖的被动安装软件是否依然被其他软件和组件依赖,如果不是,则软件管理服务单元101删除这些被动安装的软件,并删除本地软件信息库102中这些被动安装的软件对应的依赖信息描述文件,如果是,则不删除这些被动安装的软件。
3、软件的预修改软件可以在修改/修复安装过程中,增加安装或者删除软件中的某些组件。软件的预修改是指在这一过程中,软件管理服务单元101预安装该组件所依赖的其他软件或组件,或预卸载不再被依赖的被动安装软件或组件的过程。
软件管理服务单元101为软件的预修改提供了预修改接口,软件安装单元100通过该接口进行软件的预修改时,必须提供增加或删除组件对应的依赖关系信息描述文件。软件管理服务单元101会根据增加或删除组件对应的软件依赖关系信息描述文件,完成预安装或预卸载过程。
当增加某个组件时,软件管理服务单元101会检查该组件所依赖的其他软件或者组件是否已经安装,如果不存在被依赖软件或组件或者被依赖软件已经被安装,则软件管理服务单元101安装该组件,并在本地软件信息库102中存储该组件的软件依赖关系信息描述文件,标注为主动安装组件;如果存在某被依赖软件或组件未被安装,则软件管理服务单元101先安装被依赖的软件或组件,并在本地软件信息库102中存储被依赖软件或组件的依赖关系信息描述文件,标注为被动安装组件或软件,然后软件管理服务单元101安装该组件,并在本地软件信息库102中存储该组件的依赖关系信息描述文件,标注为主动安装组件。
当删除某个组件时,则软件管理服务单元101会检查本地软件信息库102中的软件依赖信息描述文件,判断是否有依赖于该组件的其他组件或软件,如果有,则不能删除该组件;如果没有,则软件管理服务单元101删除该组件,并删除本地软件信息库102中该组件对应的软件依赖信息描述文件,然后,软件管理服务单元101检查该组件所依赖的被动安装的软件或组件是否依然被其他软件和组件依赖,如果不是,则软件管理服务单元101删除这些被动安装的软件或组件,并删除本地软件信息库102中这些被动安装的软件或组件对应的软件依赖信息描述文件,如果是,则不删除这些被动安装的软件或组件。
举一个具体实施例说明本发明。
图2为本发明的管理软件安装/卸载的方法具体实施例示意图。假设有五个软件A、B、C、D和E,其中软件A由三个组件A1、A2和A3构成,这五个软件之间的依赖关系为软件A中的组件A1依赖于软件B,软件A中的组件A2依赖于软件C,软件A中的组件A3依赖于软件D,软件E依赖于软件B。
假设在用户端已经安装了软件E和软件B,其中,软件E为用户端主动安装的软件,即在本地软件信息库102中标注软件E为主动安装;软件B是软件管理服务单元101在预安装过程中安装的,即在本地软件信息库102中标注B软件为被动安装。
软件A的安装过程如下所述。
假设用户选择安装软件A的组件A1和组件A2,则软件安装单元100通过与软件管理服务单元101之间的预安装接口,完成以下步骤步骤10、软件管理服务单元101根据软件A的依赖关系信息描述文件确定软件A要安装部分依赖于软件B和软件C。
步骤11、软件管理服务单元101检查用户端已经安装的软件,发现用户端已经安装了软件B,则不需要再次安装软件B。
步骤12、软件管理服务单元101检查用户端已经安装的软件,发现用户端没有安装软件C,则从软件安装单元或计算机系统的网络中获取软件C的安装程序,安装软件C,并将软件C的依赖关系信息描述文件存储到本地软件信息库102中,标记为被动安装。
步骤13、软件管理服务单元101安装软件A的要安装部分,即软件A的组件A1和组件A2,并将组件A1和组件A2的依赖关系信息描述文件存储到本地软件信息库102中,标记为主动安装。
修改软件A的已安装部分的过程如下所述。
假设要增加软件A的组件A3,则软件安装单元100通过与软件管理服务单元101之间的预修改接口,完成以下步骤步骤20、软件管理服务单元101根据组件A3的依赖信息描述文件,确定A3依赖于软件D。
步骤21、软件管理服务单元101检查用户端已经安装的软件,发现用户端没有安装软件D,则从软件安装单元或计算机系统的网络中获取软件D的安装程序,安装软件D,并将软件D的依赖关系信息描述文件存储到本地软件信息库102中,标记为被动安装。
步骤22、软件管理服务单元101安装软件组件A3,并将组件A3的依赖关系信息描述文件存储到本地软件信息库102中,标记为主动安装。
假设要删除A软件的组件A2,则软件安装单元100通过与软件管理服务单元101之间的预修改接口,完成以下步骤步骤30、软件管理服务单元101检查本地软件信息库102是否存在依赖于组件A2的其他软件或组件,发现没有这样的组件或软件,则卸载组件A2。
步骤31、软件管理服务单元101卸载组件A2后,清除本地软件信息库102中所保存组件A2的软件依赖关系信息描述文件的同时,获取依赖关系信息描述文件中的组件A2所依赖的软件和组件列表。
步骤32、软件管理服务单元101检查组件A2所依赖的软件和组件列表,确定组件A2所依赖的软件C,根据本地软件信息库102中所存储的软件依赖关系信息描述文件确定软件C为被动安装且没有依赖于软件C的其他软件,软件管理服务单元101卸载软件C,并清除本地软件信息库102中的软件C的依赖关系信息描述文件。
卸载软件A的过程如下所述。
软件安装单元100通过与软件管理服务单元101之间的预卸载接口,完成以下步骤
步骤40、软件管理服务单元101根据本地软件信息库102中所存储的软件依赖关系信息描述文件,确定是否有依赖于软件A的其他软件,发现没有这样的软件,则卸载软件A,清除本地软件信息库102中所保存软件A的依赖关系信息描述文件的同时,获取依赖关系信息描述文件中的软件A所依赖的软件和组件列表。
步骤41、软件管理服务单元101检查软件A所依赖的软件和组件列表,确定软件A所依赖的软件B、C、D,根据检查本地软件信息库102中的依赖关系信息描述文件确定软件C和软件D为被动安装且没有依赖于软件C和软件D的其他软件,软件管理服务单元101卸载软件C和软件D,并清除本地软件信息库102中的软件C和软件D对应的依赖关系信息描述文件;根据检查本地软件信息库102中的依赖关系信息描述文件确定软件B被用户端已安装软件E所依赖,所以不能卸载软件B。
假设卸载软件A后,还要卸载软件B,则软件管理服务单元101完成以下步骤步骤50、软件管理服务单元101检查本地软件信息库102,则确定软件E依赖于软件B,则提示用户是否同时卸载软件B和软件E。
步骤51、如果用户选择卸载,则软件管理服务单元101将卸载软件E和软件B,其过程如软件A的卸载过程。
步骤52、如果用户选择不卸载,则不能卸载软件B,退出卸载过程。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种管理软件安装/卸载的方法,其特征在于,设置软件依赖关系信息描述文件,该方法还包括当安装软件时,用户端根据设置的软件依赖关系信息描述文件判断是否存在要安装软件所依赖的软件,如果存在,用户端先安装被依赖的软件,再安装要安装软件;否则,用户端安装要安装软件;当卸载软件时,用户端根据设置的软件依赖关系信息描述文件判断是否存在依赖于要卸载软件的软件,如果存在,用户端不卸载软件或者用户端将要卸载的软件和依赖于所卸载软件的软件都进行卸载;否则,用户端卸载要卸载的软件。
2.如权利要求1所述的方法,其特征在于,所述的软件依赖关系信息描述文件包括软件的正常运行所需要依赖的软件及版本、软件的正常运行所需要依赖的软件组件及版本。
3.如权利要求1所述的方法,其特征在于,所述的软件依赖关系信息描述文件为用户端已安装软件的依赖关系信息描述文件时,该文件存储在用户端设置的本地软件信息库中。
4.如权利要求1所述的方法,其特征在于,所述的软件依赖关系信息描述文件为用户端未安装软件的依赖关系信息描述文件时,该文件存储在提供软件安装程序的软件安装单元中。
5.如权利要求1所述的方法,其特征在于,在所述用户端先安装被依赖软件后,该方法进一步包括用户端将被依赖软件的依赖关系信息描述文件保存在设置的本地软件信息库中,并且标记为被动安装;在所述安装要安装软件后,该方法进一步包括用户端将软件的依赖关系信息描述文件保存在设置的本地软件信息库中,并且标记为主动安装。
6.如权利要求1所述的方法,其特征在于,所述用户端先安装被依赖软件的过程为用户端设置提供预安装接口的软件管理服务单元,用于存储软件安装程序的软件安装单元调用软件管理服务单元的预安装接口,由软件管理服务单元获取被依赖软件的安装程序并安装被依赖软件;或者由用户端要安装软件的安装程序获取被依赖软件的安装程序,安装被依赖软件。
7.如权利要求1所述的方法,其特征在于,在所述将要卸载的软件和依赖于所卸载软件的软件都进行卸载后,该方法进一步包括用户端将设置在本地软件信息库中的要卸载软件以及依赖于所卸载软件的软件对应的依赖关系信息描述文件进行删除。
8.如权利要求7所述的方法,其特征在于,该方法进一步包括用户端判断要卸载软件和依赖于所卸载软件的软件所依赖的标记为被动安装的软件是否还被用户端已安装的其它软件所依赖,如果不存在依赖于该被动安装软件的其它软件,用户端卸载该标记为被动安装的软件,并将设置在本地软件信息库中的该被动安装软件的依赖关系信息描述文件进行删除;否则,用户端不做处理,结束。
9.如权利要求1所述的方法,其特征在于,所述的软件为具有一个或一个以上组件的软件。
10.如权利要求9所述的方法,其特征在于,当软件进行修改时,该方法进一步包括软件增加组件,用户端根据设置组件的软件依赖关系信息描述文件判断用户端是否已安装要安装组件依赖的软件以及组件,如果未安装,用户端先安装被依赖的软件以及组件,再安装要安装组件;否则,用户端安装要安装组件;当卸载组件时,用户端根据设置组件的软件依赖关系信息描述文件判断用户端是否存在依赖于要卸载组件的软件以及组件,如果存在,用户端不卸载要卸载组件或者用户端将要卸载的组件和依赖于要卸载组件的软件以及组件都进行卸载;否则,用户端卸载要卸载的组件。
全文摘要
本发明公开了一种管理软件安装/卸载的方法,在用户端预先设置用于存储已安装软件依赖关系信息描述文件的本地软件信息库,当要卸载软件或软件中的组件时,用户端可以根据本地软件信息库存储的已安装软件依赖关系信息描述文件判断是否存在依赖于要卸载软件的软件,如果有,则不卸载软件;否则,卸载软件。本发明还在提供安装程序的软件安装单元设置了软件依赖关系信息描述文件,当安装软件或软件的组件时,用户端可以根据从安装单元中获取的软件依赖关系信息描述文件确定所安装软件的正常运行是否依赖于其他软件,如果是,用户端可以先安装被依赖的其他软件后,再安装要安装的软件或组件。
文档编号G06F9/445GK1834913SQ200510055499
公开日2006年9月20日 申请日期2005年3月18日 优先权日2005年3月18日
发明者周晓煜, 康小剑, 陈少为, 罗予晋 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1