CN114721783B - 资源文件提取方法、装置、电子设备及存储介质 - Google Patents
资源文件提取方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114721783B CN114721783B CN202210526222.1A CN202210526222A CN114721783B CN 114721783 B CN114721783 B CN 114721783B CN 202210526222 A CN202210526222 A CN 202210526222A CN 114721783 B CN114721783 B CN 114721783B
- Authority
- CN
- China
- Prior art keywords
- resource
- file
- target
- container
- target application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种资源文件提取方法、装置、电子设备以及存储介质,其中的方法包括:基于目标应用的镜像文件创建容器并启动所述容器;在所述容器中挂载预置的资源采集程序和资源采集目录;运行所述资源采集程序,通过所述资源采集程序在所述容器中查找所述目标应用的目标资源文件,所述目标资源文件包括如下任意一种或多种:桌面资源文件、图标资源文件、以及服务资源文件;将所述目标资源文件拷贝至所述资源采集目录下。本发明实施例可以为执行容器应用提供快捷入口,降低用户操作的难度。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种资源文件提取方法、一种资源文件提取装置、一种电子设备以及一种存储介质。
背景技术
容器技术是一种虚拟化技术,通过虚拟化操作系统的方式来管理应用,是一种应用封装、分发和部署方式,容器中包含了完整的应用运行环境,除了应用程序本身之外,还包括应用运行所需的全部依赖、类库、其他二进制文件、配置文件等,都统一被打包入容器镜像包中。部署在容器中的应用运行时,需要先启动容器。
然而,在运行容器应用时,通常需要专业的技术人员输入专用的命令,需要较高的专业知识,用户操作的难度较大,需要较多的人力成本和时间成本。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种资源文件提取方法,可以为执行容器应用提供快捷入口,降低用户操作的难度。
相应的,本发明实施例还提供了一种资源文件提取装置、电子设备、以及一种存储介质,用以保证上述方法的实现及应用。
第一方面,本发明实施例公开了一种资源文件提取方法,所述方法包括:
基于目标应用的镜像文件创建容器并启动所述容器;
在所述容器中挂载预置的资源采集程序和资源采集目录;
运行所述资源采集程序,通过所述资源采集程序在所述容器中查找所述目标应用的目标资源文件,所述目标资源文件包括如下任意一种或多种:桌面资源文件、图标资源文件、以及服务资源文件;
将所述目标资源文件拷贝至所述资源采集目录下。
第二方面,本发明实施例公开了一种资源文件提取装置,所述装置包括:
创建启动模块,用于基于目标应用的镜像文件创建容器并启动所述容器;
挂载模块,用于在所述容器中挂载预置的资源采集程序和资源采集目录;
资源采集模块,用于运行所述资源采集程序,通过所述资源采集程序在所述容器中查找所述目标应用的目标资源文件,所述目标资源文件包括如下任意一种或多种:桌面资源文件、图标资源文件、以及服务资源文件;
文件拷贝模块,用于将所述目标资源文件拷贝至所述资源采集目录下。
第三方面,本发明实施例公开了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行本发明实施例中一个或多个所述的资源文件提取方法的步骤。
第四方面,本发明实施例公开了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时能够实现本发明实施例中一个或多个所述的资源文件提取方法。
本发明实施例提供的资源文件提取方法、装置、电子设备及存储介质包括以下优点:
本发明实施例提供了一种资源文件提取方法,可以提取目标应用的目标资源文件,所述目标应用为容器应用。具体地,本发明实施例基于目标应用的镜像文件创建容器并启动所述容器,在所述容器中挂载预置的资源采集程序和资源采集目录。由于资源采集程序挂载在所述目标应用的容器下,并且资源采集目录也挂载在该容器下,因此,通过运行该资源采集程序可以获取到该容器下的所有文件信息,并且资源采集程序也可以访问该资源采集目录,由此,资源采集程序可以遍历该容器下所述目标应用的所有文件,以查找其中的目标资源文件,在找到目标资源文件后,将找到的目标资源文件拷贝至该资源采集目录下。所述目标资源文件可以包括但不限于如下任意一种或多种:桌面资源文件、图标资源文件、以及服务资源文件。由此,本发明实施例在提取目标应用的目标资源文件,并将提取的目标资源文件拷贝至资源采集目录下之后,可以利用资源采集目录下保存的目标资源文件,以实现对目标应用的容器进行快捷启动,降低用户的操作难度。
附图说明
图1是本发明的一种资源文件提取方法实施例的步骤流程图;
图2是本发明的另一种资源文件提取方法实施例的步骤流程图;
图3是本发明一个示例中的一种目标软件包的目录结构示意图;
图4是本发明的一种资源文件提取装置实施例的结构框图;
图5是本发明实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中的术语“和/或”用于描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本发明实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
参照图1,示出了本发明的一种资源文件提取方法实施例的步骤流程图,可以包括如下步骤:
步骤101、基于目标应用的镜像文件创建容器并启动所述容器;
步骤102、在所述容器中挂载预置的资源采集程序和资源采集目录;
步骤103、运行所述资源采集程序,通过所述资源采集程序在所述容器中查找所述目标应用的目标资源文件,所述目标资源文件包括如下任意一种或多种:桌面资源文件、图标资源文件、以及服务资源文件;
步骤104、将所述目标资源文件拷贝至所述资源采集目录下。
在本发明实施例中,目标应用指容器应用。目标应用的镜像文件可以为标准化的容器镜像包,本发明实施例对目标应用的镜像文件的格式没有特殊要求(如可以包括appc或docker格式镜像等)。一个容器应用可以包括至少一个容器,这里的容器也可以称为容器实例。
本发明提供的资源文件提取方法可应用于任一系统平台,包括linux系统平台或者Windows系统平台等。所述系统平台可以是用于提取目标应用的目标资源文件的专用系统平台,在对该目标应用提取目标资源文件之后,可以将该目标应用进行打包后在客户机上安装使用。或者,该系统平台可以是客户机,可以直接在客户机上提取目标应用的目标资源文件并使用提取的目标资源文件,不用再对目标应用进行打包及安装。
首先,基于目标应用的镜像文件创建容器并启动所述容器,所述容器为所述目标应用提供了与系统平台隔离的运行环境。镜像文件是静态的包,而镜像文件运行起来的动态表现就是容器,基于一个镜像文件可以创建并启动多个容器。
然后,在所述容器中挂载预置的资源采集程序和资源采集目录。所述预置的资源采集程序用于在所述容器中查找所述目标应用的目标资源文件。所述资源采集程序的具体形式本发明实施例不做限制,示例性地,所述资源采集程序可以是一个脚本。所述资源采集目录用于保存资源采集程序查找到的所述目标应用的目标资源文件。
本发明实施例可以将所述资源采集程序和资源采集目录挂载在所述容器中的指定位置。示例性地,所述资源采集程序可以预先保存在所述资源采集目录下,所述资源采集目录可以挂载在所述容器中的指定位置,如容器的根目录下。根目录是指文件系统的最底层目录。通过挂载所述资源采集目录,使得该资源采集目录可以作为该容器的数据卷,可用于容器与宿主机间共享文件。由于资源采集程序挂载在所述目标应用的容器下,并且资源采集目录也挂载在该容器下,因此,资源采集程序可以获取到该容器下的所有文件信息,并且资源采集程序也可以访问该资源采集目录,由此,资源采集程序可以遍历该容器下所述目标应用的所有文件,以查找其中的目标资源文件,在找到目标资源文件后,将找到的目标资源文件拷贝至该资源采集目录下。
在本发明实施例中,所述目标资源文件可以包括但不限于如下任意一种或多种:桌面资源文件、图标资源文件、以及服务资源文件。其中,桌面资源文件即desktop文件,图标资源文件即icon文件,服务资源文件即service文件。
desktop文件是用于描述程序启动配置信息的文件,desktop文件以desktop为后缀名。icon文件指的是一种图标格式,可以用于系统图标、和/或软件图标等,icon文件可以以png、svg、或xpm等为后缀名。service文件是某项服务对应的配置文件,service文件以service为后缀名。
由此,本发明实施例在提取目标应用的目标资源文件,并将提取的目标资源文件拷贝至资源采集目录下之后,可以利用资源采集目录下保存的目标资源文件,以实现对目标应用的容器进行快捷启动。一个示例中,对于目标应用A,目标应用A是容器应用,在利用本发明实施例的资源文件提取方法提取目标应用A的目标资源文件之后,可以通过设置目标应用A的desktop文件中的字段信息,使得通过目标应用A的图标即可启动目标应用A的容器,从而可以在容器中运行目标应用A,相对于需要用户输入命令的启动方式,本发明实施例利用提取的目标资源文件可以实现快速启动目标应用的容器,可以降低用户的操作难度。
在本发明的一种可选实施例中,所述步骤103中通过所述资源采集程序在所述容器中查找所述目标应用的目标资源文件,可以包括:
步骤S11、通过所述资源采集程序执行包管理命令,以获取所述目标应用在所述容器中的所有文件目录;
步骤S12、根据预设后缀名,在所述所有文件目录中查找所述目标应用的桌面资源文件和/或服务资源文件。
所述包管理命令指用来安装、创建和管理软件包的命令。以Debian Linux系统平台为例,包管理命令为dpkg命令。进一步地,所述资源采集程序可以执行如下包管理命令:dpkg -L package-Name,该命令可用于显示一个软件包安装到系统里面的所有文件目录信息,package-Name为该软件包的名称,在本发明实施例中,package-Name可以为所述目标应用的软件包名称。
目标应用的软件包指所述目标应用的安装包,本发明实施例对目标应用的软件包的打包格式不做限制。例如,目标应用的软件包可以采用如下任意一种打包格式:rpm格式、deb格式、以及tar格式。
在所述目标应用的容器中挂载预置的资源采集程序之后,可以将目标应用的软件包名称输入该资源采集程序,并执行该资源采集程序,该资源采集程序即可自动执行包管理命令,以获取所述目标应用在所述容器中的所有文件目录。
所述资源采集程序通过执行包管理命令,可以查看目标应用的安装路径,进而可以查看该安装路径下的所有文件目录。所述资源采集程序根据预设后缀名,在该安装路径下的所有文件目录中查找目标应用的桌面资源文件和/服务资源文件。
进一步地,所述预设后缀名可以包括desktop,资源采集程序在查找到以desktop为后缀名的文件时,可以判定该文件为目标应用的桌面资源文件。
进一步地,所述预设后缀名可以包括service,资源采集程序在查找到以service为后缀名的文件时,可以判定该文件为目标应用的服务资源文件。
由于资源采集程序挂载在目标应用的容器下,并且资源采集目录也挂载在该容器下,因此,资源采集程序可以获取到该容器下的所有文件信息,资源采集程序也可以访问该资源采集目录,进而在查找到以desktop为后缀名的桌面资源文件和/或查找到以service为后缀名的服务资源文件后,可以将查找到的桌面资源文件和/或服务资源文件拷贝至该资源采集目录下。
在本发明的一种可选实施例中,对于目标资源文件包括桌面资源文件和图标资源文件的情况,在所述根据预设后缀名,在所述所有文件目录中查找所述目标应用的桌面资源文件和/或服务资源文件之后,所述方法还可以包括:
步骤S21、根据查找到的桌面资源文件中的图标字段,提取所述目标应用的图标名称;
步骤S22、确定所述容器中的目标目录,所述目标目录用于保存所述目标应用的图标资源文件;
步骤S23、在所述目标目录中查找文件名称与所述图标名称相匹配且后缀名满足预设要求的文件,得到所述目标应用的图标资源文件。
资源采集程序在查找到目标应用的桌面资源文件(desktop文件)之后,可以对该desktop文件进行分析得到其中的图标字段(即Icon字段),Icon字段的值中记录了目标应用的图标名称,可以从中提取得到该图标名称。
接下来,确定所述容器中的目标目录,所述目标目录用于保存所述目标应用的图标资源文件,在所述目标目录中查找文件名称与所述图标名称相匹配且后缀名满足预设要求的文件,可以得到所述目标应用的图标资源文件。其中,后缀名满足预设要求可以包括:后缀名与如下任意一项相匹配:png、svg、以及xpm。
进一步地,所述目标目录可以为所述容器的环境变量指定的目录。环境变量,一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下寻找此程序外,还应到path中指定的路径去找。
在本发明实施例中,环境变量可以为XDG_DATA_DIRS。环境变量指定的目录指的是用于保存目标应用的图标资源文件的目录,如所述指定的目录可以包括icons目录和pixmaps目录。
进一步地,如果环境变量XDG_DATA_DIRS为空,可以确定所述目标目录为默认目录指定的目录。也即,在环境变量XDG_DATA_DIRS为空时,默认目录可以包括/usr/share/和~/.local/usr/share。可以在默认目录下的icons目录和pixmaps目录下查找目标应用的图标资源文件。
可选地,资源采集程序在icons目录和pixmaps目录下查找目标应用的图标资源文件的过程中,还可以判断所述目标应用是否设置有主题,所述主题指桌面环境的展示风格。若所述目标应用设置有主题,则可以优先在icons目录和pixmaps目录下的主题配置目录下查找文件名称与所述图标名称相匹配且后缀名满足预设要求的文件。若所述目标应用未设置主题,则可以优先在icons目录和pixmaps目录下的hicolor目录下查找文件名称与所述图标名称相匹配且后缀名满足预设要求的文件。
在本发明实施例中,所述文件名称与所述图标名称相匹配且后缀名满足预设要求的文件,可以包括如下任意一项或多项:图标名称.png文件、图标名称.svg文件、以及图标名称.xpm文件。
进一步地,在所述目标目录中查找到文件名称与所述图标名称相匹配且后缀名满足预设要求的所有匹配文件中,可以选择分辨率最高的作为所述目标应用的图标资源文件。例如,在查找到的所有匹配文件中,若存在128x128像素的匹配文件,则将该匹配文件作为目标应用的图标资源文件。若不存在128x128像素的匹配文件,则将64x64像素的匹配文件作为目标应用的图标资源文件,以此类推。
在本发明的一种可选实施例中,对于目标资源文件包括桌面资源文件和图标资源文件的情况,所述方法还可以包括:
将所述目标资源文件拷贝至所述资源采集目录下之后,将目标应用的桌面资源文件中图标字段的值设置为第一数据,以及将调用字段的值设置为第二数据;其中,所述第一数据包括所述目标应用的图标资源文件的文件路径,所述第二数据包括用于启动所述目标应用的容器并在所述容器中执行调用所述目标应用的命令。
在将目标应用的目标资源文件提取到资源采集目录下之后,可以利用该资源采集目录打包该目标应用,并在宿主机中安装该目标应用,在安装过程中,可以通过设置目标资源文件中的字段信息实现对目标应用的容器进行快捷启动。
具体地,可以将桌面资源文件(desktop文件)中图标字段(Icon字段)的值设置为第一数据,以及将桌面资源文件(desktop文件)中调用字段(exec字段)的值设置为第二数据。其中,第一数据包括所述目标应用的图标资源文件的文件路径,该文件路径指目标应用安装到宿主机后,该目标应用的图标资源文件在宿主机中的文件路径。本发明实施例在安装目标应用的过程中,将目标应用的桌面资源文件(desktop文件)中的图标字段(Icon字段)的值设置为第一数据,可以实现在宿主机的桌面显示目标应用的图标。将目标应用的桌面资源文件(desktop文件)中的调用字段(exec字段)的值设置为第二数据,可以实现在触发目标应用的图标时即可运行目标应用的容器。本发明实施例通过设置目标应用的desktop文件的Icon字段和exec字段,可以实现通过触发宿主机桌面显示的目标应用的图标即可启动目标应用的容器。
desktop文件中的exec字段用于描述运行桌面应用程序所需要执行的命令。本发明实施例将desktop文件中exec字段的值设置为启动所述目标应用的容器并在所述容器中执行调用所述目标应用的命令。
desktop文件中的Icon字段用于指示桌面应用程序的图标的路径。Icon字段的值可以为图标的绝对路径/去掉尾缀的缩写。本发明实施例通过将desktop文件中Icon字段的值设置为提取到的icon文件的路径,即可在宿主机环境展示该icon文件。
本发明实施例在安装目标应用(容器应用)之前,基于目标应用的镜像文件创建容器并启动该容器,在该容器中提取目标应用的目标资源文件,由此,在安装目标应用的过程中,可以将提取的目标资源文件安装到宿主机中,并对安装到宿主机中的目标应用的desktop文件中的Icon字段和exec字段进行设置,可以实现通过目标应用的图标启动目标应用的容器,为容器应用增加了桌面图标以及桌面快捷启动的功能,不需要用户通过在容器中输入命令的方式进行启动。
进一步地,通过设置目标应用的服务资源文件(service文件)可以实现宿主机直接启动容器内的服务,不需要用户通过在容器中输入命令的方式进行启动。在本发明的一种可选实施例中,所述方法还可以包括:
将所述目标资源文件拷贝至所述资源采集目录下之后,将目标应用的服务资源文件中启动字段的值设置为第三数据,以及将重启字段的值设置为第四数据;其中,所述第三数据包括用于启动所述目标应用的容器内服务的命令,所述第四数据包括用于重启所述目标应用的容器内服务的命令。
服务资源文件(service文件)中的启动字段(ExecStart字段)用于描述在容器内启动服务的命令。服务资源文件(service文件)中的重启字段(Restart字段)用于描述在容器内重启服务的命令。本发明实施例可以将目标应用的服务资源文件(service文件)中ExecStart字段的值设置为启动所述目标应用的容器内服务的命令,以及将目标应用的服务资源文件(service文件)中Restart字段的值设置为重启所述目标应用的容器内服务的命令,从而可以在宿主机上执行管理容器内服务的命令,如执行启动或重启所述目标应用的容器内服务的命令,从而可以实现在宿主机上统一便捷地管理容器应用以及容器应用内的服务。
进一步地,该实施例的方法还可以包括:将所述目标资源文件拷贝至所述资源采集目录下之后,删除所述资源采集程序,终止所述容器并删除所述容器。
步骤101中启动的容器用于提取目标应用的目标资源文件,该预置的资源采集程序也是用于提取目标应用的目标资源文件。因此,在目标应用的目标资源文件提取完成之后,可以删除该资源采集程序和该容器,以节省系统空间。参照图2,示出了本发明的另一种资源文件提取方法实施例的步骤流程图,包括如下步骤:
步骤201、主程序启动。该主程序指用于执行本发明的资源文件提取方法的程序。
步骤202、启动容器,挂载资源采集程序和资源采集目录。具体地,基于目标应用的镜像文件创建容器并启动所述容器,并在所述容器中挂载预置的资源采集程序和资源采集目录。
步骤203、运行容器内的资源采集程序。
步骤204、查找目标资源文件。在容器内运行所述资源采集程序,通过所述资源采集程序在所述容器中查找所述目标应用的目标资源文件,所述目标资源文件包括如下任意一种或多种:桌面资源文件、图标资源文件、以及服务资源文件。
步骤205、将目标资源文件拷贝至资源采集目录。
步骤206、主程序删除资源采集程序和容器。
在本发明的一种可选实施例中,所述步骤101之前还可以包括:
步骤S31、在基础环境下安装原始软件包,所述基础环境指所述目标应用依赖的运行时环境,所述原始软件包根据所述目标应用打包得到;
步骤S32、根据所述基础环境中安装所述原始软件包后新增的文件,构建所述目标应用的镜像文件;
步骤S33、将所述镜像文件保存至预先构建的目录结构下,所述目录结构下还包括所述资源采集目录。
所述步骤104之后,还可以包括:
步骤S34、对所述目录结构下的文件按照预设规范进行打包,得到目标软件包。
本发明实施例还定义了一种可兼容不同系统平台的软件包格式,在本发明实施例中,将该软件包格式称为lmg(Loongnix Image,Loongnix镜像)格式。本发明实施例提供的资源文件提取方法还可用于在制作lmg格式的软件包的过程中提取待打包的目标应用的目标资源文件。
本发明实施例可以将已存在的不同格式的软件包统一转换为本发明的lmg格式的软件包。例如,可以将rpm格式的软件包转换为lmg格式的软件包,也可以将deb格式的软件包转换为lmg格式的软件包,等等。lmg格式的软件包可以看作是一个压缩文件,其中包含目标应用的镜像文件。
参照图3,示出了本发明一个示例中的一种目标软件包的目录结构示意图。如图3所示,该目录结构300包括如下目录:Image目录301、BaseInfo目录302、meta目录303、Verify目录304、以及Data目录305。
其中,Image目录301为镜像目录,用于保存目标应用的镜像文件。BaseInfo目录302为原始信息目录,用于保存目标软件包的原始信息,所述原始信息可以包括原始软件包的包名和版本等信息。meta目录303为管理目录,用于保存目标软件包的管理信息,所述管理信息可以包括目标软件包的包名和版本、程序启动入口等信息。Verify目录304为校验目录,用于保存目录结构300下各文件的签名信息。Data目录305为数据目录,Data目录305包括资源采集目录3051和宿主机数据目录3052。资源采集目录3051用于存放本发明实施例提取的目标资源文件。宿主机数据目录3052用于存放待安装到宿主机系统目录中的文件资源,包括目录和文件。
为实现lmg包的平台兼容性,本发明实施例在将已有格式的软件包(如rpm包、deb包、以及tar包等中任意一种软件包)转换为lmg包时,先检测当前系统中是否已安装该应用程序运行依赖的基础环境(base环境),所述基础环境指所述目标应用依赖的运行时环境,如果已安装,则在该base环境中安装原始软件包;如果当前系统中未安装该base环境,则先安装该base环境,然后在该base环境中安装原始软件包。在该base环境中安装原始软件包后,导出安装原始软件包后的所有变更文件,得到应用程序的镜像文件。
本发明实施例在用于制作lmg包的系统平台中将rpm包、deb包、以及tar包中任意一种软件包转换为lmg包之后,可以在客户机中安装该lmg包,在安装过程中可以利用所述资源采集目录中提取的桌面资源文件和图标资源文件为所述目标应用设置快捷启动入口。
示例性地,所述快捷启动入口可以包括桌面快捷启动入口。具体地,在安装lmg包的过程中,可以根据指定的安装位置,确定所述目标应用的图标位置,并且设置所述目标应用的桌面资源文件中图标字段和调用字段的值,即可在客户机环境显示所述目标应用的图标,通过该图标即可快捷启动目标应用的容器并在容器中执行该目标应用。
综上,本发明实施例提供了一种资源文件提取方法,可以提取目标应用的目标资源文件,所述目标应用为容器应用。具体地,本发明实施例基于目标应用的镜像文件创建容器并启动所述容器,在所述容器中挂载预置的资源采集程序和资源采集目录。由于资源采集程序挂载在所述目标应用的容器下,并且资源采集目录也挂载在该容器下,因此,通过运行该资源采集程序可以获取到该容器下的所有文件信息,并且资源采集程序也可以访问该资源采集目录,由此,资源采集程序可以遍历该容器下所述目标应用的所有文件,以查找其中的目标资源文件,在找到目标资源文件后,将找到的目标资源文件拷贝至该资源采集目录下。所述目标资源文件可以包括但不限于如下任意一种或多种:桌面资源文件、图标资源文件、以及服务资源文件。由此,本发明实施例在提取目标应用的目标资源文件,并将提取的目标资源文件拷贝至资源采集目录下之后,可以利用资源采集目录下保存的目标资源文件,实现对目标应用的容器进行快捷启动,降低用户的操作难度。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图4,示出了本发明的一种资源文件提取装置实施例的结构框图,可以包括如下模块:
创建启动模块401,用于基于目标应用的镜像文件创建容器并启动所述容器;
挂载模块402,用于在所述容器中挂载预置的资源采集程序和资源采集目录;
资源采集模块403,用于运行所述资源采集程序,通过所述资源采集程序在所述容器中查找所述目标应用的目标资源文件,所述目标资源文件包括如下任意一种或多种:桌面资源文件、图标资源文件、以及服务资源文件;
文件拷贝模块404,用于将所述目标资源文件拷贝至所述资源采集目录下。
可选地,所述资源采集模块403包括:
目录查询子模块,用于通过所述资源采集程序执行包管理命令,以获取所述目标应用在所述容器中的所有文件目录;
文件查找子模块,用于根据预设后缀名,在所述所有文件目录中查找所述目标应用的桌面资源文件和/或服务资源文件。
可选地,对于目标资源文件包括桌面资源文件和图标资源文件的情况,所述装置还包括:
名称提取模块,用于根据查找到的桌面资源文件中的图标字段,提取所述目标应用的图标名称;
目标确定模块,用于确定所述容器中的目标目录,所述目标目录用于保存所述目标应用的图标资源文件;
文件匹配模块,用于在所述目标目录中查找文件名称与所述图标名称相匹配且后缀名满足预设要求的文件,得到所述目标应用的图标资源文件。
可选地,对于目标资源文件包括桌面资源文件和图标资源文件的情况,所述装置还包括:
第一设置模块,用于将所述目标资源文件拷贝至所述资源采集目录下之后,将所述资源采集目录下的桌面资源文件中图标字段的值设置为第一数据,以及将调用字段的值设置为第二数据;其中,所述第一数据包括所述目标应用的图标资源文件的文件路径,所述第二数据包括用于启动所述目标应用的容器并在所述容器中执行调用所述目标应用的命令。
可选地,对于目标资源文件包括服务资源文件的情况,所述装置还包括:
第二设置模块,用于将所述目标资源文件拷贝至所述资源采集目录下之后,将所述资源采集目录下的服务资源文件中启动字段的值设置为第三数据,以及将重启字段的值设置为第四数据;其中,所述第三数据包括用于启动所述目标应用的容器内服务的命令,所述第四数据包括用于重启所述目标应用的容器内服务的命令。
可选地,所述装置还包括:
删除模块,用于在将所述目标资源文件拷贝至所述资源采集目录下之后,删除所述资源采集程序,以及终止所述容器并删除所述容器。
可选地,所述装置还包括:
软件安装模块,用于在基础环境下安装原始软件包,所述基础环境指所述目标应用依赖的运行时环境,所述原始软件包根据所述目标应用打包得到;
镜像构建模块,用于根据所述基础环境中安装所述原始软件包后新增的文件,构建所述目标应用的镜像文件;
目录构建模块,用于将所述镜像文件保存至预先构建的目录结构下,所述目录结构下还包括所述资源采集目录;
软件打包模块,用于对所述目录结构下的文件按照预设规范进行打包,得到目标软件包。
可选地,所述原始软件包的格式包括如下任意一种:rpm格式、deb格式、以及tar格式。
本发明实施例提供了一种资源文件提取装置,可以提取目标应用的目标资源文件,所述目标应用为容器应用。具体地,本发明实施例基于目标应用的镜像文件创建容器并启动所述容器,在所述容器中挂载预置的资源采集程序和资源采集目录。由于资源采集程序挂载在所述目标应用的容器下,并且资源采集目录也挂载在该容器下,因此,通过运行该资源采集程序可以获取到该容器下的所有文件信息,并且资源采集程序也可以访问该资源采集目录,由此,资源采集程序可以遍历该容器下所述目标应用的所有文件,以查找其中的目标资源文件,在找到目标资源文件后,将找到的目标资源文件拷贝至该资源采集目录下。所述目标资源文件可以包括但不限于如下任意一种或多种:桌面资源文件、图标资源文件、以及服务资源文件。由此,本发明实施例在提取目标应用的目标资源文件,并将提取的目标资源文件拷贝至资源采集目录下之后,可以利用资源采集目录下保存的目标资源文件,实现对目标应用的容器进行快捷启动,降低用户的操作难度。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
参照图5,是本发明实施例提供的电子设备的结构示意图。如图5所示,所述电子设备包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行前述实施例的访存控制方法的步骤。
本发明实施例提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由终端的程序或处理器执行时,使得终端能够执行前述实施例的资源文件提取方法的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以预测方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种资源文件提取方法和装置、电子设备以及一种存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种资源文件提取方法,其特征在于,所述方法包括:
基于目标应用的镜像文件创建容器并启动所述容器;
在所述容器中挂载预置的资源采集程序和资源采集目录;
运行所述资源采集程序,通过所述资源采集程序在所述容器中查找所述目标应用的目标资源文件,所述目标资源文件包括如下任意一种或多种:桌面资源文件、图标资源文件、以及服务资源文件;
将所述目标资源文件拷贝至所述资源采集目录下;
其中,对于所述目标资源文件包括桌面资源文件和图标资源文件的情况,所述方法还包括:
将所述目标资源文件拷贝至所述资源采集目录下之后,将所述目标应用的桌面资源文件中图标字段的值设置为第一数据,以及将调用字段的值设置为第二数据;其中,所述第一数据包括所述目标应用的图标资源文件的文件路径,所述第二数据包括用于启动所述目标应用的容器并在所述容器中执行调用所述目标应用的命令。
2.根据权利要求1所述的方法,其特征在于,所述通过所述资源采集程序在所述容器中查找所述目标应用的目标资源文件,包括:
通过所述资源采集程序执行包管理命令,以获取所述目标应用在所述容器中的所有文件目录;
根据预设后缀名,在所述所有文件目录中查找所述目标应用的桌面资源文件和/或服务资源文件。
3.根据权利要求2所述的方法,其特征在于,对于目标资源文件包括桌面资源文件和图标资源文件的情况,在所述根据预设后缀名,在所述所有文件目录中查找所述目标应用的桌面资源文件和/或服务资源文件之后,所述方法还包括:
根据查找到的桌面资源文件中的图标字段,提取所述目标应用的图标名称;
确定所述容器中的目标目录,所述目标目录用于保存所述目标应用的图标资源文件;
在所述目标目录中查找文件名称与所述图标名称相匹配且后缀名满足预设要求的文件,得到所述目标应用的图标资源文件。
4.根据权利要求1-3中任一项所述的方法,其特征在于,对于所述目标资源文件包括服务资源文件的情况,所述方法还包括:
将所述目标资源文件拷贝至所述资源采集目录下之后,将所述资源采集目录下的服务资源文件中启动字段的值设置为第三数据,以及将重启字段的值设置为第四数据;其中,所述第三数据包括用于启动所述目标应用的容器内服务的命令,所述第四数据包括用于重启所述目标应用的容器内服务的命令。
5.根据权利要求1-3中任一项所述的方法,其特征在于,在所述将所述目标资源文件拷贝至所述资源采集目录下之后,所述方法还包括:
删除所述资源采集程序;
终止所述容器并删除所述容器。
6.根据权利要求1-3中任一项所述的方法,其特征在于,在所述基于目标应用的镜像文件创建容器并启动所述容器之前,所述方法还包括:
在基础环境下安装原始软件包,所述基础环境指所述目标应用依赖的运行时环境,所述原始软件包根据所述目标应用打包得到;
根据所述基础环境中安装所述原始软件包后新增的文件,构建所述目标应用的镜像文件;
将所述镜像文件保存至预先构建的目录结构下,所述目录结构下还包括所述资源采集目录;以及
在所述将所述目标资源文件拷贝至所述资源采集目录下之后,所述方法还包括:对所述目录结构下的文件按照预设规范进行打包,得到目标软件包。
7.根据权利要求6所述的方法,其特征在于,所述原始软件包的格式包括如下任意一种:rpm格式、deb格式、以及tar格式。
8.一种资源文件提取装置,其特征在于,所述装置包括:
创建启动模块,用于基于目标应用的镜像文件创建容器并启动所述容器;
挂载模块,用于在所述容器中挂载预置的资源采集程序和资源采集目录;
资源采集模块,用于运行所述资源采集程序,通过所述资源采集程序在所述容器中查找所述目标应用的目标资源文件,所述目标资源文件包括如下任意一种或多种:桌面资源文件、图标资源文件、以及服务资源文件;
文件拷贝模块,用于将所述目标资源文件拷贝至所述资源采集目录下;
其中,对于目标资源文件包括桌面资源文件和图标资源文件的情况,所述装置还包括:
第一设置模块,用于将所述目标资源文件拷贝至所述资源采集目录下之后,将所述资源采集目录下的桌面资源文件中图标字段的值设置为第一数据,以及将调用字段的值设置为第二数据;其中,所述第一数据包括所述目标应用的图标资源文件的文件路径,所述第二数据包括用于启动所述目标应用的容器并在所述容器中执行调用所述目标应用的命令。
9.一种电子设备,其特征在于,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放可执行指令,所述可执行指令使所述处理器执行如权利要求1至7中任一项所述的资源文件提取方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至7任一项所述的资源文件提取方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210526222.1A CN114721783B (zh) | 2022-05-16 | 2022-05-16 | 资源文件提取方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210526222.1A CN114721783B (zh) | 2022-05-16 | 2022-05-16 | 资源文件提取方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114721783A CN114721783A (zh) | 2022-07-08 |
CN114721783B true CN114721783B (zh) | 2022-08-26 |
Family
ID=82230865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210526222.1A Active CN114721783B (zh) | 2022-05-16 | 2022-05-16 | 资源文件提取方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114721783B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115390912B (zh) * | 2022-10-26 | 2023-03-28 | 深圳高灯计算机科技有限公司 | 资源发现方法、装置、计算机设备和存储介质 |
CN115828231B (zh) * | 2022-10-28 | 2024-07-02 | 广州汽车集团股份有限公司 | 应用程序运行方法、装置、车辆以及存储介质 |
CN117076005B (zh) * | 2023-10-16 | 2024-03-01 | 龙芯中科技术股份有限公司 | 一种应用运行方法、装置、电子设备及存储介质 |
CN118132166B (zh) * | 2024-02-21 | 2024-10-11 | 山东中创软件商用中间件股份有限公司 | 应用服务器类加载资源隔离处理方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108415795A (zh) * | 2018-02-12 | 2018-08-17 | 人和未来生物科技(长沙)有限公司 | 一种容器Dockerfile、容器镜像快速生成方法及系统 |
CN111190687A (zh) * | 2019-11-28 | 2020-05-22 | 安超云软件有限公司 | 一种容器镜像的构建方法、装置、设备及存储介质 |
CN112559118A (zh) * | 2019-09-25 | 2021-03-26 | 北京国双科技有限公司 | 应用数据迁移方法、装置、电子设备及存储介质 |
CN113760325A (zh) * | 2021-05-11 | 2021-12-07 | 腾讯科技(深圳)有限公司 | 容器环境更新方法及装置 |
CN114077367A (zh) * | 2021-11-29 | 2022-02-22 | 北京鲸鲮信息系统技术有限公司 | Linux系统中实现安卓应用快捷方式的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9852137B2 (en) * | 2015-09-23 | 2017-12-26 | International Business Machines Corporation | Container storage migration |
-
2022
- 2022-05-16 CN CN202210526222.1A patent/CN114721783B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108415795A (zh) * | 2018-02-12 | 2018-08-17 | 人和未来生物科技(长沙)有限公司 | 一种容器Dockerfile、容器镜像快速生成方法及系统 |
CN112559118A (zh) * | 2019-09-25 | 2021-03-26 | 北京国双科技有限公司 | 应用数据迁移方法、装置、电子设备及存储介质 |
CN111190687A (zh) * | 2019-11-28 | 2020-05-22 | 安超云软件有限公司 | 一种容器镜像的构建方法、装置、设备及存储介质 |
CN113760325A (zh) * | 2021-05-11 | 2021-12-07 | 腾讯科技(深圳)有限公司 | 容器环境更新方法及装置 |
CN114077367A (zh) * | 2021-11-29 | 2022-02-22 | 北京鲸鲮信息系统技术有限公司 | Linux系统中实现安卓应用快捷方式的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114721783A (zh) | 2022-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114721783B (zh) | 资源文件提取方法、装置、电子设备及存储介质 | |
US9235703B2 (en) | Virus scanning in a computer system | |
CN108595191B (zh) | 一种应用安装方法及装置 | |
US11016785B2 (en) | Method and system for mirror image package preparation and application operation | |
CN107885551A (zh) | 一种服务部署方法、装置、可读介质及存储控制器 | |
US6542887B1 (en) | Incorporating native code in Java archive files | |
CN114706564B (zh) | 软件包制作方法、装置、电子设备及存储介质 | |
CN114124739B (zh) | 部署FreeSWITCH服务的方法、装置、电子设备及存储介质 | |
CN110162964A (zh) | 一种文件篡改的检查方法、装置及系统 | |
CN113760306B (zh) | 安装软件的方法、装置、电子设备及存储介质 | |
CN113467790B (zh) | 软件打包方法、装置及可读存储介质 | |
US20170364347A1 (en) | Selectively migrating applications during an operating system upgrade | |
CN106980516B (zh) | 信息处理装置及资源管理方法 | |
CN113094085A (zh) | 组件集成方法、装置、计算机可读存储介质及电子设备 | |
CN113434194A (zh) | 持续集成与交付系统、方法、电子设备及存储介质 | |
CN115080114B (zh) | 应用程序的移植处理方法、装置和介质 | |
CN114721784B (zh) | 应用运行方法、装置、电子设备及可读介质 | |
US9910667B2 (en) | Segregating a monolithic computing system into multiple attachable application containers based on application boundaries | |
JP6313987B2 (ja) | ファイル管理プログラム、ファイル管理方法、及びファイル管理システム | |
CN105094837A (zh) | 引导计算机启动的方法、装置及启动引导介质的制作方法 | |
CN109976765B (zh) | 一种应用群部署方法、装置、设备和存储介质 | |
CN113434196B (zh) | 用于管理应用程序的方法和装置 | |
CN115421785B (zh) | 应用程序的移植处理方法、装置和介质 | |
CN116009895A (zh) | 软件包还原方法、装置、电子设备及存储介质 | |
CN112541182B (zh) | 内核vfs层系统修复方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |