一种软件包处理方法、装置及系统的制作方法
【技术领域】
[0001]本申请涉及文件系统技术领域,尤其涉及一种软件包处理方法、装置及系统。
【背景技术】
[0002]在Linux系统中,通常包含有很多个应用程序,而每个应用程序都会对应有一个软件包,这些软件包的存在,增加了系统的维护难度,因此,需要对其进行统一的管理。目前,主要的软件包管理工具为RPM软件包管理器(RedHat Package Manager,RPM),是一种用于互联网下载包的打包及安装工具。
[0003]如果Linux系统中需要软件包管理的功能,就需要安装RPM软件管理及其依赖的所有软件包。而要安装这些软件管理的依赖包,就会占用较多的磁盘空间。但是,对于某些系统来说,其占用空间的大小是一定的,没有更多的空间来存储这些依赖包。或者,对于某些系统来说,在存储这些依赖包后,会导致系统的整体容量变大,超出系统大小所规定的范围,进而导致无法使用RPM来进行软件包管理。因此,目前的软件包管理软件无法满足系统的需求,其通用性较差。亟需一种能够在不扩大系统容量,还能够实现软件包管理的方法。
【发明内容】
[0004]有鉴于此,本申请提供了一种软件包处理方法、装置及系统,以实现在不扩大系统容量的前提下,实现对软件包进行管理的目的。
[0005]为实现上述目的,本申请提供如下技术方案:
[0006]一种软件包处理方法,包括:
[0007]获取系统中按照预设方式将应用程序软件包进行压缩后得到的应用程序压缩包,所述预设方式为带有文件系统的压缩方式;
[0008]分别为每一个应用程序压缩包分配一个可读写空间,所述可读写空间为读取所述应用程序压缩包时占用的空间;
[0009]将所述应用程序压缩包及其对应的可读写空间的目录挂载到预先设定的应用目录;
[0010]触发所述应用程序压缩包中的安装脚本,安装所述应用程序压缩包对应的应用程序。
[0011 ]优选的,所述带有文件系统的压缩方式为squashfs文件系统压缩或Cramfs文件系统压缩。
[0012]优选的,所述获取系统中按照预设方式将应用程序软件包进行压缩后得到的应用程序压缩包的过程包括:
[0013]从预先建立的软件包存储文件夹中获取所述应用程序压缩包。
[0014]优选的,分别为每一个应用程序压缩包分配一个可读写空间后,还包括:
[0015]将所述可读写空间的目录存储在预先建立的目录存储文件夹。
[0016]优选的,所述将所述应用程序压缩包及其对应的可读写空间的目录挂载到预先设定的应用目录的过程包括:
[0017]从所述软件包存储文件夹中获取所述应用程序压缩包,并从所述目录存储文件夹中获取所述应用程序压缩包对应的可读写空间目录;
[0018]利用Aufs联合文件系统,将所述应用程序压缩包及其对应的可读写空间的目录联合挂载到所述预先设定的应用目录。
[0019]一种软件包处理方法,包括:
[0020]接收应用程序安装请求;
[0021]获取待安装应用程序的软件包;
[0022]将所述软件包按照按照预设方式进行压缩,得到待安装应用程序压缩包,所述预设方式为带有文件系统的压缩方式;
[0023]触发软件包处理脚本,所述软件包处理脚本为所述待安装应用程序压缩包分配一个可读写空间,所述可读写空间为读取所述待安装应用程序压缩包时占用的空间,将所述待安装应用程序压缩包及其对应的可读写空间的目录挂载到预先设定的应用目录,触发所述待安装应用程序压缩包中的安装脚本,安装所述待安装应用程序压缩包对应的应用程序。
[0024]优选的,还包括:
[0025]接收应用程序卸载请求,所述请求中包含有待卸载应用程序标识;
[0026]在所述预先设定的应用目录下,查找与所述待卸载应用程序标识对应的挂载的应用程序压缩包及其对应的可读写空间的目录;
[0027]根据所述挂载的应用程序压缩包及其对应的可读写空间的目录,确定待卸载应用程序压缩包及其可读写空间;
[0028]删除所述待卸载应用程序压缩包及其对应的可读写空间。
[0029]一种软件包处理装置,包括:
[0030]软件包获取模块,用于获取系统中按照预设方式将应用程序软件包进行进行压缩后得到的应用程序压缩包,所述预设方式为带有文件系统的压缩方式;
[0031]可读写空间分配模块,用于分别为每一个应用程序压缩包分配一个可读写空间,所述可读写空间为读取所述应用程序压缩包时占用的空间;
[0032]挂载模块,用于将所述应用程序压缩包及其对应的可读写空间的目录挂载到预先设定的应用目录;
[0033]触发安装模块,用于触发所述应用程序压缩包中的安装脚本,安装所述应用程序压缩包对应的应用程序。
[0034]一种软件包处理系统,包括如上所述的软件包处理装置,还包括:
[0035]请求接收模块,用于接收应用程序安装请求;
[0036]待安装软件包获取模块,用于获取待安装应用程序的软件包;
[0037]压缩模块,用于将所述软件包按照按照预设方式进行压缩,得到待安装应用程序压缩包,所述预设方式为带有文件系统的压缩方式;
[0038]触发处理模块,用于触发所述软件包处理装置,以使所述软件包处理装置为所述待安装应用程序压缩包分配一个可读写空间,所述可读写空间为读取所述待安装应用程序压缩包时占用的空间,将所述待安装应用程序压缩包及其对应的可读写空间的目录挂载到预先设定的应用目录,并触发所述待安装应用程序压缩包中的安装脚本,安装所述待安装应用程序压缩包对应的应用程序。
[0039]优选的,
[0040]所述请求接收模块还用于,接收应用程序卸载请求,所述请求中包含有待卸载应用程序标识;
[0041 ] 所述系统还包括:
[0042]查找模块,用于在所述预先设定的应用目录下,查找与所述待卸载应用程序标识对应的挂载的应用程序压缩包及其对应的可读写空间的目录;
[0043]确定模块,用于根据所述挂载的应用程序压缩包及其对应的可读写空间的目录,确定待卸载应用程序压缩包及其可读写空间;
[0044]删除模块,用于删除所述待卸载应用程序压缩包及其对应的可读写空间。
[0045]经由上述的技术方案可知,本申请实施例公开的软件包处理方法中,通过将应用程序的软件包按照带有文件系统的压缩方式进行压缩,缩小了系统的容量,并且,为每一个应用程序压缩包分配一个可读写空间,保证了应用程序能够正常运行,然后将压缩以后的应用程序压缩包及其对应的可读写空间的目录挂载到预设的应用目录下,以实现对软件包的管理。系统可以通过该应用目录快速查找应用程序的软件包,并对其进行处理。在该方法中,没有利用除系统应用程序以外的任何其他程序来实现对软件包的管理,因此,没有额外增加系统的容量,从而使得该方法可以适用于任何系统,具有较强的通用性。
[0046]进一步的,由于对所有的软件包都按照带有文件系统的压缩方式进行压缩,使得系统容量进一步缩小,大大减少了系统占用内存