CN113076109B - 一种跨平台的部署脚本语言的方法 - Google Patents

一种跨平台的部署脚本语言的方法 Download PDF

Info

Publication number
CN113076109B
CN113076109B CN202110376918.6A CN202110376918A CN113076109B CN 113076109 B CN113076109 B CN 113076109B CN 202110376918 A CN202110376918 A CN 202110376918A CN 113076109 B CN113076109 B CN 113076109B
Authority
CN
China
Prior art keywords
file
library
language
dependency
engineering
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
Application number
CN202110376918.6A
Other languages
English (en)
Other versions
CN113076109A (zh
Inventor
张达彬
范渊
吴永越
郑学新
刘韬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu DBAPPSecurity Co Ltd
Original Assignee
Chengdu DBAPPSecurity Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu DBAPPSecurity Co Ltd filed Critical Chengdu DBAPPSecurity Co Ltd
Priority to CN202110376918.6A priority Critical patent/CN113076109B/zh
Publication of CN113076109A publication Critical patent/CN113076109A/zh
Application granted granted Critical
Publication of CN113076109B publication Critical patent/CN113076109B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提出了一种跨平台的部署脚本语言的方法,首先将待部署的脚本语言工程拷贝到构建环境中,然后在构建环境中对待部署的脚本语言工程的依赖进行分析并拷贝依赖项,接着将脚本语言工程的工程文件以及依赖项放入到一个目录中;然后生成目录内容的元信息文件以及可执行的bootstrap文件,并将目录、元信息文件和bootstrap文件压缩为单文件可执行程序;最后将单文件可执行程序部署到运行环境中进行执行。本发明解决了在单环境运行时依赖隔离的问题,并减少了系统管理员对依赖库的管理,本方法与现有技术相比,占用了更少的系统资源和磁盘资源,只需要fuse库和压缩库,无需其他依赖,即可运行各种脚本语言程序,且可以在资源相对较少的设备或嵌入式设备中运行。

Description

一种跨平台的部署脚本语言的方法
技术领域
本发明属于计算机脚本语言部署技术领域,具体地说,涉及一种跨平台的部署脚本语言的方法。
背景技术
在一个计算机网络里中有各类操作系统,类Unix和windows等,为多种脚本语言安装依赖的系统库,部署配置,繁琐而容易出错。网络单节点上运行的脚本语言程序可能是不同版本,类如ruby有ruby2与ruby1,python有2与3,其差异较大,有时候因为依赖的系统库版本冲突无法共存在一个单节点上,虚拟机或者容器能解决这种隔离问题,但网络有的节点的资源有限,无法安装虚拟机,管理集群内大量虚拟机也增加了系统的复杂性;有的节点是嵌入式设备,使用容器,资源消耗将会很多甚至由于资源过少无法运行容器服务;而把不同版本的脚本语言放在不同容器中以获得隔离性,会引入容器编排服务,这增加了开发与部署的复杂性。
目前的一些脚本软件单文件应用程序运行时将自身解压到一个临时目录,运行多次就可能产生大量的临时文件,这种方式既占用了系统空间,同时也无效率。容器和虚拟机不适合资源有限的情况,占用内存大。使用容器隔离不同版本的脚本语言,但镜像重用的力度不够细,比较类似的镜像会存在重复的文件在磁盘上,占用了额外的空间。
术语解释:
Fuse:用户空间文件系统(Filesystem in Userspace)它使无特权的用户能够无需编辑内核代码而创建自己的文件系统。
压缩算法:在计算机科学中,可以对数据进行压缩,常见的例子是ZIP文件格式,此格式不仅仅提供压缩功能,还可作为归档工具(Archiver)。
脚本语言:是为了缩短传统的「编写、编译、链接、运行」(edit-compile-link-run)过程而创建的计算机编程语言。通常是解释运行而非编译。
依赖库:是为了增强灵活性的共享程序库,一个共享程序库就是一个共享函数库,应用程序可以在运行时连接到该程序库,而不是在编译时连接。在Windows中,共享程序库被称为动态链接库;在Mac OS X系统中,称为framework;在Linux中称为共享目标。
发明内容
本发明针对现有技术资源消耗过大、系统复杂性高、空间被重复文件无效占用等缺点,提出了一种跨平台的部署脚本语言的方法,本方法为只要支持fuse就可对脚本文件进行部署的方法,解决了在单环境运行时依赖隔离的问题,并减少了系统管理员对依赖库的管理,本方法与现有技术相比,占用了更少的系统资源和磁盘资源,只需要fuse库和压缩库,无需其他依赖,即可运行各种脚本语言程序,且可以在资源相对较少的设备或嵌入式设备中运行。
本发明具体实现内容如下:
本发明提出了一种跨平台的部署脚本语言的方法,首先将待部署的脚本语言工程拷贝到构建环境中,然后在构建环境中对待部署的脚本语言工程的依赖进行分析并拷贝依赖项,接着将脚本语言工程的工程文件以及依赖项放入到一个目录中;然后生成目录内容的元信息文件以及可执行的bootstrap文件,并将目录、元信息文件和bootstrap文件压缩为单文件可执行程序;最后将单文件可执行程序部署到运行环境中进行执行。
为了更好地实现本发明,进一步地,首先根据元信息文件和bootstrap文件解压单文件可执行程序的内容,并将目录挂载到fuse用户文件系统中,然后执行单文件可执行程序的程序入口,实现程序的运行。
为了更好地实现本发明,进一步地,在将待部署的脚本语言工程拷贝到构建环境后,需要判断是否有包管理器配置文件,若有包管理器配置文件,则根据包管理器配置文件分析库依赖得到语言级别的库依赖信息;若没有包管理器配置文件,则找出脚本语言工程中所有脚本文件的库依赖,从而得到语言级别的库依赖信息。
为了更好地实现本发明,进一步地,在得到语言级别的库依赖信息后,进一步判断是否有缓存的情况;设置本地缓存模块,若有缓存的情况,则通过本地缓存模块拷贝语言级别的库依赖信息的依赖项到语言级别的依赖库目录中;若无缓存的情况,则下载脚本语言包管理器远程仓库,然后存入本地缓存模块中,然后拷贝语言级别的库依赖信息的依赖项,并放到语言级别的依赖库目录中。
为了更好地实现本发明,进一步地,设置依赖项目录,在将待部署的脚本语言工程拷贝到构建环境中后,还需要安装脚步语言解释器及其直接依赖库,同时还要安装系统级别依赖库目录,然后将脚本语言解释器及其直接依赖库、系统级别依赖库目录和语言级别的依赖库目录中的文件拷贝到依赖项目录中,并压缩为单文件可执行程序。
为了更好地实现本发明,进一步地,所述单文件可执行程序的压缩制作过程为:首先根据依赖项目录生成元信息文件,然后将bootstrap文件、元信息文件、工程文件、依赖项目录一起压缩为单文件可执行程序。
为了更好地实现本发明,进一步地,在fuse用户文件系统中建立私有依赖项目录和公共依赖库目录,将单文件可执行程序中的bootstrap文件解压后分别fuse挂载到私有依赖项目录和公共依赖库目录;
所述私有依赖项目录包括两个子目录,分别为会与其他工程版本冲突的系统级别的库子目录、会与其他工程版本冲突的语言级别的依赖库子目录;
所述公共依赖库目录包括三个子目录,分别为脚本语言解释器以及直接依赖项子目录、可与其他工程共享的系统级别的库子目录、可与其他工程共享的语言级别的依赖库子目录。
为了更好地实现本发明,进一步地,还要将单文件可执行程序中的bootstrap文件解压后fuse挂载到脚本语言工程的工程文件中,并通过工程文件中的运行程序入口进行执行。
本发明与现有技术相比具有以下优点:
本方法为只要支持fuse就可对脚本文件进行部署的方法,解决了在单环境运行时依赖隔离的问题,并减少了系统管理员对依赖库的管理,本方法与现有技术相比,占用了更少的系统资源和磁盘资源,只需要fuse库和压缩库,无需其他依赖,即可运行各种脚本语言程序,且可以在资源相对较少的设备或嵌入式设备中运行。
附图说明
图1为本发明整体流程示意图;
图2为本发明脚本语言的依赖构建的流程示意图;
图3为本发明单文件可执行程序文件的制作流程示意图;
图4为本发明单文件可执行程序的执行流程示意图。
具体实施方式
为了更清楚地说明本发明实施例的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,应当理解,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例,因此不应被看作是对保护范围的限定。基于本发明中的实施例,本领域普通技术工作人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“设置”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;也可以是直接相连,也可以是通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
实施例1:
本实施例提出了一种跨平台的部署脚本语言的方法,如图1所示,首先将待部署的脚本语言工程拷贝到构建环境中,然后在构建环境中对待部署的脚本语言工程的依赖进行分析并拷贝依赖项,接着将脚本语言工程的工程文件以及依赖项放入到一个目录中;然后生成目录内容的元信息文件以及可执行的bootstrap文件,并将目录、元信息文件和bootstrap文件压缩为单文件可执行程序;最后将单文件可执行程序部署到运行环境中进行执行。
为了更好地实现本发明,进一步地,首先根据元信息文件和bootstrap文件解压单文件可执行程序的内容,并将目录挂载到fuse用户文件系统中,然后执行单文件可执行程序的程序入口,实现程序的运行。
工作原理:将一个脚本语言工程拷贝到构建环境,在这个环境里分析完这个工程的依赖,把工程文件以及所需依赖项放入一个目录,生成记录这个目录内容的元信息文件以及可执行的bootstrap文件,随后将目录,元信息文件,bootstrap文件压缩为为单文件可执行程序。最后把这个单文件可执行程序部署到运行环境中并执行,bootstrap文件这时会根据元信息解压单文件内容并用fuse将目录挂载到系统里,并执行目录里的脚本程序入口。
实施例2:
本实施例在上述实施例1的基础上,为了更好地实现本发明,进一步地,如图2所示,在将待部署的脚本语言工程拷贝到构建环境后,需要判断是否有包管理器配置文件,若有包管理器配置文件,则根据包管理器配置文件分析库依赖得到语言级别的库依赖信息;若没有包管理器配置文件,则找出脚本语言工程中所有脚本文件的库依赖,从而得到语言级别的库依赖信息。
进一步地,在得到语言级别的库依赖信息后,进一步判断是否有缓存的情况;设置本地缓存模块,若有缓存的情况,则通过本地缓存模块拷贝语言级别的库依赖信息的依赖项到语言级别的依赖库目录中;若无缓存的情况,则下载脚本语言包管理器远程仓库,然后存入本地缓存模块中,然后拷贝语言级别的库依赖信息的依赖项,并放到语言级别的依赖库目录中。
进一步地,设置依赖项目录,在将待部署的脚本语言工程拷贝到构建环境中后,还需要安装脚步语言解释器及其直接依赖库,同时还要安装系统级别依赖库目录,然后将脚本语言解释器及其直接依赖库、系统级别依赖库目录和语言级别的依赖库目录中的文件拷贝到依赖项目录中,并压缩为单文件可执行程序。
工作原理:我们需要在一步把把脚本应用程序自身的脚本和所有的依赖放入指定文件夹。这里的文件夹有三类,一类包含的是解释器及其直接依赖库,二类是语言库,三类是系统库。我们需要把相应的文件拷贝到对应的文件夹,最终把这些文件夹压缩成一个单文件。
首先需要对特定应用应用程序搭建一个构建环境,这个构建环境需要与想部署的环境需要用一致的操作系统,并装上完整脚本语言的运行时:解释器,语言库,系统库。需要有网络,以便下载各类脚本语言的包管理器远程仓库,同时需要有一个本地缓存模块。
某个脚本语言应用程序的工程, 依赖为工程自身的若干个文本文件,还有语言级别的模块库,还有系统级别的库,这两种库可能是二进制的也可能是文本文件:
1. 解释器以及直接依赖库:例如ruby解释器以及其依赖的动态链接库。
2. 语言级别的库:如果一个脚本语言的工程,有包管理器,可以分析其包管理器的依赖配置文件,举例如python有setup.py,Nodejs有package.json, 包管理器正是靠这些配置文件去获取依赖项。在这种情况下,分析完依赖文件后,即可获取依赖项列表。首先在本地缓存模块无法找到相应的依赖包,如果无法找到即从本地环境里寻找,或从远程仓库获取,并将包放入本地缓存模块;对未使用包管理器的工程,我们需要分析工程里的每一个脚本,分析导入库的语句,找出其依赖的库,后续操作与有包管理器的情况一致。
3. 系统级别的库:系统级别的库大多是二进制的库,例如openssl库,需要从当前系统里找到脚本语言程序所依赖的相应版本的系统库。
我们需要把这三类文件分类别拷贝到依赖包目录进行打包,以便在后续进行程序包制作。
本实施例的其他部分与上述实施例1相同,故不再赘述。
实施例3:
本实施例在上述实施例1-2任一项的基础上,为了更好地实现本发明,进一步地,如图3所示,所述单文件可执行程序的压缩制作过程为:首先根据依赖项目录生成元信息文件,然后将bootstrap文件、元信息文件、工程文件、依赖项目录一起压缩为单文件可执行程序。
本实施例的其他部分与上述实施例1-2任一项相同,故不再赘述。
实施例4:
本实施例在上述实施例1-3任一项的基础上,为了更好地实现本发明,进一步地,如图4所示,在fuse用户文件系统中建立私有依赖项目录和公共依赖库目录,将单文件可执行程序中的bootstrap文件解压后分别fuse挂载到私有依赖项目录和公共依赖库目录;
所述私有依赖项目录包括两个子目录,分别为会与其他工程版本冲突的系统级别的库子目录、会与其他工程版本冲突的语言级别的依赖库子目录;
所述公共依赖库目录包括三个子目录,分别为脚本语言解释器以及直接依赖项子目录、可与其他工程共享的系统级别的库子目录、可与其他工程共享的语言级别的依赖库子目录。
进一步地,还要将单文件可执行程序中的bootstrap文件解压后fuse挂载到脚本语言工程的工程文件中,并通过工程文件中的运行程序入口进行执行。
工作原理:本方法的打包出来的单文件程序,在程序初次运行时,会用到fuse(用户空间文件系统),将单文件解压缩出来,在系统上挂载一个目录。考虑到效率,可以选用Zstandard之类的压缩算法,压缩与解压都比较快速,压缩比也比普通的zlib高。
要实现目的,我们需要将上述实施例中的的依赖目录进行汇总,并生成元信息文件,记录它们的文件名,类别,文件路径,hash值,压缩算法。然后我们需要生成一个bootstrap文件,这个文件为可执行文件,需要在运行单文件程序时执行,它会通过元信息文件解压打包的目录,并将相应子文件夹以只读的方式挂载到对应目录。同时bootstrap文件还需要记录脚本语言的运行入口文件,在将目录挂载以后,将相应的入口文件执行。执行时,需要根据不同解释器的类别,添加相应的依赖库环境变量或者解释器参数,对应挂载的目录,这样脚本应用程序才能找寻到所有的依赖,正常的运行。例如一个nodejs脚本程序,我们将它的解释器以及直接依赖挂载到 /dev/shm/app1/node/11/ 目录,系统级别的依赖的库挂载到/dev/shm/common/system目录,语言级别的依赖的库挂载到/dev/shm/common/node_modules/目录,程序文件夹挂载到/dev/shm/app1/scripts/目录,
启动时我们加上相应的环境变量,运行主程序入口:
export LD_LIBRARY_PATH=/dev/shm/common/system:$LD_LIBRARY_PATH
export NODE_PATH=/dev/shm/common/node_modules/
/dev/shm/app1/node/11/node /dev/shm/app1/scripts/main.js
最后我们把boostrap文件,元信息文件,解释器以及依赖的文件夹压缩成一个单文件,为最终形态的可执行程序。bootstrap文件在这个可执行程序的头部。
上文说的解压过程,挂载的目录的过程会消耗一些系统资源,消耗内存和cpu,如果多个应用程序依赖的文件近似,这样解压的一些文件就会重复,这是不必要的。可以在挂载的时候把前述实施例所描述的系统级别的库和语言级别的库在版本不冲突的情况下挂载到一个公共的目录,这样各个应用程序在一台计算机运行时就能在这个公共的目录找寻它所需要的库,同时自身独有的库是在单独的目录。这样减少了系统资源消耗。
本实施例的其他部分与上述实施例1-3任一项相同,故不再赘述。
以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。

Claims (5)

1.一种跨平台的部署脚本语言的方法,其特征在于,首先将待部署的脚本语言工程拷贝到构建环境中,然后在构建环境中对待部署的脚本语言工程的依赖进行分析并拷贝依赖项,接着将脚本语言工程的工程文件以及依赖项放入到一个目录中;然后生成目录内容的元信息文件以及可执行的bootstrap文件,并将目录、元信息文件和bootstrap文件压缩为单文件可执行程序;最后将单文件可执行程序部署到运行环境中进行执行;
在将待部署的脚本语言工程拷贝到构建环境后,需要判断是否有包管理器配置文件,若有包管理器配置文件,则根据包管理器配置文件分析库依赖得到语言级别的库依赖信息;若没有包管理器配置文件,则找出脚本语言工程中所有脚本文件的库依赖,从而得到语言级别的库依赖信息;
在得到语言级别的库依赖信息后,进一步判断是否有缓存的情况;设置本地缓存模块,若有缓存的情况,则通过本地缓存模块拷贝语言级别的库依赖信息的依赖项到语言级别的依赖库目录中;若无缓存的情况,则下载脚本语言包管理器远程仓库,然后存入本地缓存模块中,然后拷贝语言级别的库依赖信息的依赖项,并放到语言级别的依赖库目录中;
设置依赖项目录,在将待部署的脚本语言工程拷贝到构建环境中后,还需要安装脚步语言解释器及其直接依赖库,同时还要安装系统级别依赖库目录,然后将脚本语言解释器及其直接依赖库、系统级别依赖库目录和语言级别的依赖库目录中的文件拷贝到依赖项目录中,并压缩为单文件可执行程序;
在fuse用户文件系统中建立私有依赖项目录和公共依赖库目录,将单文件可执行程序中的bootstrap文件解压后分别fuse挂载到私有依赖项目录和公共依赖库目录。
2.如权利要求1所述的一种跨平台的部署脚本语言的方法,其特征在于,在将单文件可执行程序部署到运行环境中进行执行的具体步骤为:
首先根据元信息文件和bootstrap文件解压单文件可执行程序的内容,并将目录挂载到fuse用户文件系统中,然后执行单文件可执行程序的程序入口,实现程序的运行。
3.如权利要求1所述的一种跨平台的部署脚本语言的方法,其特征在于,所述单文件可执行程序的压缩制作过程为:首先根据依赖项目录生成元信息文件,然后将bootstrap文件、元信息文件、工程文件、依赖项目录一起压缩为单文件可执行程序。
4.如权利要求1所述的一种跨平台的部署脚本语言的方法,其特征在于,
所述私有依赖项目录包括两个子目录,分别为会与其他工程版本冲突的系统级别的库子目录、会与其他工程版本冲突的语言级别的依赖库子目录;
所述公共依赖库目录包括三个子目录,分别为脚本语言解释器以及直接依赖项子目录、能够与其他工程共享的系统级别的库子目录、能够与其他工程共享的语言级别的依赖库子目录。
5.如权利要求1所述的一种跨平台的部署脚本语言的方法,其特征在于,还要将单文件可执行程序中的bootstrap文件解压后fuse挂载到脚本语言工程的工程文件中,并通过工程文件中的运行程序入口进行执行。
CN202110376918.6A 2021-04-08 2021-04-08 一种跨平台的部署脚本语言的方法 Active CN113076109B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110376918.6A CN113076109B (zh) 2021-04-08 2021-04-08 一种跨平台的部署脚本语言的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110376918.6A CN113076109B (zh) 2021-04-08 2021-04-08 一种跨平台的部署脚本语言的方法

Publications (2)

Publication Number Publication Date
CN113076109A CN113076109A (zh) 2021-07-06
CN113076109B true CN113076109B (zh) 2023-07-04

Family

ID=76615494

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110376918.6A Active CN113076109B (zh) 2021-04-08 2021-04-08 一种跨平台的部署脚本语言的方法

Country Status (1)

Country Link
CN (1) CN113076109B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004015732A1 (en) * 2002-08-08 2004-02-19 Actel Corporation Method and apparatus for bootstrapping a programmable antifuse circuit
CN102207859A (zh) * 2010-03-31 2011-10-05 国际商业机器公司 解决方案部署方法、设备和系统
CN106789888A (zh) * 2016-11-18 2017-05-31 重庆邮电大学 一种多特征融合的钓鱼网页检测方法
CN110175029A (zh) * 2019-04-15 2019-08-27 深圳壹账通智能科技有限公司 基于数据分析的前端和后端自动化部署工具的形成方法
CN111221541A (zh) * 2019-12-26 2020-06-02 曙光信息产业(北京)有限公司 集群并行程序部署方法以及装置
CN111240720A (zh) * 2020-03-27 2020-06-05 武汉光谷信息光电子创新中心有限公司 引导程序升级方法、装置及存储介质
CN112558980A (zh) * 2020-12-15 2021-03-26 建信金融科技有限责任公司 多软件包管理方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8489995B2 (en) * 2008-03-18 2013-07-16 Rightscale, Inc. Systems and methods for efficiently managing and configuring virtual servers
US10089152B1 (en) * 2012-03-19 2018-10-02 Amazon Technologies, Inc. Using scripts to bootstrap applications with metadata from a template

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004015732A1 (en) * 2002-08-08 2004-02-19 Actel Corporation Method and apparatus for bootstrapping a programmable antifuse circuit
CN102207859A (zh) * 2010-03-31 2011-10-05 国际商业机器公司 解决方案部署方法、设备和系统
CN106789888A (zh) * 2016-11-18 2017-05-31 重庆邮电大学 一种多特征融合的钓鱼网页检测方法
CN110175029A (zh) * 2019-04-15 2019-08-27 深圳壹账通智能科技有限公司 基于数据分析的前端和后端自动化部署工具的形成方法
CN111221541A (zh) * 2019-12-26 2020-06-02 曙光信息产业(北京)有限公司 集群并行程序部署方法以及装置
CN111240720A (zh) * 2020-03-27 2020-06-05 武汉光谷信息光电子创新中心有限公司 引导程序升级方法、装置及存储介质
CN112558980A (zh) * 2020-12-15 2021-03-26 建信金融科技有限责任公司 多软件包管理方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Fast Linux bootup using non-intrusive methods for predictable industrial embedded systems;M. Åsberg 等;《2013 IEEE 18th Conference on Emerging Technologies & Factory Automation (ETFA)》;1-8 *
基于BootStrap+JavaScript语言简易计算器的实现;胡雅丽;《太原学院学报(自然科学版)》;第38卷(第01期);73-76 *

Also Published As

Publication number Publication date
CN113076109A (zh) 2021-07-06

Similar Documents

Publication Publication Date Title
US8296758B2 (en) Deployment and versioning of applications
CN103309706B (zh) 基于Linux操作系统的内存文件系统制备方法及单元
US20040088397A1 (en) System and method for management of software applications
CN111198744A (zh) 自动化应用程序容器化和镜像备份发布的方法
CN108595186B (zh) 一种飞腾平台上基于完全函数的多版本软件管理方法
US20090119660A1 (en) Micro installation process for software packaging and distribution
CN111324359B (zh) 插件部署方法及装置
CN109614167B (zh) 一种管理插件的方法和系统
CN110727440A (zh) 一种软件封装方法
CN112256359A (zh) 微服务合并方法、装置、电子设备及可读存储介质
CN110888652B (zh) 基于jenkins插件的多版本构建方法及终端
CN111949276B (zh) 一种基于容器方式自动部署应用程序的系统及方法
CN113434158A (zh) 一种大数据组件的自定义管理方法、装置、设备及介质
CN112306621A (zh) 容器分层部署方法及系统
CN112286543B (zh) 一种应用服务部署方法及装置
CN113076109B (zh) 一种跨平台的部署脚本语言的方法
CN115344273B (zh) 一种基于货架系统来运行应用软件的方法及系统
CN115237631A (zh) 一种基于数据共享插件的易扩展式数据共享系统及方法
CN115543429A (zh) 项目环境的搭建方法、电子设备及计算机可读存储介质
US8190587B1 (en) In-place image promotion
CN117435244B (zh) 一种前端跨工程公共库系统及其构建方法
CN113568628B (zh) 一种基于debian系统ISO自动化生产方法
CN111273940B (zh) 将程序文件上传至代码仓库的方法及装置
CN115098118A (zh) 一种镜像灌装方法、装置、设备及存储介质
CN117931214A (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
GR01 Patent grant
GR01 Patent grant