CN113741922A - 安装文件生成和程序安装方法、装置、计算机设备及介质 - Google Patents
安装文件生成和程序安装方法、装置、计算机设备及介质 Download PDFInfo
- Publication number
- CN113741922A CN113741922A CN202111285540.5A CN202111285540A CN113741922A CN 113741922 A CN113741922 A CN 113741922A CN 202111285540 A CN202111285540 A CN 202111285540A CN 113741922 A CN113741922 A CN 113741922A
- Authority
- CN
- China
- Prior art keywords
- file
- installation
- dynamic library
- party dynamic
- target program
- 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.)
- Pending
Links
- 238000009434 installation Methods 0.000 title claims abstract description 215
- 238000000034 method Methods 0.000 title claims abstract description 92
- 238000013515 script Methods 0.000 claims description 51
- 230000015654 memory Effects 0.000 claims description 17
- 230000006870 function Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 description 27
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 4
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007429 general method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- 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
- 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)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种安装文件生成和程序安装方法、装置、计算机设备及介质,适用于计算机技术领域。该方法包括:对目标程序进行编译,生成可执行文件;获取可执行文件对应的至少一个第三方动态库并确定各第三方动态库对应的查找路径;将各第三方动态库复制到对应的查找路径;根据可执行文件以及各第三方动态库,生成目标程序对应的安装文件。采用还方法可以保证根据确定的查找路径可以查找到各第三方动态库,避免了因为查找不到各第三方动态库而导致目标程序安装失败。且该方法生成的安装文件适用于各种linux系统,因此适用于各种虚拟机,提供了一种目标程序对应的统一且通用的安装文件。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种安装文件生成和程序安装方法、装置、计算机设备及介质。
背景技术
随着科技的不断发展,云平台的发展也越来越成熟。对于云平台一部分高级功能,例如虚拟机在线快照功能,具体地,在虚拟机运行状态下为硬盘打快照,就会存在持续读写数据的问题。因此,这种情况下就需要在虚拟机操作系统中安装qemu-ga(qemu guestagent,qemu客户机代理程序)程序,这样,在生成硬盘在线快照时,会暂时冻结文件系统,暂停对硬盘的读写,以完成硬盘快照的生成。所以,由于云平台存在部分依赖于qemu-ga程序的功能,用户需要在虚拟机操作系统中安装qemu-ga程序。
然而,当虚拟机内安装不同发行版的linux系统时,安装qemu-ga程序的方式也不一样,例如CentOS和Ubuntu系统厂商都提供了各自的软件仓库,通过操作系统厂商提供的软件仓库来安装qemu-ga程序就会导致不同操作系统安装的qemu-ga版本可能不同,这就造成了qemu-ga所支持的命令列表不一致。
现有技术中,通常是采用将qemu源码在虚拟机上进行编译的方式进行安装,但是这种方案需要将源码拷贝到虚拟机内部,同时需要虚拟机已经安装了C语言的编译器程序。
然而,由于一部分虚拟机并未安装C语言的编译器程序,因此,上述现有技术中的方法并不是一种安装程序的通用方案。
发明内容
有鉴于此,本发明实施例提供了一种安装文件生成和程序安装方法、装置、计算机设备及介质,以解决现有技术中并不存在安装程序的通用方法的问题。
根据第一方面,本发明实施例提供了一种安装文件生成方法,该方法包括:对目标程序进行编译,生成可执行文件;获取可执行文件对应的至少一个第三方动态库并确定各第三方动态库对应的查找路径;将各第三方动态库复制到对应的查找路径;根据可执行文件以及各第三方动态库,生成目标程序对应的安装文件。
在本申请实施例中,对目标程序进行编译,生成可执行文件,从而可以保证目标程序可以执行。此外,在现有技术中,在linux系统中,对于第三方动态库的默认查找顺序为:1.环境变量LD_LIBRARY_PATH指定的查找路径;2.配置文件/etc/ld.so.conf中指定的路径;3默认动态库查找路径/lib;4.默认动态库查找路径/usr/lib。如果在以上路径都没有找到目标程序运行依赖的第三方动态库,那么目标程序将加载失败。而在本申请实施例中,由于获取可执行文件对应的至少一个第三方动态库并确定各第三方动态库对应的查找路径,并将各第三方动态库复制到对应的查找路径。从而可以保证根据确定的查找路径可以查找到各第三方动态库,避免了因为查找不到各第三方动态库而导致目标程序安装失败。此外,根据可执行文件以及各第三方动态库,生成目标程序对应的安装文件。当在虚拟机操作系统中安装目标程序时,通过将目标程序运行依赖的第三方动态库拷贝到编译时确定的第三方动态库的查找路径下,这样在安装完成后,运行目标程序时,操作系统便会到一个固定的查找路径下查找依赖的第三方动态库,而在安装目标程序时已经将依赖的第三方动态库拷贝到该目录下,这样便解决了目标程序找不到依赖的第三方动态库问题。此外,上述方法也避免了系统中安装多个版本的第三方动态库出现冲突,因此,上述方法中生成的安装文件适用于各种linux系统,因此适用于各种虚拟机,提供了一种目标程序对应的统一且通用的安装文件。
结合第一方面,在第一方面第一实施方式中,根据可执行文件以及各第三方动态库,生成目标程序对应的安装文件,包括:获取可执行文件对应的默认配置文件,默认配置文件中包括可执行文件在虚拟机中运行时的默认配置项;根据可执行文件、各第三方动态库以及默认配置文件,生成目标程序对应的安装文件。
在本申请实施中,获取可执行文件对应的默认配置文件,根据可执行文件、各第三方动态库以及默认配置文件,生成目标程序对应的安装文件,从而可以保证生成的安装文件可以成功安装目标程序。
结合第一方面第一实施例,在第一方面第二实施方式中,根据可执行文件、各第三方动态库以及默认配置文件,生成目标程序对应的安装文件,还包括:获取可执行文件对应的启动控制文件,启动控制文件用于实现目标程序的开机启动,手动启动、关闭和重启功能中的至少一项;根据可执行文件、各第三方动态库、默认配置文件以及启动控制文件,生成目标程序对应的安装文件。
在本申请实施例中,计算机设备获取可执行文件对应的启动控制文件,根据可执行文件、各第三方动态库、默认配置文件以及启动控制文件,生成目标程序对应的安装文件,从而可以保证生成的安装文件可以成功安装目标程序。
结合第一方面第二实施例,在第一方面第三实施方式中,根据可执行文件、各第三方动态库、默认配置文件以及启动控制文件,生成目标程序对应的安装文件,包括:获取安装文件对应的目录结构;根据目录结构,分别将可执行文件、各第三方动态库、默认配置文件以及启动控制文件复制到对应的目录,生成安装文件。
在本申请实施例中,获取安装文件对应的目录结构,根据目录结构,分别将可执行文件、各第三方动态库、默认配置文件以及启动控制文件复制到对应的目录,生成安装文件。从而可以保证安装文件中包括的各部分文件在指定的位置,避免各文件位置错误,影响目标程序的安装。
结合第一方面,在第一方面第四实施方式中,获取可执行文件对应的至少一个第三方动态库,包括:获取可执行文件对应的第三方动态库列表;根据第三方动态库列表,获取各第三方动态库。
在本申请实施例中,计算机设备获取可执行文件对应的第三方动态库列表,并根据第三方动态库列表,获取各第三方动态库,从而可以保证获取到的各第三方动态库的准确性。避免因为第三方动态库出现问题,而造成目标程序安装失败。
结合第一方面,在第一方面第五实施方式中,方法还包括:获取安装脚本;将安装文件和安装脚本复制到目标文件;根据目标文件,生成镜像文件,将镜像文件上传至云平台镜像服务,并将镜像文件挂载到虚拟机。
在本申请实施例中,由于获取安装脚本,并将安装文件和安装脚本复制到目标文件。从而使得获取到目标文件的虚拟机可以根据目标文件中包括的安装脚本安装目标程序,实现了目标程序的安装。此外,根据目标文件,生成镜像文件,将镜像文件上传至云平台镜像服务,并将镜像文件挂载到虚拟机。从而可以保证各种计算机设备均可以将镜像文件挂载到文件系统,然后通过获取到的镜像文件安装目标程序。从而实现了使得生成的安装文件适用于各种虚拟机,即提供了一种通用的、统一的安装文件,为提供一种通用的统一的程序安装方法提供了保障。
根据第二方面,本发明实施例提供了一种程序安装方法,方法包括:在云平台镜像服务获取目标程序对应的镜像文件,镜像文件包括目标程序对应的安装文件和安装脚本;镜像文件根据第一方面任一所述的安装文件生成方法生成;将镜像文件挂载到文件系统;执行镜像文件中的安装脚本安装目标程序。
在本申请实施例中,计算机设备在云平台镜像服务获取目标程序对应的镜像文件,并将镜像文件挂载到文件系统,然后执行镜像文件中的安装脚本安装目标程序。从而可以将完成安装目标程序。上述方法中的镜像文件适用于各种虚拟机,因此,各种虚拟机都可以通过上述方法挂载镜像文件,并执行镜像文件中的安装脚本安装目标程序。因此,上述方法提供了一种统一且通用的程序安装方法。
根据第三方面,本发明实施例提供了一种安装文件生成装置,该装置包括:
编译模块,用于对目标程序进行编译,生成可执行文件;
第一获取模块,用于获取可执行文件对应的至少一个第三方动态库,并在编译过程中指定各第三方动态库的查找路径;
第一复制模块,用于将各第三方动态库复制到对应的查找路径;
生成模块,用于根据可执行文件以及各第三方动态库,生成目标程序对应的安装文件。
结合第三方面,在第三方面第一实施方式中,上述生成模块,具体用于获取可执行文件对应的默认配置文件,默认配置文件中包括可执行文件在虚拟机中运行时的默认配置项;根据可执行文件、各第三方动态库以及默认配置文件,生成目标程序对应的安装文件。
结合第三方面第一实施例,在第三方面第二实施方式中,上述生成模块,还用于获取可执行文件对应的启动控制文件,启动控制文件用于实现目标程序的开机启动,手动启动、关闭和重启功能中的至少一项;根据可执行文件、各第三方动态库、默认配置文件以及启动控制文件,生成目标程序对应的安装文件。
结合第三方面第二实施例,在第三方面第三实施方式中,上述生成模块,具体用于获取安装文件对应的目录结构;根据目录结构,分别将可执行文件、各第三方动态库、默认配置文件以及启动控制文件复制到对应的目录,生成安装文件。
结合第三方面,在第三方面第四实施方式中,上述第一获取模块,具体用于获取可执行文件对应的第三方动态库列表;根据第三方动态库列表,获取各第三方动态库。
结合第三方面,在第三方面第五实施方式中,上述安装文件生成装置还包括:
第二获取模块,用于获取安装脚本;
第二复制模块,用于将安装文件和安装脚本复制到目标文件;
第二挂载模块,用于根据目标文件,生成镜像文件,将镜像文件上传至云平台镜像服务,并将镜像文件挂载到虚拟机。
根据第四方面,本发明实施例提供了一种程序安装装置,装置包括:
第三获取模块,用于在云平台镜像服务获取目标程序对应的镜像文件,镜像文件包括目标程序对应的安装文件和安装脚本;镜像文件根据上述第一方面任一的方法生成;
第一挂载模块,用于将镜像文件挂载到文件系统;
安装模块,用于执行镜像文件中的安装脚本安装目标程序。
根据第五方面,本发明实施例提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行第一方面或者第一方面的任意一种实施方式中的安装文件生成方法以及第二方面实施方式中的程序安装方法。
根据第六方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储计算机指令,计算机指令用于使计算机执行第一方面或者第一方面的任意一种实施方式中的安装文件生成方法以及第二方面实施方式中的程序安装方法。
根据第七方面,本发明实施例提供了一种计算机程序产品,计算机程序产品包括存储在计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,使计算机执行第一方面或者第一方面的任意一种实施方式中的安装文件生成方法以及第二方面实施方式中的程序安装方法。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1示出了一个实施例中安装文件生成方法的步骤流程图;
图2示出了另一个实施例中安装文件生成方法的步骤流程图;
图3示出了另一个实施例中安装文件生成方法的步骤流程图;
图4示出了另一个实施例中安装文件生成方法的步骤流程图;
图5示出了另一个实施例中安装文件生成方法中目录结构的示意图;
图6示出了另一个实施例中安装文件生成方法的步骤流程图;
图7示出了另一个实施例中安装文件生成方法的步骤流程图;
图8示出了另一个实施例中程序安装方法的步骤流程图;
图9示出了另一个实施例中安装文件生成方法以及程序安装方法的步骤流程图;
图10示出了一个实施例中安装文件生成装置的结构框图;
图11示出了一个实施例中安装文件生成装置的结构框图;
图12示出了一个实施例中程序安装装置的结构框图;
图13示出了一个实施例计算机设备为服务器时的内部结构图;
图14示出了一个实施例计算机设备为终端时的内部结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本申请实施例提供的安装文件生成的方法,其执行主体可以是安装文件生成的装置,该安装文件生成的装置可以通过软件、硬件或者软硬件结合的方式实现成为计算机设备的部分或者全部,其中,该计算机设备可以是服务器或者终端,其中,本申请实施例中的服务器可以为一台服务器,也可以为由多台服务器组成的服务器集群,本申请实施例中的终端可以是智能手机、个人电脑、平板电脑、可穿戴设备以及智能机器人等其他智能硬件设备。下述方法实施例中,均以执行主体是计算机设备为例来进行说明。
在本申请一个实施例中,提供了一种安装文件生成方法,如图1所示,以该方法应用于计算机设备为例进行说明,包括以下内容:
101,对目标程序进行编译,生成可执行文件。
具体地,计算机设备可以接收用户输入的编译指令对目标程序进行编译,生成可执行文件。
其中,目标程序可以是qemu-ga(qemu guest agent,qemu客户机代理程序)程序,也可以是其他程序,本申请实施例对目标程序不做具体限定。
102,获取可执行文件对应的至少一个第三方动态库并确定各第三方动态库对应的查找路径。
在一种可选的实施方式中,计算机设备可以接收用户输入的可执行文件对应的至少一个第三方动态库。计算机设备还可以接收用户输入的动态库查找指令,根据接收到的动态库查找指令,查找到可执行文件对应的至少一个第三方动态库。
在一种可选的实施方式中,计算机设备在对目标程序进行编译过程中,可以接收用户输入的各第三方动态库对应的查找路径,从而确定各第三方动态库对应的查找路径。
示例性的,计算机设备在对目标程序进行编译过程中,根据用户指令在编译选项中添加“-Wl,-rpath=/usr/local/lib/qemu-ga”,从而确定各第三方动态库对应的查找路径。
103,将各第三方动态库复制到对应的查找路径。
具体地,计算机设备根据确定的各第三方动态库对应的查找路径,将获取到的各第三方动态库复制到对应的查找路径,从而保证计算机设备可以根据各第三方动态库对应的查找路径查找到各第三方动态库。
104,根据可执行文件以及各第三方动态库,生成目标程序对应的安装文件。
具体地,计算机设备可以根据编译好的可执行文件以及可执行文件对应的各第三方动态库,生成目标程序对应的安装文件。
在本申请实施例中,对目标程序进行编译,生成可执行文件,从而可以保证目标程序可以执行。在现有技术中,在linux系统中,对于第三方动态库的默认查找顺序为:1.环境变量LD_LIBRARY_PATH指定的查找路径;2.配置文件/etc/ld.so.conf中指定的路径;3默认动态库查找路径/lib;4.默认动态库查找路径/usr/lib。如果在以上路径都没有找到目标程序运行依赖的第三方动态库,那么目标程序将加载失败。而在本申请实施例中,由于获取可执行文件对应的至少一个第三方动态库并确定各第三方动态库对应的查找路径,并将各第三方动态库复制到对应的查找路径。从而可以保证根据确定的查找路径可以查找到各第三方动态库,避免了因为查找不到各第三方动态库而导致目标程序安装失败。此外,根据可执行文件以及各第三方动态库,生成目标程序对应的安装文件。当在虚拟机操作系统中安装目标程序时,通过将目标程序运行依赖的第三方动态库拷贝到编译时确定的第三方动态库的查找路径下,这样在安装完成后,运行目标程序时,操作系统便会到一个固定的查找路径下查找依赖的第三方动态库,而在安装目标程序时已经将依赖的第三方动态库拷贝到该目录下,这样便解决了目标程序找不到依赖的第三方动态库问题。此外,上述方法也避免了系统中安装多个版本的第三方动态库出现冲突,因此,上述方法中生成的安装文件适用于各种linux系统,因此适用于各种虚拟机,提供了一种目标程序对应的统一且通用的安装文件。
在本申请一个实施例中,如图2所示,上述104中的“根据可执行文件以及各第三方动态库,生成目标程序对应的安装文件”,可以包括以下内容:
201,获取可执行文件对应的默认配置文件。
其中,默认配置文件中包括可执行文件在虚拟机中运行时的默认配置项。
在一种可选的实施方式中,计算机设备可以接收用户输入的可执行文件对应的默认配置文件,计算机设备还可以接收用户输入的默认配置文件生成指令,并根据用户输入的默认配置文件生成指令,生成默认配置文件。
在另一种可选的实施方式中,计算机设备还可以接收其他设备发送的可执行文件对应的启动控制文件。
本申请实施例对计算机设备获取可执行文件对应的默认配置文件的方式不做具体限定。
示例性的,计算机设备可以根据用户指令,生成默认配置文件qemu-ga.conf,并在配置文件中设置目标程序在虚拟机中运行时的默认配置项。
202,根据可执行文件、各第三方动态库以及默认配置文件,生成目标程序对应的安装文件。
具体地,计算机设备可以将可执行文件、各第三方动态库以及默认配置文件的位置进行分配,使得可执行文件、各第三方动态库以及默认配置文件之间可以相互配合,从而生成目标程序对应的安装文件。使得生成的安装文件可以成功安装目标程序。
在本申请实施中,获取可执行文件对应的默认配置文件,根据可执行文件、各第三方动态库以及默认配置文件,生成目标程序对应的安装文件,从而可以保证生成的安装文件可以成功安装目标程序。
在本申请一个实施例中,如图3所示,上述203中的“根据可执行文件、各第三方动态库以及默认配置文件,生成目标程序对应的安装文件”,还可以包括以下内容:
301,获取可执行文件对应的启动控制文件。
其中,启动控制文件用于实现目标程序的开机启动,手动启动、关闭和重启功能中的至少一项。启动控制文件支持命令行参数start、stop、restart等。
在一种可选的实施方式中,计算机设备可以接收用户输入的执行文件对应的启动控制文件,计算机设备还可以接收用户输入的启动控制文件生成指令,并根据用户输入的启动控制文件生成指令,生成启动控制文件。
在另一种可选的实施方式中,计算机设备还可以接收其他设备发送的可执行文件对应的启动控制文件。
本申请实施例对计算机设备获取可执行文件对应的启动控制文件的方式不做具体限定。
302,根据可执行文件、各第三方动态库、默认配置文件以及启动控制文件,生成目标程序对应的安装文件。
具体地,计算机设备可以将可执行文件、各第三方动态库、默认配置文件以及启动控制文件的位置进行分配,使得可执行文件、各第三方动态库、默认配置文件以及启动控制文件之间可以相互配合,从而生成目标程序对应的安装文件。使得生成的安装文件可以成功安装目标程序。
在本申请实施例中,计算机设备获取可执行文件对应的启动控制文件,根据可执行文件、各第三方动态库、默认配置文件以及启动控制文件,生成目标程序对应的安装文件,从而可以保证生成的安装文件可以成功安装目标程序。
在本申请一个实施例中,如图4所示,上述302中的“根据可执行文件、各第三方动态库、默认配置文件以及启动控制文件,生成目标程序对应的安装文件”,可以包括以下内容:
401,获取安装文件对应的目录结构。
在一种可选的实施方式中,计算机设备可以接收用户输入的安装文件对应的目录结构,计算机设备还可以接收用户输入的指令,并根据用户输入的指令,生成安装文件对应的目录结构。
在另一种可选的实施方式中,计算机设备还可以接收其他设备发送的安装文件对应的目录结构。
本申请实施例对计算机设备获取安装文件对应的目录结构的方式不做具体限定。
402,根据目录结构,分别将可执行文件、各第三方动态库、默认配置文件以及启动控制文件复制到对应的目录,生成安装文件。
具体地,计算机设备根据目录结构,分别将可执行文件、各第三方动态库、默认配置文件以及启动控制文件复制到对应的目录,生成安装文件。
示例性的,如图5所示,以qemu-ga(qemu guest agent,qemu客户机代理程序)程序为例,bin目录下为可执行文件,lib目录下为各第三方动态库;/etc/qemu-kvm目录下为默认配置文件;/etc/init.d目录下为启动控制文件。
在一种可选的实施方式中,计算机设备可以调用压缩命令将安装文件压缩为压缩包。示例性的,计算机设备可以调用tar命令将安装文件压缩为tar.gz格式压缩包。
在本申请实施例中,获取安装文件对应的目录结构,根据目录结构,分别将可执行文件、各第三方动态库、默认配置文件以及启动控制文件复制到对应的目录,生成安装文件。从而可以保证安装文件中包括的各部分文件在指定的位置,避免各文件位置错误,影响目标程序的安装。
在本申请一个实施例中,如图6所示,上述102中的“获取可执行文件对应的至少一个第三方动态库”可以包括以下内容:
601,获取可执行文件对应的第三方动态库列表。
具体地,计算机设备可以通过系统自带地二进制文件查看工具查看可执行文件所依赖地第三方动态库列表。其中,系统自带地二进制文件查看工具可以通过ldd命令调用。
602,根据第三方动态库列表,获取各第三方动态库。
具体地,计算机设备对第三方动态库列表进行识别,通过获取到的第三方动态库列表,获取各第三方动态库。
在本申请实施例中,计算机设备获取可执行文件对应的第三方动态库列表,并根据第三方动态库列表,获取各第三方动态库,从而可以保证获取到的各第三方动态库的准确性。避免因为第三方动态库出现问题,而造成目标程序安装失败。
在本申请一个实施例中,如图7所示,上述安装文件生成方法还可以包括以下内容:
701,获取安装脚本。
在一种可选的实施方式中,计算机设备可以接收用户输入的安装脚本,计算机设备还可以接收用户输入的安装脚本生成指令,并根据用户输入的安装脚本生成指令,生成安装脚本。
在另一种可选的实施方式中,计算机设备还可以接收其他设备发送的安装脚本。
本申请实施例对计算机设备获取安装脚本的方式不做具体限定。
702,将安装文件和安装脚本复制到目标文件。
具体地,计算机设备将安装文件和安装脚本复制到目标文件中,然后对利用压缩工具对目标文件进行压缩,从而生成压缩文件。
703,根据目标文件,生成镜像文件,将镜像文件上传至云平台镜像服务,并将镜像文件挂载到虚拟机。
具体地,计算机设备接收用户输入的genisoimage命令,基于genisoimage命令,将目标文件生成iso镜像文件。然后计算机设备将iso镜像文件上传至OpenStack云平台镜像服务,并将iso镜像文件挂载到虚拟机。
在本申请实施例中,由于获取安装脚本,并将安装文件和安装脚本复制到目标文件。从而使得获取到目标文件的虚拟机可以根据目标文件中包括的安装脚本安装目标程序,实现了目标程序的安装。此外,根据目标文件,生成镜像文件,将镜像文件上传至云平台镜像服务,并将镜像文件挂载到虚拟机。从而可以保证各种计算机设备均可以将镜像文件挂载到文件系统,然后通过获取到的镜像文件安装目标程序。从而实现了使得生成的安装文件适用于各种虚拟机,即提供了一种通用的、统一的安装文件,为提供一种通用的统一的程序安装方法提供了保障。
在本申请实施例中,为了提供一种虚拟机安装程序的通用方法,基于上述生成的目标压缩包,本申请实施例提供一种程序安装方法。
需要说明的是,本申请实施例提供的程序安装的方法,其执行主体可以是程序安装的装置,该程序安装的装置可以通过软件、硬件或者软硬件结合的方式实现成为计算机设备的部分或者全部,其中,该计算机设备可以是服务器或者终端,其中,本申请实施例中的服务器可以为一台服务器,也可以为由多台服务器组成的服务器集群,本申请实施例中的终端可以是智能手机、个人电脑、平板电脑、可穿戴设备以及智能机器人等其他智能硬件设备。下述方法实施例中,均以执行主体是计算机设备为例来进行说明。
在本申请一个实施例中,提供了一种程序安装方法,如图8所示,以该方法应用于计算机设备为例进行说明,包括以下内容:
801,在云平台镜像服务获取目标程序对应的镜像文件。
镜像文件包括目标程序对应的安装文件和安装脚本;镜像文件可以根据上述安装文件生成方法中的任一实施例生成。
具体地,计算机设备可以登录虚拟机操作系统,在云平台镜像服务获取目标程序对应的镜像文件。
802,将镜像文件挂载到文件系统。
具体地,计算机设备将挂载云平台镜像服务的镜像文件挂载到虚拟机的文件系统
803,执行镜像文件中的安装脚本安装目标程序。
具体地,计算机设备执行镜像文件中的安装脚本安装目标程序。
在本申请实施例中,计算机设备在云平台镜像服务获取目标程序对应的镜像文件,并将镜像文件挂载到文件系统,然后执行镜像文件中的安装脚本安装目标程序。从而可以将完成安装目标程序。上述方法中的镜像文件适用于各种虚拟机,因此,各种虚拟机都可以通过上述方法挂载镜像文件,并执行镜像文件中的安装脚本安装目标程序。因此,上述方法提供了一种统一且通用的程序安装方法。
为了更好的解释本申请实施例提供的安装文件生成方法以及程序安装方法,如图9所示,本申请实施例提供了一种安装文件生成方法以及程序安装方法的整体流程图,可以包括如下内容:
901,对目标程序进行编译,生成可执行文件。
902,获取可执行文件对应的第三方动态库列表。
903,根据第三方动态库列表,获取各第三方动态库。
904,确定各第三方动态库对应的查找路径。
905,将各第三方动态库复制到对应的查找路径。
906,获取可执行文件对应的默认配置文件。
907,获取可执行文件对应的启动控制文件。
908,获取安装文件对应的目录结构。
909,根据目录结构,分别将可执行文件、各第三方动态库、默认配置文件以及启动控制文件复制到对应的目录,生成安装文件。
910,获取安装脚本。
911,将安装文件和安装脚本复制到目标文件。
912,根据目标文件,生成镜像文件,将镜像文件上传至云平台镜像服务,并将镜像文件挂载到虚拟机。
913,在云平台镜像服务获取目标程序对应的镜像文件。
914,将镜像文件挂载到文件系统。
915,执行镜像文件中的安装脚本安装目标程序。
应该理解的是,虽然图1-4以及6-9的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-4以及6-9中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
相应地,请参考图10,本发明实施例提供一种安装文件生成装置1000,上述安装文件生成装置1000,包括:编译模块1010、第一获取模块1020、复制模块1030以及生成模块1040,其中:
编译模块1010,用于对目标程序进行编译,生成可执行文件。
第一获取模块1020,用于获取可执行文件对应的至少一个第三方动态库,并在编译过程中指定各第三方动态库的查找路径。
第一复制模块1030,用于将各第三方动态库复制到对应的查找路径;
生成模块1040,用于根据可执行文件以及各第三方动态库,生成目标程序对应的安装文件。
在本申请一个实施例中,上述生成模块1040,具体用于获取可执行文件对应的默认配置文件,默认配置文件中包括可执行文件在虚拟机中运行时的默认配置项;根据可执行文件、各第三方动态库以及默认配置文件,生成目标程序对应的安装文件。
在本申请一个实施例中,上述生成模块1040,还用于获取可执行文件对应的启动控制文件,启动控制文件用于实现目标程序的开机启动,手动启动、关闭和重启功能中的至少一项;根据可执行文件、各第三方动态库、默认配置文件以及启动控制文件,生成目标程序对应的安装文件。
在本申请一个实施例中,上述生成模块1040,具体用于获取安装文件对应的目录结构;根据目录结构,分别将可执行文件、各第三方动态库、默认配置文件以及启动控制文件复制到对应的目录,生成安装文件。
在本申请一个实施例中,上述第一获取模块1020,具体用于获取可执行文件对应的第三方动态库列表;根据第三方动态库列表,获取各第三方动态库。
在本申请一个实施例中,如图11所示,上述安装文件生成装置1000还包括:第二获取模块1050、第二复制模块1060以及第二挂载模块1070,其中:
第二获取模块1050,用于获取安装脚本。
第二复制模块1060,用于将安装文件和安装脚本复制到目标文件。
第二挂载模块1070,用于根据目标文件,生成镜像文件,将镜像文件上传至云平台镜像服务,并将镜像文件挂载到虚拟机。
在本申请一个实施例中,如图12所示,提供了一种程序安装装置1200,上述程序安装装置1200包括:第三获取模块1210、第一挂载模块1220以及安装模块1230,其中:
第三获取模块1210,用于在云平台镜像服务获取目标程序对应的镜像文件,镜像文件包括目标程序对应的安装文件和安装脚本;镜像文件根据上述安装文件生成方法中任一的方法生成。
第一挂载模块1220,用于将镜像文件挂载到文件系统。
安装模块1230,用于执行镜像文件中的安装脚本安装目标程序。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图13所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种安装文件生成方法以及程序安装方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图14所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储安装文件生成以及目标程序安装数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种安装文件生成方法以及程序安装方法。
本领域技术人员可以理解,图13和14中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在本申请一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取可执行文件对应的至少一个第三方动态库并确定各第三方动态库对应的查找路径;将各第三方动态库复制到对应的查找路径;根据可执行文件以及各第三方动态库,生成目标程序对应的安装文件。
在本申请一个实施例中,处理器执行计算机程序时还实现以下步骤:获取可执行文件对应的默认配置文件,默认配置文件中包括可执行文件在虚拟机中运行时的默认配置项;根据可执行文件、各第三方动态库以及默认配置文件,生成目标程序对应的安装文件。
在本申请一个实施例中,处理器执行计算机程序时还实现以下步骤:获取可执行文件对应的启动控制文件,启动控制文件用于实现目标程序的开机启动,手动启动、关闭和重启功能中的至少一项;根据可执行文件、各第三方动态库、默认配置文件以及启动控制文件,生成目标程序对应的安装文件。
在本申请一个实施例中,处理器执行计算机程序时还实现以下步骤:获取安装文件对应的目录结构;根据目录结构,分别将可执行文件、各第三方动态库、默认配置文件以及启动控制文件复制到对应的目录,生成安装文件。
在本申请一个实施例中,处理器执行计算机程序时还实现以下步骤:获取可执行文件对应的第三方动态库列表;根据第三方动态库列表,获取各第三方动态库。
在本申请一个实施例中,处理器执行计算机程序时还实现以下步骤:获取安装脚本;将安装文件和安装脚本复制到目标文件;根据目标文件,生成镜像文件,将镜像文件上传至云平台镜像服务,并将镜像文件挂载到虚拟机。
在本申请一个实施例中,处理器执行计算机程序时还实现以下步骤:在云平台镜像服务获取目标程序对应的镜像文件,镜像文件包括目标程序对应的安装文件和安装脚本;镜像文件根据第一方面任一的方法生成;将镜像文件挂载到文件系统;执行镜像文件中的安装脚本安装目标程序。
在本申请一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取可执行文件对应的至少一个第三方动态库并确定各第三方动态库对应的查找路径;将各第三方动态库复制到对应的查找路径;根据可执行文件以及各第三方动态库,生成目标程序对应的安装文件。
在本申请一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取可执行文件对应的默认配置文件,默认配置文件中包括可执行文件在虚拟机中运行时的默认配置项;根据可执行文件、各第三方动态库以及默认配置文件,生成目标程序对应的安装文件。
在本申请一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取可执行文件对应的启动控制文件,启动控制文件用于实现目标程序的开机启动,手动启动、关闭和重启功能中的至少一项;根据可执行文件、各第三方动态库、默认配置文件以及启动控制文件,生成目标程序对应的安装文件。
在本申请一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取安装文件对应的目录结构;根据目录结构,分别将可执行文件、各第三方动态库、默认配置文件以及启动控制文件复制到对应的目录,生成安装文件。
在本申请一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取可执行文件对应的第三方动态库列表;根据第三方动态库列表,获取各第三方动态库。
在本申请一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取安装脚本;将安装文件和安装脚本复制到目标文件;根据目标文件,生成镜像文件,将镜像文件上传至云平台镜像服务,并将镜像文件挂载到虚拟机。
在本申请一个实施例中,计算机程序被处理器执行时还实现以下步骤:在云平台镜像服务获取目标程序对应的镜像文件,镜像文件包括目标程序对应的安装文件和安装脚本;镜像文件根据第一方面任一的方法生成;将镜像文件挂载到文件系统;执行镜像文件中的安装脚本安装目标程序。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random AccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (11)
1.一种安装文件生成方法,其特征在于,所述方法包括:
对目标程序进行编译,生成可执行文件;
获取所述可执行文件对应的至少一个第三方动态库并确定各所述第三方动态库对应的查找路径;
将各所述第三方动态库复制到对应的查找路径;
根据所述可执行文件以及各所述第三方动态库,生成所述目标程序对应的安装文件。
2.根据权利要求1所述的方法,其特征在于,所述根据所述可执行文件以及各所述第三方动态库,生成所述目标程序对应的安装文件,包括:
获取所述可执行文件对应的默认配置文件,所述默认配置文件中包括所述可执行文件在虚拟机中运行时的默认配置项;
根据所述可执行文件、各所述第三方动态库以及所述默认配置文件,生成所述目标程序对应的安装文件。
3.根据权利要求2所述的方法,其特征在于,所述根据所述可执行文件、各所述第三方动态库以及所述默认配置文件,生成所述目标程序对应的安装文件,还包括:
获取所述可执行文件对应的启动控制文件,所述启动控制文件用于实现所述目标程序的开机启动,手动启动、关闭和重启功能中的至少一项;
根据所述可执行文件、各所述第三方动态库、所述默认配置文件以及所述启动控制文件,生成所述目标程序对应的安装文件。
4.根据权利要求3所述的方法,其特征在于,所述根据所述可执行文件、各所述第三方动态库、所述默认配置文件以及所述启动控制文件,生成所述目标程序对应的安装文件,包括:
获取所述安装文件对应的目录结构;
根据所述目录结构,分别将所述可执行文件、各所述第三方动态库、所述默认配置文件以及所述启动控制文件复制到对应的目录,生成所述安装文件。
5.根据权利要求1所述的方法,其特征在于,所述获取所述可执行文件对应的至少一个第三方动态库,包括:
获取所述可执行文件对应的第三方动态库列表;
根据所述第三方动态库列表,获取各所述第三方动态库。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取安装脚本;
将所述安装文件和所述安装脚本复制到目标文件;
根据所述目标文件,生成镜像文件,将所述镜像文件上传至云平台镜像服务,并将所述镜像文件挂载到虚拟机。
7.一种程序安装方法,其特征在于,所述方法包括:
在云平台镜像服务获取目标程序对应的镜像文件,所述镜像文件包括所述目标程序对应的安装文件和安装脚本;所述镜像文件根据权利要求1-6任一所述的方法生成;
将所述镜像文件挂载到文件系统;
执行所述镜像文件中的所述安装脚本安装所述目标程序。
8.一种安装文件生成装置,其特征在于,所述装置包括:
编译模块,用于对目标程序进行编译,生成可执行文件;
第一获取模块,用于获取所述可执行文件对应的至少一个第三方动态库,并在编译过程中指定各所述第三方动态库的查找路径;
第一复制模块,用于将各所述第三方动态库复制到对应的查找路径;
生成模块,用于根据所述可执行文件以及各所述第三方动态库,生成所述目标程序对应的安装文件。
9.一种程序安装装置,其特征在于,所述装置包括:
第三获取模块,用于在云平台镜像服务获取目标程序对应的镜像文件,所述镜像文件包括所述目标程序对应的安装文件和安装脚本;所述镜像文件根据权利要求1-6任一所述的方法生成;
第一挂载模块,用于将所述镜像文件挂载到文件系统;
安装模块,用于执行所述镜像文件中的所述安装脚本安装所述目标程序。
10.一种计算机设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-6中任一项所述的安装文件生成方法以及权利要求7所述的程序安装方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行权利要求1-6中任一项所述的安装文件生成方法以及权利要求7所述的程序安装方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111285540.5A CN113741922A (zh) | 2021-11-02 | 2021-11-02 | 安装文件生成和程序安装方法、装置、计算机设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111285540.5A CN113741922A (zh) | 2021-11-02 | 2021-11-02 | 安装文件生成和程序安装方法、装置、计算机设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113741922A true CN113741922A (zh) | 2021-12-03 |
Family
ID=78727171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111285540.5A Pending CN113741922A (zh) | 2021-11-02 | 2021-11-02 | 安装文件生成和程序安装方法、装置、计算机设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113741922A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120144385A1 (en) * | 2010-12-02 | 2012-06-07 | International Business Machines Corporation | System, method and program product to manage installation of programs |
CN104714788A (zh) * | 2013-12-12 | 2015-06-17 | 腾讯科技(深圳)有限公司 | 一种软件安装包自动生成的方法及装置 |
CN112379940A (zh) * | 2020-11-11 | 2021-02-19 | 歌尔科技有限公司 | 一种可执行文件处理方法、装置、电子设备及存储介质 |
-
2021
- 2021-11-02 CN CN202111285540.5A patent/CN113741922A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120144385A1 (en) * | 2010-12-02 | 2012-06-07 | International Business Machines Corporation | System, method and program product to manage installation of programs |
CN104714788A (zh) * | 2013-12-12 | 2015-06-17 | 腾讯科技(深圳)有限公司 | 一种软件安装包自动生成的方法及装置 |
CN112379940A (zh) * | 2020-11-11 | 2021-02-19 | 歌尔科技有限公司 | 一种可执行文件处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8914785B2 (en) | Providing virtual appliance system firmware images | |
CN108847950B (zh) | 电子装置、云系统软件自动部署方法及存储介质 | |
CN110866198B (zh) | 静态资源缓存方法、系统、装置、计算机设备和存储介质 | |
CN108733553B (zh) | 基于docker的测试装置的配置方法、装置和系统 | |
US20150301842A1 (en) | Determining optimal methods for creating virtual machines | |
CN111984280A (zh) | 容器兼容、升级方法、装置、设备及存储介质 | |
CN116048644B (zh) | 一种系统迁移方法、装置和可读存储介质 | |
CN110968343A (zh) | 资源文件的配置方法、配置装置、冰箱以及可读存储介质 | |
CN105867962A (zh) | 系统升级的方法和装置 | |
CN110825419A (zh) | 一种固件刷新方法、装置及电子设备和存储介质 | |
US9411618B2 (en) | Metadata-based class loading using a content repository | |
CN111708548A (zh) | 软件安装方法、装置、设备及存储介质 | |
CN106293790B (zh) | 基于Firefox操作系统的应用程序升级方法和装置 | |
US9841982B2 (en) | Locating import class files at alternate locations than specified in classpath information | |
US10552135B1 (en) | Reducing a size of an application package | |
US20240168730A1 (en) | Systems and methods for remotebuild action-merging | |
CN113741922A (zh) | 安装文件生成和程序安装方法、装置、计算机设备及介质 | |
CN108536444B (zh) | 插件编译方法、装置、计算机设备和存储介质 | |
CN107783837B (zh) | 一种进行存储扩展的方法、装置及电子设备 | |
CN112379973B (zh) | 重载方法和装置 | |
CN115586872A (zh) | 一种容器镜像管理方法、装置、设备及存储介质 | |
CN113010179B (zh) | 基于实时操作系统的独立应用的运行方法 | |
CN112416698B (zh) | 监控系统的扩展方法及装置、存储介质及电子设备 | |
CN112379943A (zh) | Electron应用程序的插件应用方法及装置、存储介质 | |
CN110673869A (zh) | 库文件的加载方法、装置及系统 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211203 |