一种软件包管理方法及系统技术方案

技术编号:21453588 阅读:25 留言:0更新日期:2019-06-26 04:40
本发明专利技术提供了一种软件包管理方法,启动命令解析器shell,加载配置文;接收用户发送的对软件进行操作的命令,根据配置文件判断该软件是否与其他软件存在依赖关系;其他软件包括辅助软件和非辅助软件;当该软件依赖于辅助软件时,为所述辅助软件设置临时环境变量;加载所述辅助软件,执行所述用户发送的命令;所述辅助软件为与原有软件包管理系统中已有软件版本不同的软件。本发明专利技术还提供了一种软件包管理系统和一种兼容多版本的软件包管理系统。本发明专利技术技术方案可以兼容各种Linux发行版之前的软件包管理系统,通过设置临时环境变量的方式实现在系统中同一软件的不同版本共存共用,提高操作系统的灵活性。

【技术实现步骤摘要】
一种软件包管理方法及系统
本专利技术涉及计算机
,尤其涉及一种软件包管理方法及系统。
技术介绍
在使用Linux系统时,首先要安装一些必要的软件。目前各种Linux系统的发行版(其中,Linux发行版是基于Linux内核的类Unix操作系统)都有各自的软件包管理系统(Linux系统上管理系统内所有软件的系统),这些软件包管理系统能够使用户方便地进行软件管理。Linux系统中很多软件是协同工作的,比如软件A运行时会使用软件B,一般称为软件A依赖软件B,这种依赖在所有Linux系统都是很常见的。而各个软件是在不断升级的,不断形成新的版本,可能出现软件A的版本1依赖于软件B的版本2的情况。当前大部分Linux发行版的软件包管理系统只允许当前系统拥有同一软件的同一版本,这是符合大部分情况的。但是,当软件A依赖于软件B的版本2、软件C却又依赖于软件B的版本3时,如果软件B的版本2和版本3之间发生了大的变化,这时在系统中无法同时安装软件B的版本2和版本3,就会导致软件A和软件C无法同时在系统中使用。目前Linux的一个叫做gentoo的发行版的软件包管理系统portage实现了同一软件不同版本共存于一个系统并能同时使用的功能。Portage中的每一款软件的每个版本都可以是一个slot,portage管理这些slot,从而使同一软件的不同版本能共存于同一系统中。在实际使用时通过建立软连接来切换版本,从而达到同一软件的不同版本共存的目标。但ponage软件包管理系统只适用在gentoo系统,其他Linux发行版有各自的软件包管理系统,不可能都去使用portage软件包管理系统;另外,portage使用软连接的方式切换同一软件的不同版本,使得不能同时使用同一软件的不同版本。
技术实现思路
本专利技术针对上述问题,提出了一种软件包管理方法及系统,通过设置临时环境变量,使同一软件的不同版本能够共存于系统中,并能被同时使用。在一个方面,本专利技术提供了一种软件包管理方法,主要技术方案如下:启动命令解析器shell,加载配置文件;接收用户发送的对软件进行操作的命令,根据所述配置文件判断该软件是否与其他软件存在依赖关系;所述其他软件包括辅助软件和非辅助软件;当该软件依赖于辅助软件时,为所述辅助软件设置临时环境变量;加载所述辅助软件,执行所述用户发送的命令;所述辅助软件为与原有软件包管理系统中已有软件版本不同的软件。所述软件包括程序文件和共享库文件。所述配置文件包括多条记录,记录每个软件在运行时所依赖的其他软件的位置。所述根据配置文件判断该软件是否与其他软件存在依赖关系,具体为:判断该软件是否依赖于辅助软件,或者判断是否存在其他软件依赖于该软件。如果存在其他软件依赖于该软件,则向用户发送提示信息,根据用户的反馈判断是否执行所述用户发送的命令。在执行完所述命令后,还包括:修改所述配置文件。在另一个方面,本专利技术提供了一种软件包管理系统,包括多个软件和:接收单元,用于接收用户发送的对软件进行操作的命令;配置文件,用于记录所述软件在运行时所依赖的其他软件的位置;判断单元,用于根据所述配置文件判断该软件是否与其他软件存在依赖关系;所述其他软件包括辅助软件和非辅助软件;所述辅助软件为与原有软件包管理系统中已有软件版本不同的软件;命令解析器shell,用于当该软件依赖于辅助软件时,为所述辅助软件设置临时环境变量;加载所述辅助软件,执行所述用户发送的命令。所述接收单元具体用于接收用户对程序文件或共享库文件进行操作的命令。所述判断单元具体用于根据配置文件判断该软件是否依赖于辅助软件,或者判断是否存在其他软件依赖于该软件。所述命令解析器shell还用于,当存在其他软件依赖于该软件时,向用户发送提示信息,并根据用户的反馈执行相应操作。还包括配置文件修改单元,用于在执行完所述命令后,还包括:修改所述配置文件。本专利技术还提供了一种兼容多版本的软件包管理系统,包括上述软件包管理系统以及原有软件包管理系统。本专利技术通过设置临时环境变量的方式,使得同一软件的不同版本共存以及被同时依赖使用,而且本专利技术所提供的软件包管理系统可以兼容各种Linux发行版之前的软件包管理系统,提高了操作系统的软件灵活性。附图说明图1为本专利技术实施例安装软件的流程图;图2为本专利技术实施例软件包管理方法的流程图。具体实施方式为了使本专利技术的技术方案及优点更加清楚明白,以下结合附图对本专利技术的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本专利技术的一部分实施例,而不是所有实施例的穷举。Linux系统下大部分软件都是依赖别的软件包的,正常情况下Linux系统的软件包管理系统(下面称之为原有软件包管理系统)会维护一套相对于用户的使用来说较为完整的相互依赖的软件体系。本专利技术在此基础上添加了一套辅助软件包管理系统,在原有的软件包管理系统正常工作的基础上进行工作,既可以单独运行,又可以将原有软件包管理系统封装到本专利技术的辅助软件包管理系统中进行统一操作。本专利技术所称的软件可以是程序文件(或者称为应用软件),也可以是共享库文件。本专利技术实施例提供了一种软件包管理系统,可以单独使用,也就是独立存在于Linux系统中。但这种情况就需要该软件包管理系统包含所有系统所需软件,而对于一些底层软件的安装设置可能存在一定的不稳定性,而原有软件包管理系统已安装并维护有稳定的软件包,因此,本专利技术实施例也可以直接利用原有软件包管理系统所拥有的软件作为基础,也就是将本专利技术实施例所说的软件包管理系统作为原有软件包管理系统的辅助软件包管理系统。本专利技术实施例中的软件包管理系统(也称辅助软件包管理系统)具体包括以下三个部分:1)辅助软件。所述辅助软件指的是是独立于原有软件包管理系统的软件,不被原有软件包管理系统所管理,是可以被辅助软件包管理系统管理的软件。具体来说,这些辅助软件是与原有软件包管理系统中已安装的软件的版本号不同的软件。这些辅助软件可以存储在本专利技术实施例的辅助软件包管理系统的任何位置,一般存储于/opt/relysoft目录下。一般情况下,某一款软件在原有软件包管理系统中安装的都是该软件的最新版,以使用新版的软件带来的各种优势。当用户需要使用该软件的某一老版本时,则可以直接将该软件老版本(也即辅助软件)解压到opt/relysoft目录下,这样就可以直接使用该老版本软件。例如,当软件A依赖软件B的低版本,而原有软件包管理系统上已经安装了软件B的高版本时,解压软件B的低版本到辅助软件包管理系统的opt/relysoft目录下,然后修改下面所描述的配置文件中即可。2、配置文件。配置文件中记录每个软件在运行时所依赖的其他软件的位置,如果所依赖的其他软件是与原有软件包管理系统中已有软件版本不同的软件,也就是该软件文件依赖于辅助软件,本专利技术实施例将这种依赖关系称为特殊依赖。其中,软件文件可以是程序文件(应用软件),也可以是共享库文件。配置文件中的每条记录就是记录了一个程序文件或者共享库文件在运行时所特殊依赖的程序文件或共享库文件的位置。本专利技术实施例所说的辅助软件指的是那些与原有软件包管理系统所安装的软件版本号不同的软件。比如原有软件包管理系统中已安装有软件B的高版本,但软件A需要依赖软件B的低版本,那么软件B的低版本即称为辅助软件。这本文档来自技高网
...

【技术保护点】
1.一种软件包管理方法,其特征在于,包括:启动命令解析器shell,加载配置文件;接收用户发送的对软件进行操作的命令,根据所述配置文件判断该软件是否与其他软件存在依赖关系;所述其他软件包括辅助软件和非辅助软件;当该软件依赖于辅助软件时,为所述辅助软件设置临时环境变量;加载所述辅助软件,执行所述用户发送的命令;所述辅助软件为与原有软件包管理系统中已有软件版本不同的软件。

【技术特征摘要】
1.一种软件包管理方法,其特征在于,包括:启动命令解析器shell,加载配置文件;接收用户发送的对软件进行操作的命令,根据所述配置文件判断该软件是否与其他软件存在依赖关系;所述其他软件包括辅助软件和非辅助软件;当该软件依赖于辅助软件时,为所述辅助软件设置临时环境变量;加载所述辅助软件,执行所述用户发送的命令;所述辅助软件为与原有软件包管理系统中已有软件版本不同的软件。2.如权利要求1所述的软件包管理方法,其特征在于,所述软件包括程序文件和共享库文件。3.如权利要求1所述的软件包管理方法,其特征在于,所述配置文件包括多条记录,记录每个软件在运行时所依赖的其他软件的位置。4.如权利要求1所述的软件包管理方法,其特征在于,所述根据配置文件判断该软件是否与其他软件存在依赖关系,具体为:判断该软件是否依赖于辅助软件,或者判断是否存在其他软件依赖于该软件。5.如权利要求4所述的软件包管理方法,其特征在于,还包括:如果存在其他软件依赖于该软件,则向用户发送提示信息,根据用户的反馈判断是否执行所述用户发送的命令。6.如权利要求1至5中任一所述的软件包...

【专利技术属性】
技术研发人员:杨怡
申请(专利权)人:镇江飞协软件开发有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1