CN112083951B - 一种支持多操作系统平台的软件包统一管理方法及系统 - Google Patents
一种支持多操作系统平台的软件包统一管理方法及系统 Download PDFInfo
- Publication number
- CN112083951B CN112083951B CN202011017314.4A CN202011017314A CN112083951B CN 112083951 B CN112083951 B CN 112083951B CN 202011017314 A CN202011017314 A CN 202011017314A CN 112083951 B CN112083951 B CN 112083951B
- Authority
- CN
- China
- Prior art keywords
- client
- operating system
- software package
- operation instruction
- software
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 124
- 238000000034 method Methods 0.000 claims abstract description 38
- 238000011022 operating instruction Methods 0.000 claims abstract description 7
- 238000009434 installation Methods 0.000 claims description 24
- 230000008569 process Effects 0.000 claims description 13
- 230000009191 jumping Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 8
- 238000011161 development Methods 0.000 claims description 8
- 125000006850 spacer group Chemical group 0.000 claims description 6
- 241000282326 Felis catus Species 0.000 claims description 5
- 230000003993 interaction Effects 0.000 description 16
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- 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/62—Uninstallation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种支持多操作系统平台的软件包统一管理方法及系统,本发明包括服务端显示按功能集合的软件包组及可选的操作,接收用户选择的软件包组别和操作指令;获取该软件包组别的所有软件包列表,并识别出操作指令的类型,获取已建立连接的客户端IP地址列表;通过软件仓库集提供各个客户端对应操作系统平台所需的软件包,统一推送相同的操作指令以使得对应的客户端执行软件包操作,接收执行结果后将其输出。本发明能够用于对多种操作系统平台统一软件包管理,对客户端透明,用户无需关心软件包格式及软件包运行的操作系统环境,能够大大提高软件包的部署效率,降低了部署难度。
Description
技术领域
本发明涉及计算机系统软件领域,具体涉及一种支持多操作系统平台的软件包统一管理方法及系统,可用于对例如中标麒麟操作系统、银河麒麟操作系统及深度操作系统等操作系统上RPM或DEB等多种格式的软件包统一进行包管理。
背景技术
软件包管理是Linux平台上的术语,软件包管理的作用是提供在Linux操作系统中安装、升级、卸载所需要软件的方法,并提供对系统中所有软件状态信息查询的方法。
目前,国产CPU芯片主要指龙芯、飞腾、申威三大品牌,CPU架构不同,所采用的指令集和逻辑设计技术也不相同,导致其生态环境发展得参差不齐,形成了“CPU不同则操作系统架构不同”的局面。从信息系统体系架构来看,操作系统作为软硬件系统的衔接点,对下负责管理所有硬件平台,屏蔽CPU等硬件实现细节的差异;对上兼容不同的数据库、中间件和办公套件等其它基础软件产品,为各种应用提供统一的开发和运行支撑环境,并为用户提供一致的人机交互界面。在“核高基”重大专项、“国产军用关键软硬件应用推进计划”等国家和军队重大项目的持续支持下,国内先后研制出以中标麒麟、银河麒麟、深度为代表的多款操作系统品牌,其产品在内核版本、软件包选型、打包格式、人机交互风格和使用习惯等方面均存在一定差异,为我军军事信息系统一体化建设带来了额外的工作量和工作难度。
在GNU/Linux(以下简称Linux)操作系统中,RPM和DPKG为最常见的两类软件包管理工具,他们分别应用于基于RPM软件包的Linux发行版本和DEB软件包的Linux发行版本。RPM(Red Hat Package Manager)是Red Hat公司随Redhat Linux推出的软件包管理器,文件扩展名为.rpm,软件包的安装、卸载、查询及更新等命令为“rpm-参数”,yum是相应软件包仓库的管理工具,中标麒麟、银河麒麟操作系统均采用RPM软件包格式。DEB是Debian软件包格式,文件扩展名为.deb,Debian包是Unixar的标准归档,软件包的安装、卸载、查询及更新等命令为“dpkg-参数”,apt-get是相应软件包仓库的管理工具,深度操作系统采用的是DEB软件包格式。
由于国产处理器的异构性和操作系统软件包管理方式的差异性,导致不同平台的软件包格式、软件包安装方式都不相同,是异构国产集群环境运维的一大难题。现在还没有一种软件包管理方法能够对各个国产操作系统平台上软件包实现统一安装、查询、更新及卸载等操作,如何提高多操作系统平台的综合管理,已成为一项亟待解决的关键技术问题。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种支持多操作系统平台的软件包统一管理方法及系统,本发明可通过服务端提供统一的包管理入口,不同的操作系统平台接收到指令后,依据本地的软件包管理工具分别进行实际的包管理动作,可用于对多种操作系统平台上多种格式的软件包统一进行包管理;本发明构建的国产操作系统平台下的软件包管理系统对客户端操作系统透明,用户仅需通过通用的操作就可以实现在多个国产操作系统平台上管理软件包,无需关心软件包格式及软件包运行的操作系统环境,与传统的软件包管理方式相比大大提高了软件包的部署效率,降低了部署难度。
为了解决上述技术问题,本发明采用的技术方案为:
一种支持多操作系统平台的软件包统一管理方法,包括服务端执行软件包统一管理的下述步骤:
1)显示按功能集合的软件包组及可选的操作,所述操作包括安装、更新、查询和卸载;接收用户选择的软件包组别和操作指令;
2)根据软件包组别读取预设的配置文档获取该软件包组别的所有软件包列表,并识别出操作指令的类型,获取已建立连接的客户端IP地址列表;
3)通过软件仓库集提供各个客户端对应操作系统平台所需的软件包,并根据操作指令的类型向已建立连接的客户端IP地址统一推送相同的操作指令以使得对应的客户端执行软件包列表中软件包的安装、更新、查询或卸载操作;
4)等待已建立连接的客户端IP地址返回操作指令的执行结果,在收到已建立连接的客户端IP地址返回操作指令的执行结果后将其输出。
可选地,步骤3)中根据操作指令的类型向已建立连接的客户端IP地址统一推送相同的操作指令还包括客户端执行软件包列表中软件包的安装、更新、查询或卸载操作的下述步骤:
S1)查询客户端的处理器信息,获取客户端的CPU类型,查询客户端的配置档文件获取客户端的操作系统类型,根据客户端的CPU类型、操作系统类型确定客户端的操作系统平台;
S2)将统一推送的相同的操作指令转换为客户端对应操作系统平台的操作指令;
S3)执行转换为客户端对应操作系统平台的操作指令,在执行过程中若需要下载新的软件包则向服务端的软件仓库集请求获取对应操作系统平台的软件包版本;
S4)将转换为客户端对应操作系统平台的操作指令的执行结果发送给服务端。
可选地,步骤1)的软件包组别包括应用开发组、常用工具组、办公套件组和即时通信组中的至少一种。
可选地,步骤3)中通过软件仓库集提供各个客户端对应操作系统平台所需的软件包时,所述操作系统平台包括中标麒麟操作系统、深度操作系统和银河麒麟操作系统。
可选地,步骤S1)中查询客户端的处理器信息具体是指执行指令“cat/proc/cpuinfo”并根据返回结果获取客户端的处理器信息;步骤S1)中查询客户端的配置档文件获取客户端的操作系统类型具体是指读取系统配置档文件中名称Name的关键字段值,若名称Name的关键字段值为“NeoKylin”,则判定客户端上运行的为中标麒麟操作系统;如果名称Name的关键字段值为“Deepin”,则判定客户端上运行的为深度操作系统;如果名称Name的关键字段值为“Kylin”,则判定客户端上运行的为银河麒麟操作系统。
可选地,步骤S2)的详细步骤包括:
S2.1)解析统一推送的相同的操作指令中的操作指令和软件包列表;若客户端的操作系统平台为中标麒麟操作系统或银河麒麟操作系统,则跳转执行步骤S2.2);若客户端的操作系统平台为深度操作系统,则跳转执行步骤S2.3);
S2.2)若操作指令的操作为安装,则生成客户端对应操作系统平台的操作指令“yum-yinstall{Si}”;若操作指令的操作为更新,则生成客户端对应操作系统平台的操作指令“yum update-y{Si}”;若操作指令的操作为查询,则生成客户端对应操作系统平台的操作指令“rpm-qa{Si}”;若操作指令的操作为卸载,则生成客户端对应操作系统平台的操作指令“rpm-e{Si}--nodeps”;跳转执行步骤S3);其中{Si}为软件包列表中的软件包通过客户端对应操作系统平台指定的间隔符连接得到;
S2.3)若操作指令的操作为安装,则生成客户端对应操作系统平台的操作指令“apt-get-yinstall{Si}”;若操作指令的操作为更新,则生成客户端对应操作系统平台的操作指令“apt-get update-y{Si}”;若操作指令的操作为查询,则生成客户端对应操作系统平台的操作指令“dpkg-query-W{Si}”;若操作指令的操作为卸载,则生成客户端对应操作系统平台的操作指令“apt-get purge{Si}-y”;跳转执行步骤S3);其中{Si}为软件包列表中的软件包通过客户端对应操作系统平台指定的间隔符连接得到。
可选地,步骤S3)中向服务端的软件仓库集请求获取对应操作系统平台的软件包版本时,具体是指通过HTTP、FTP或NFS向服务端的软件仓库集请求获取对应操作系统平台的软件包版本。
此外,本发明还提供一种支持多操作系统平台的软件包统一管理系统,包括服务端和多个客户端,所述多个客户端分别与服务端相连,所述服务端被编程或配置以执行所述支持多操作系统平台的软件包统一管理方法的步骤。
可选地,所述客户端被编程或配置以执行所述支持多操作系统平台的软件包统一管理方法的步骤。
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述支持多操作系统平台的软件包统一管理方法的计算机程序。
和现有技术相比,本发明具有下述优点:
1、本发明可通过服务端提供统一的包管理入口,根据操作指令的类型向已建立连接的客户端IP地址统一推送相同的操作指令以使得对应的客户端执行软件包列表中软件包的安装、更新、查询或卸载操作,使得不同的操作系统平台接收到指令后,依据本地的软件包管理工具分别进行实际的包管理动作,可用于对多种操作系统平台上多种格式的软件包统一进行包管理。
2、本发明构建的国产操作系统平台下的软件包管理系统对客户端操作系统透明,用户仅需通过通用的操作就可以实现在多个国产操作系统平台上管理软件包,无需关心软件包格式及软件包运行的操作系统环境,与传统的软件包管理方式相比大大提高了软件包的部署效率,降低了部署难度。
附图说明
图1为本发明实施例方法的基本流程示意图。
图2为本发明实施例系统的原理架构示意图。
具体实施方式
如图1所示,本实施例支持多操作系统平台的软件包统一管理方法包括服务端执行软件包统一管理的下述步骤:
1)显示按功能集合的软件包组及可选的操作,所述操作包括安装、更新、查询和卸载;接收用户选择的软件包组别和操作指令;
2)根据软件包组别读取预设的配置文档获取该软件包组别的所有软件包列表,并识别出操作指令的类型,获取已建立连接的客户端IP地址列表;
3)通过软件仓库集提供各个客户端对应操作系统平台所需的软件包,并根据操作指令的类型向已建立连接的客户端IP地址统一推送相同的操作指令以使得对应的客户端执行软件包列表中软件包的安装、更新、查询或卸载操作;
4)等待已建立连接的客户端IP地址返回操作指令的执行结果,在收到已建立连接的客户端IP地址返回操作指令的执行结果后将其输出。
如图1,步骤3)中根据操作指令的类型向已建立连接的客户端IP地址统一推送相同的操作指令还包括客户端执行软件包列表中软件包的安装、更新、查询或卸载操作的下述步骤:
S1)查询客户端的处理器信息,获取客户端的CPU类型,查询客户端的配置档文件获取客户端的操作系统类型,根据客户端的CPU类型、操作系统类型确定客户端的操作系统平台;
S2)将统一推送的相同的操作指令转换为客户端对应操作系统平台的操作指令;
S3)执行转换为客户端对应操作系统平台的操作指令,在执行过程中若需要下载新的软件包则向服务端的软件仓库集请求获取对应操作系统平台的软件包版本;
S4)将转换为客户端对应操作系统平台的操作指令的执行结果发送给服务端。
3.根据权利要求1所述的支持多操作系统平台的软件包统一管理方法,其特征在于,步骤1)的软件包组别包括应用开发组、常用工具组、办公套件组和即时通信组中的至少一种。
毫无疑问,本实施例方法并不依赖于特定的操作系统平台。作为一种可选的面向国产Linux操作系统平台的实施方式,步骤3)中通过软件仓库集提供各个客户端对应操作系统平台所需的软件包时,操作系统平台包括中标麒麟操作系统、深度操作系统和银河麒麟操作系统,从而可对中标麒麟操作系统、银河麒麟操作系统及深度操作系统等国产操作系统上RPM或DEB等多种格式的软件包统一进行包管理的方法。需要说明的是,软件包管理是Linux平台上的术语,软件包管理的作用是提供在Linux操作系统中安装、升级、卸载所需要软件的方法,并提供对系统中所有软件状态信息查询的方法。但是,在windows、UNIX等操作系统中,也有类似的应用程序管理方法。
本实施例中,步骤S1)中查询客户端的处理器信息具体是指执行指令“cat/proc/cpuinfo”并根据返回结果获取客户端的处理器信息;步骤S1)中查询客户端的配置档文件获取客户端的操作系统类型具体是指读取系统配置档文件中名称Name的关键字段值,若名称Name的关键字段值为“NeoKylin”,则判定客户端上运行的为中标麒麟操作系统;如果名称Name的关键字段值为“Deepin”,则判定客户端上运行的为深度操作系统;如果名称Name的关键字段值为“Kylin”,则判定客户端上运行的为银河麒麟操作系统。
本实施例中,步骤S2)的详细步骤包括:
S2.1)解析统一推送的相同的操作指令中的操作指令和软件包列表;若客户端的操作系统平台为中标麒麟操作系统或银河麒麟操作系统,则跳转执行步骤S2.2);若客户端的操作系统平台为深度操作系统,则跳转执行步骤S2.3);
S2.2)若操作指令的操作为安装,则生成客户端对应操作系统平台的操作指令“yum-yinstall{Si}”;若操作指令的操作为更新,则生成客户端对应操作系统平台的操作指令“yum update-y{Si}”;若操作指令的操作为查询,则生成客户端对应操作系统平台的操作指令“rpm-qa{Si}”;若操作指令的操作为卸载,则生成客户端对应操作系统平台的操作指令“rpm-e{Si}--nodeps”;跳转执行步骤S3);其中{Si}为软件包列表中的软件包通过客户端对应操作系统平台指定的间隔符连接得到;
S2.3)若操作指令的操作为安装,则生成客户端对应操作系统平台的操作指令“apt-get-yinstall{Si}”;若操作指令的操作为更新,则生成客户端对应操作系统平台的操作指令“apt-get update-y{Si}”;若操作指令的操作为查询,则生成客户端对应操作系统平台的操作指令“dpkg-query-W{Si}”;若操作指令的操作为卸载,则生成客户端对应操作系统平台的操作指令“apt-get purge{Si}-y”;跳转执行步骤S3);其中{Si}为软件包列表中的软件包通过客户端对应操作系统平台指定的间隔符连接得到。
本实施例中,步骤S3)中向服务端的软件仓库集请求获取对应操作系统平台的软件包版本时,具体是指通过HTTP、FTP或NFS向服务端的软件仓库集请求获取对应操作系统平台的软件包版本。
如图2所示,本实施例还提供一种支持多操作系统平台的软件包统一管理系统,包括服务端和多个客户端,多个客户端分别与服务端相连,服务端被编程或配置以执行本实施例前述支持多操作系统平台的软件包统一管理方法中服务端执行的步骤。
进一步地,客户端被编程或配置以执行前述支持多操作系统平台的软件包统一管理方法中客户端执行的步骤,使得服务端提供统一的包管理指令入口,不同的国产操作系统接收到指令后,依据本地的软件包管理工具分别进行实际的包管理动作。
本实施例中支持多操作系统平台的软件包统一管理系统采用B/S架构,由一个服务端1和N个客户端2组成,N为正整数。服务端1和客户端2基于Saltstack C/S架构进行集中化管理,Saltstack平台是一款SaltStack公司开发的商业软件,采用轻量级的消息队列实现管理端和客户端的网络通信。作为一种可选的实施方式,本实施例中服务端1由一台服务器构成,除安装有操作系统,还安装有输入交互模块11、Web服务中间件12、远程部署中间件服务端13、客户配置管理中间件14和软件仓库集15五个组件。客户端2除安装有操作系统,还安装有远程部署中间件客户端代理21和本地软件包管理模块22两个组件。
输入交互模块11与Web服务中间件12相连,为管理员提供交互窗口,运行在浏览器中,一方面从键盘接收管理员输入信息,将输入的操作指令、软件包的组别名称通过Web服务中间件12发送出去;一方面向管理员反馈Web服务中间件12收到的响应信息。
Web服务中间件12与输入交互模块11、远程部署中间件服务端13相连,Web服务中间件12是常见的网络中间件tomcat,为输入交互模块11提供http网络服务,把从输入交互模块11接收的软件组别、操作指令通过网络发送给远程部署中间件服务端13,同时通过远程部署中间件服务端13接收部署客户端的响应信息。
远程部署中间件服务端13与Web服务中间件12、客户配置管理中间件14、N个客户端2相连。远程部署中间件服务端13和远程部署中间件客户端代理21基于Saltstack框架开发,前者是一个Slatstack的服务端1,后者是多个客户端2。服务端1组织管理客户端的连接和认证信息,并在客户端实现远程执行命令引擎,向N个客户端下发操作命令,保持秒级响应时间。远程部署中间件服务端13一方面从N个客户端中的远程部署中间件客户端代理21接收握手请求、公钥,对远程部署中间件客户端代理21进行身份认证,将远程部署中间件客户端代理21的IP地址和秘钥(秘钥通过加密算法对IP地址和客户端主机名取哈希得到)发送给客户配置管理中间件14,并将从N个客户端接收的执行结果提交给Web服务中间件12;另一方面从Web服务中间件12接收操作指令,将操作指令转换成具体的执行命令,将执行命令推送给N个客户端。
客户配置管理中间件14与远程部署中间件服务端13相连,客户配置管理中间件14将从远程部署中间件服务端13接收的远程部署中间件客户端代理21的IP地址和秘钥存储起来。在远程部署中间件服务端13需要时提供客户端信息。
软件仓库集15可以部署在独立的服务器上,也可以跟其他服务端1模块共存,它响应客户端上本地软件包管理模块22的请求。软件仓库包含软件包和索引文件,能自动分析每个软件包的依赖性关系,提供软件包信息获取和下载服务,支持HTTP、FTP和NFS三种访问方式。本发明的软件仓库集15合包含中标麒麟、银河麒麟、深度等多种操作系统的软件仓库(Repository),这些仓库使用相同IP地址,客户端通过HTTP服务访问这些仓库。
远程部署中间件客户端代理21与本地软件包管理模块22、远程部署中间件服务端13相连,通过Slatstack实现与远程部署中间件服务端13认证连接及通信。远程部署中间件客户端代理21一方面搜索所属客户端的网络连接范围内的远程部署中间件服务端13,搜索成功后,远程部署中间件客户端代理21向远程部署中间件服务端13发送握手请求,握手成功后将客户端的密钥发送给远程部署中间件服务端13,并从远程部署中间件服务端13接收执行命令,根据执行命令发送对应的执行脚本请求,将执行脚本请求发送给所属客户端的软件包管理模块。
本地软件包管理模块22是包含一个可执行脚本和国产操作系统中默认必须安装的软件包管理工具。可执行脚本用于判断当前客户端默认使用RPM还是DPKG软件包管理工具,并执行相应的包管理命令。一种软件包管理工具对应一种国产操作系统,如DPKG管理工具是深度操作系统中的软件包管理模块,RPM是中标麒麟操作系统和银河麒麟操作系统的软件包管理模块。软件包管理模块与所属客户端的远程部署中间件客户端代理21、软件仓库集15相连,软件包管理模块从远程部署中间件客户端代理21接收执行脚本请求,根据执行脚本请求完成软件包的获取、安装、更新、卸载操作。软件包管理模块根据客户端操作系统版本和软件包格式将执行脚本请求翻译成DPKG或者RPM本地软件包管理工具对应的命令,有获取、安装、更新、卸载命令。根据以上命令的不同,从软件仓库获取软件包以及相关信息,最后在本地客户端完成以上命令,并将执行结果依次返回给服务端1的输入交互模块11。
本实施例中通过支持多操作系统平台的软件包统一管理系统来实现支持多操作系统平台的软件包统一管理的步骤包括:
第一步:构建支持多操作系统平台的软件包统一管理系统,结构如前文及图2所示。
第二步:在客户端2进行软件仓库的配置,根据中标、银河麒麟、深度等操作系统客户端上软件包管理工具的不同分别进行配置。
使得客户端2的本地软件包管理模块22能正确访问对应的软件仓库地址,以进行软件包的安装、更新、查询和卸载。进行软件仓库的配置的步骤包括:(1)在客户端2配置中标麒麟操作系统的软件仓库:修改客户端的/etc/yum.repos.d/neokylin.repo文件,将文件中的baseurl字段指向软件仓库集15所在服务器的网络地址,客户端的软件包(RPM)管理模块能通过HTTP协议访问中标麒麟操作系统的软件仓库地址。(2)在客户端2配置银河麒麟操作系统的软件仓库:修改客户端的/etc/yum.repos.d/kylin.repo文件,将文件中的baseurl字段指向软件仓库集15所在服务器的网络地址,客户端的软件包(RPM)管理模块能通过HTTP协议访问银河麒麟操作系统的软件仓库地址。(3)在客户端2配置深度操作系统的软件仓库:修改客户端的/etc/apt/sources.list文件,将文件中deb字段指向软件仓库集15所在服务器的网络地址,使得使得客户端的软件包(DEB)管理模块能通过HTTP协议访问深度操作系统的软件仓库地址。
第三步:完成软件仓库的配置后,需要将远程部署中间件客户端代理21和远程部署中间件服务端13建立连接。
步骤包括:(1)远程部署中间件客户端代理21启动时搜索所属客户端的网络连接范围内的远程部署中间件服务端13,若搜索成功,向远程部署中间件服务端13发送握手请求,握手成功后,远程部署中间件客户端代理21将首次启动时创建的密钥对中的公钥发送给远程部署中间件服务端13。(2)远程部署中间件服务端13监控是否从远程部署中间件客户端代理21收到公钥,若未收到,转3.2继续等待;若收到公钥,在客户端对公钥进行匹配认证,若认证通过,转3.3,若认证未通过,转3.2继续等待。(3)远程部署中间件服务端13与远程部署中间件客户端代理21建立连接,远程部署中间件服务端13将客户端公匙和客户端IP地址发送到客户配置管理中间件14。(4)客户配置管理中间件14将客户端公匙和客户端IP地址存储起来。这样服务端1通过查询配置管理中间件可以知道所有已认证注册的客户端信息,用作包安装的目标。
第四步:服务端1进行软件包统一管理,本实施例中的具体步骤包括:
4.1、服务端1的输入交互模块11在浏览器上显示按功能集合的软件包组别包括应用开发组、常用工具组、办公套件组以及即时通信组。服务端1的输入交互模块11从键盘接收用户选择的软件包组别和操作指令,若操作指令是安装/更新操作指令,转4.2。若操作指令是查询/卸载操作指令,转4.3。
4.2、输入交互模块11、Web服务中间件12、远程部署中间件服务端13、客户配置管理中间件14、软件包管理模块和软件仓库集15配合实现软件包的统一安装和更新。
4.3、输入交互模块11、Web服务中间件12、远程部署中间件服务端13、客户配置管理中间件14和软件包管理模块配合实现软件包的统一查询和卸载。
其中,步骤4.2的详细步骤包括:
4.2.1输入交互模块11对用户选择的软件包组别(具体指应用开发组、常用工具组、办公套件组以及即时通信组)进行处理,生成组别名称和操作指令,根据组别名称读取配置档(/etc/packageslist),获取该组别所有软件包列表,并通过Web服务中间件12提交给远程部署中间件服务端13。
4.2.2远程部署中间件服务端13接收到通过Web服务中间件12远程发送的软件包列表和操作指令后,进行判断,如果操作指令是安装指令,则从客户配置管理中间件14获取已建立连接的客户端IP地址列表,向IP列表中的客户端推送“cs2c.install XXX、YYY、ZZZ…”命令,其中XXX\YYY\ZZZ这些软件包名称是遍历软件包列表得来的,表示一次可以安装多个包,转4.2.3;如果是更新指令,向IP列表中的客户端推送“cs2c.update XXX、YYY、ZZZ…”命令。其中,XXX、YYY和ZZZ分别指代软件包名称,转4.2.3。
4.2.3远程部署中间件客户端代理21接收到“cs2c.install XXX、YYY、ZZZ…”或“cs2c.update XXX、YYY、ZZZ…”命令后,交由软件包管理模块实际执行cs2c.install或cs2c.update脚本。
4.2.4软件包管理模块通过运行cs2c.install或cs2c.update可执行脚本判断软件包的运行环境,包括操作系统信息和CPU信息,来确认当前系统是后续执行DPKG还是RPM包管理命令。
4.2.5如果软件包管理模块运行的是cs2c.install脚本,在本地客户端运行“yum-y install XXX、YYY、ZZZ…”,转4.2.7。如果软件包管理模块运行的是cs2c.update脚本,在本地客户端运行“yum update-y XXX、YYY、ZZZ…”命令,转4.2.7;
4.2.6如果软件包管理模块运行的是cs2c.install脚本,在本地客户端运行“apt-get-y install XXX、YYY、ZZZ…”,转4.2.7。如果软件包管理模块运行的是cs2c.update脚本,在本地客户端运行“apt-get update-y XXX、YYY、ZZZ…”命令,转4.2.7;
4.2.7在执行过程中,软件包管理模块将安装成功或者失败的结果通过json文件给客户端代理。
4.2.8远程部署中间件服务端13一直监听客户端代理的执行结果,远程部署中间件客户端代理21将安装成功或者失败的结果传递给远程部署中间件服务端13。
其中,步骤4.2.4的具体过程如下:4.2.4.1执行”cat/proc/cpuinfo”命令,查看输出的处理器信息,确认所属客户端的CPU信息。4.2.4.2读取系统配置档文件(/etc/os-release)的“Name”关键字段值,确认客户端运行的操作系统信息。如果操作系统信息为“NeoKylin”,则客户端上运行的为中标麒麟操作系统,转4.2.5;如果操作系统信息为“Deepin”,则客户端上运行的为深度操作系统,转4.2.6;如果操作系统信息为“Kylin“,则客户端上运行的为银河麒麟操作系统,转4.2.5。
其中,步骤4.3的详细步骤包括:
4.3.1输入交互模块11对用户选择的软件包组别(具体指应用开发组、常用工具组、办公套件组以及即时通信组)进行处理,生成组别名称和操作指令,发送给Web服务中间件12。
4.3.2Web服务中间件12从输入交互模块11接收组别名称和操作指令,根据组别名称读取配置档(/etc/packageslist),获取该组别所有软件包列表,将软件包列表和操作指令提交给远程部署中间件服务端13。
4.3.3远程部署中间件服务端13从Web服务中间件12接收软件包列表和操作指令,如果操作指令是查询指令,则从客户配置管理中间件14获取所有已建立连接的客户端IP地址,向所有建立连接的远程部署中间件客户端代理21推送“cs2c.query XXX、YYY、ZZZ…”,其中XXX\YYY\ZZZ这些软件包名称是遍历软件包列表得来的,表示一次可以安装多个包,转4.3.4;如果是卸载指令,那么向所有建立连接的远程部署客户端代理推送“cs2c.uninstall XXX、YYY、ZZZ…”命令,转4.3.4。
4.3.4远程部署中间件客户端代理21接收到“cs2c.query XXX、YYY、ZZZ…”或“cs2c.uninstall XXX、YYY、ZZZ…”命令后,经过解析,识别软件包管理模块中的cs2c.query或cs2c.uninstall可执行脚本,交由软件包管理模块实际执行cs2c.install或cs2c.update脚本。
4.3.5软件包管理模块通过cs2c.query或cs2c.uninstall可执行脚本确认软件包的运行环境,包括操作系统信息和CPU信息。
4.3.6对于中标麒麟和银河麒麟上的包查询指令,软件包管理模块在本地客户端运行“'rpm-qa XXX、YYY、ZZZ…”命令,转4.3.8。对于卸载指令,软件包管理模块在本地客户端运行“rpm-e XXX、YYY、ZZZ…--nodeps”命令,转4.3.8;
4.3.7对于深度操作系统上的包查询指令,软件包管理模块在本地客户端运行“dpkg-query-W待查询软件包列表”,转4.3.8。对于卸载指令,软件包管理模块在本地客户端“apt-get purge待安装软件包列表-y”命令”命令,转4.3.8。
4.3.8软件包管理模块将安装成功或者失败的结果反馈给远程部署中间件客户端代理21。
4.3.9远程部署中间件客户端代理21将结果传递给远程部署中间件服务端13。
其中,步骤4.3.5的具体过程如下:4.3.5.1执行“cat/proc/cpuinfo”命令,查看输出的处理器信息,确认客户端的CPU信息。4.2.5.2读取系统配置档(/etc/os-release)的“Name”关键字段值,确认客户端运行的操作系统信息。如果操作系统信息为“NeoKylin”,则客户端上运行的为中标麒麟操作系统,转4.3.6;如果操作系统信息为“Deepin”,则客户端上运行的为深度操作系统,转4.3.7;如果操作系统信息为”Kylin“,则客户端上运行的为银河麒麟操作系统,转4.3.6。
综上所述,本实施例中构建了国产操作系统平台下的软件包管理系统,融合了Saltstack框架技术、Web服务模块、软件仓库模块、RPM包管理模块、DEB包管理模块。本实施例构建的国产操作系统平台下的软件包管理系统对客户端操作系统透明,用户仅需通过打开管理系统的页面,输入软件包名,就可以实现在相应多个国产操作系统上管理软件包,无需关心软件包格式及软件包运行的操作系统环境,与传统的软件包管理方式相比大大提高了软件包的部署效率,降低了部署难度。本实施例基于Saltstack自动化运维框架的开发的远程部署服务系统采用C/S架构,扩展灵活,运行效率高。服务端1有一个功能强大的远程执行命令引擎和大规模分布式的配置管理系统,实现配置管理、远程执行、一键安装、分组推送等功能,保持秒级响应时间。本实施例远程部署客户端采用代理-包管理模块机制,易于扩展,可灵活增加、删除支持的操作系统类型,不影响系统框架。本实施例可通过服务端1提供统一的包管理入口,根据操作指令的类型向已建立连接的客户端IP地址统一推送相同的操作指令以使得对应的客户端执行软件包列表中软件包的安装、更新、查询或卸载操作,使得不同的操作系统平台接收到指令后,依据本地的软件包管理工具分别进行实际的包管理动作,可用于对多种操作系统平台上多种格式的软件包统一进行包管理。本实施例构建的国产操作系统平台下的软件包管理系统对客户端操作系统透明,用户仅需通过通用的操作就可以实现在多个国产操作系统平台上管理软件包,无需关心软件包格式及软件包运行的操作系统环境,与传统的软件包管理方式相比大大提高了软件包的部署效率,降低了部署难度。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行本实施例前述支持多操作系统平台的软件包统一管理方法的计算机程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种支持多操作系统平台的软件包统一管理方法,其特征在于,包括服务端执行软件包统一管理的下述步骤:
1)显示按功能集合的软件包组及可选的操作,所述操作包括安装、更新、查询和卸载;接收用户选择的软件包组别和操作指令;
2)根据软件包组别读取预设的配置文档获取该软件包组别的所有软件包列表,并识别出操作指令的类型,获取已建立连接的客户端IP地址列表;
3)通过软件仓库集提供各个客户端对应操作系统平台所需的软件包,并根据操作指令的类型向已建立连接的客户端IP地址统一推送相同的操作指令以使得对应的客户端执行软件包列表中软件包的安装、更新、查询或卸载操作;
4)等待已建立连接的客户端IP地址返回操作指令的执行结果,在收到已建立连接的客户端IP地址返回操作指令的执行结果后将其输;
步骤3)中根据操作指令的类型向已建立连接的客户端IP地址统一推送相同的操作指令还包括客户端执行软件包列表中软件包的安装、更新、查询或卸载操作的下述步骤:
S1)查询客户端的处理器信息,获取客户端的CPU类型,查询客户端的配置档文件获取客户端的操作系统类型,根据客户端的CPU类型、操作系统类型确定客户端的操作系统平台;
S2)将统一推送的相同的操作指令转换为客户端对应操作系统平台的操作指令;
S3)执行转换为客户端对应操作系统平台的操作指令,在执行过程中若需要下载新的软件包则向服务端的软件仓库集请求获取对应操作系统平台的软件包版本;
S4)将转换为客户端对应操作系统平台的操作指令的执行结果发送给服务端。
2.根据权利要求1所述的支持多操作系统平台的软件包统一管理方法,其特征在于,步骤1)的软件包组别包括应用开发组、常用工具组、办公套件组和即时通信组中的至少一种。
3.根据权利要求1所述的支持多操作系统平台的软件包统一管理方法,其特征在于,步骤3)中通过软件仓库集提供各个客户端对应操作系统平台所需的软件包时,所述操作系统平台包括中标麒麟操作系统、深度操作系统和银河麒麟操作系统。
4. 根据权利要求3所述的支持多操作系统平台的软件包统一管理方法,其特征在于,步骤S1)中查询客户端的处理器信息具体是指执行指令“cat /proc/cpuinfo”并根据返回结果获取客户端的处理器信息;步骤S1)中查询客户端的配置档文件获取客户端的操作系统类型具体是指读取系统配置档文件中名称Name的关键字段值,若名称Name的关键字段值为“NeoKylin”,则判定客户端上运行的为中标麒麟操作系统;如果名称Name的关键字段值为“Deepin”,则判定客户端上运行的为深度操作系统;如果名称Name的关键字段值为“Kylin”,则判定客户端上运行的为银河麒麟操作系统。
5.根据权利要求3所述的支持多操作系统平台的软件包统一管理方法,其特征在于,步骤S2)的详细步骤包括:
S2.1)解析统一推送的相同的操作指令中的操作指令和软件包列表;若客户端的操作系统平台为中标麒麟操作系统或银河麒麟操作系统,则跳转执行步骤S2.2);若客户端的操作系统平台为深度操作系统,则跳转执行步骤S2.3);
S2.2)若操作指令的操作为安装,则生成客户端对应操作系统平台的操作指令“yum -yinstall {Si}”;若操作指令的操作为更新,则生成客户端对应操作系统平台的操作指令“yum update -y {Si}”;若操作指令的操作为查询,则生成客户端对应操作系统平台的操作指令“rpm -qa {Si}”;若操作指令的操作为卸载,则生成客户端对应操作系统平台的操作指令“rpm -e {Si} --nodeps”;跳转执行步骤S3);其中{Si}为软件包列表中的软件包通过客户端对应操作系统平台指定的间隔符连接得到;
S2.3)若操作指令的操作为安装,则生成客户端对应操作系统平台的操作指令“apt-get -y install {Si}”;若操作指令的操作为更新,则生成客户端对应操作系统平台的操作指令“apt-get update -y {Si}”;若操作指令的操作为查询,则生成客户端对应操作系统平台的操作指令“dpkg-query -W {Si}”;若操作指令的操作为卸载,则生成客户端对应操作系统平台的操作指令“apt-get purge {Si} -y”;跳转执行步骤S3);其中{Si}为软件包列表中的软件包通过客户端对应操作系统平台指定的间隔符连接得到。
6.根据权利要求3所述的支持多操作系统平台的软件包统一管理方法,其特征在于,步骤S3)中向服务端的软件仓库集请求获取对应操作系统平台的软件包版本时,具体是指通过HTTP、FTP或NFS向服务端的软件仓库集请求获取对应操作系统平台的软件包版本。
7.一种支持多操作系统平台的软件包统一管理系统,其特征在于,包括服务端和多个客户端,所述多个客户端分别与服务端相连,所述服务端被编程或配置以执行权利要求1所述支持多操作系统平台的软件包统一管理方法的步骤。
8.根据权利要求7所述的支持多操作系统平台的软件包统一管理系统,其特征在于,所述客户端被编程或配置以执行权利要求2~6中任意一项所述支持多操作系统平台的软件包统一管理方法的步骤。
9.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有被编程或配置以执行权利要求1~6中任意一项所述支持多操作系统平台的软件包统一管理方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011017314.4A CN112083951B (zh) | 2020-09-24 | 2020-09-24 | 一种支持多操作系统平台的软件包统一管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011017314.4A CN112083951B (zh) | 2020-09-24 | 2020-09-24 | 一种支持多操作系统平台的软件包统一管理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112083951A CN112083951A (zh) | 2020-12-15 |
CN112083951B true CN112083951B (zh) | 2024-05-14 |
Family
ID=73739845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011017314.4A Active CN112083951B (zh) | 2020-09-24 | 2020-09-24 | 一种支持多操作系统平台的软件包统一管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112083951B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112596788A (zh) * | 2020-12-31 | 2021-04-02 | 扬州万方电子技术有限责任公司 | 信息系统国产化支撑服务环境 |
CN112947950B (zh) * | 2021-01-22 | 2024-05-31 | 中信银行股份有限公司 | 一种实现多家银行银企直联软件管理的方法及系统 |
CN113076115B (zh) * | 2021-04-21 | 2023-12-26 | 扬州万方科技股份有限公司 | 基于国产平台的基础软件封装方法 |
CN113934426A (zh) * | 2021-09-23 | 2022-01-14 | 北京车和家信息技术有限公司 | 软件包处理方法、装置、系统、设备及介质 |
CN114745261A (zh) * | 2022-03-24 | 2022-07-12 | 云智慧(北京)科技有限公司 | 基于Agent的智能化管理方法、装置、设备及存储介质 |
CN115167886B (zh) * | 2022-09-05 | 2022-11-18 | 塬数科技(无锡)有限公司 | 一种自动适配方法、装置、存储介质及电子设备 |
CN115469912B (zh) * | 2022-11-02 | 2023-01-24 | 中国人民解放军国防科技大学 | 异构实时信息处理系统设计方法 |
CN117311698B (zh) * | 2023-08-14 | 2024-05-17 | 广州致远电子股份有限公司 | 软件包发布方法、软件包下载方法、终端设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110032A (zh) * | 2007-08-24 | 2008-01-23 | 张建中 | 创建多维操作系统的方法和装置 |
CN104102874A (zh) * | 2013-04-12 | 2014-10-15 | 北京中嘉时代科技有限公司 | 一种计算机多种操作系统统一运维方法及装置 |
CN107741859A (zh) * | 2017-11-03 | 2018-02-27 | 山东浪潮云服务信息科技有限公司 | 基于国产cpu和os的软件包管理方法、装置及系统 |
CN109814878A (zh) * | 2018-12-20 | 2019-05-28 | 中国电子科技集团公司第十五研究所 | 跨平台跨商用自主环境复杂巨型信息系统混合部署系统 |
CN111679855A (zh) * | 2020-08-11 | 2020-09-18 | 中软信息系统工程有限公司 | 一种应用程序软件包转换方法、管理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9767047B2 (en) * | 2014-10-03 | 2017-09-19 | Citrix Systems, Inc. | Methods and systems for filtering communication between peripheral devices and mobile computing devices |
-
2020
- 2020-09-24 CN CN202011017314.4A patent/CN112083951B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110032A (zh) * | 2007-08-24 | 2008-01-23 | 张建中 | 创建多维操作系统的方法和装置 |
CN104102874A (zh) * | 2013-04-12 | 2014-10-15 | 北京中嘉时代科技有限公司 | 一种计算机多种操作系统统一运维方法及装置 |
CN107741859A (zh) * | 2017-11-03 | 2018-02-27 | 山东浪潮云服务信息科技有限公司 | 基于国产cpu和os的软件包管理方法、装置及系统 |
CN109814878A (zh) * | 2018-12-20 | 2019-05-28 | 中国电子科技集团公司第十五研究所 | 跨平台跨商用自主环境复杂巨型信息系统混合部署系统 |
CN111679855A (zh) * | 2020-08-11 | 2020-09-18 | 中软信息系统工程有限公司 | 一种应用程序软件包转换方法、管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112083951A (zh) | 2020-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112083951B (zh) | 一种支持多操作系统平台的软件包统一管理方法及系统 | |
CN109840429B (zh) | 智能合约部署、调用方法和装置 | |
CN101297286B (zh) | 添加设备驱动程序的方法 | |
US7133933B2 (en) | Content synchronization frameworks using dynamic attributes and file bundles for connected devices | |
US9038059B2 (en) | Automatically targeting application modules to individual machines and application framework runtimes instances | |
US20120089676A1 (en) | Live data form viewing and updating system | |
WO2018129509A1 (en) | Managing, using, and updating application resources | |
JP5080428B2 (ja) | 構成管理サーバ、名称特定方法および名称特定プログラム | |
CN111045833B (zh) | 接口调用的方法和装置 | |
WO2006086582A2 (en) | Systems and method for deploying a software application on a wireless device | |
CN112597244B (zh) | 一种数据同步方法、装置及电子设备 | |
CN112860282B (zh) | 集群插件的升级方法、装置和服务器 | |
CN110990025B (zh) | 一种实例部署方法及系统 | |
JP5886901B2 (ja) | 装置へのコンテンツの分配を管理するシステムと方法とプログラムを提供する記憶媒体 | |
US20120096453A1 (en) | Software Package Management Mechanism | |
US20130080511A1 (en) | Software detection | |
CN110764769B (zh) | 处理用户请求的方法和装置 | |
CN111625595A (zh) | 基于自启动爬虫技术的区块链管理方法、系统及存储介质 | |
KR20020081974A (ko) | 단말기를 위한 소프트웨어 다운로드 방법 | |
CN111367550A (zh) | 物联网管理系统、方法和设备 | |
CN111026413A (zh) | 以需求为导向的复杂系统“拉取”模式部署系统及其方法 | |
CN113495747B (zh) | 一种灰度发布方法和装置 | |
JP2013012225A (ja) | 名称特定プログラム、構成管理サーバおよび情報処理システム | |
US8924403B2 (en) | Method and system for central data querying | |
US20210349704A1 (en) | Method, electronic device, and computer program product for installing application |
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 |