CN113076115B - 基于国产平台的基础软件封装方法 - Google Patents
基于国产平台的基础软件封装方法 Download PDFInfo
- Publication number
- CN113076115B CN113076115B CN202110428688.3A CN202110428688A CN113076115B CN 113076115 B CN113076115 B CN 113076115B CN 202110428688 A CN202110428688 A CN 202110428688A CN 113076115 B CN113076115 B CN 113076115B
- Authority
- CN
- China
- Prior art keywords
- package
- software
- packaging
- platform
- warehouse
- 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
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000004806 packaging method and process Methods 0.000 claims abstract description 37
- 238000012795 verification Methods 0.000 claims abstract description 13
- 238000010276 construction Methods 0.000 claims abstract description 10
- 238000012544 monitoring process Methods 0.000 claims abstract description 4
- 238000012360 testing method Methods 0.000 claims description 11
- 238000005516 engineering process Methods 0.000 claims description 9
- 244000035744 Hura crepitans Species 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 5
- 238000002955 isolation Methods 0.000 claims description 4
- 238000012536 packaging technology Methods 0.000 claims description 3
- 230000006978 adaptation Effects 0.000 abstract description 5
- 238000011161 development Methods 0.000 abstract description 4
- 230000007246 mechanism Effects 0.000 abstract description 3
- 238000005538 encapsulation Methods 0.000 description 7
- 238000005457 optimization Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 230000004069 differentiation Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000009466 transformation 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/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/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/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
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)
- Debugging And Monitoring (AREA)
Abstract
基于国产平台的基础软件封装方法。提供了一种能够进行适配验证和建设多架构软件仓库,进而实现软件运行库和基础软件跨平台封装机制,进一步满足信息系统领域技术自主可控的迫切需求和发展趋势的基于国产平台的基础软件封装方法。运行架构包括服务端,至少包含龙芯、飞腾和申威国产平台组成的编译端,以及若干客户端,自动编译环境的构建,对所述运行架构的自动编译环境进行调试,并针对编译器优化编译配置项参数;所述服务端为:负责接收客户端提供的源码并自动提交给编译端,同时通过istenTCP监听客户端的链接和命令进行统一分发,集中构建;本发明方便各类基础软件开发技术人员的打包封装使用。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及对国产计算机进行基础软件的封装方法。
背景技术
在国产平台自主可控信息系统研制建设中,技术人员积极研究国产基础软硬件兼容适配、集成优化等关键技术,以实现类X86+Wintel平台上的exe样式的快捷安装程序,而国产平台基于Linux生态的限制,无法形成较好得打包封装工具,目前仍存在着生态体系不完备、技术方向碎片化、集成适配封装缺乏有效的机制等诸多问题。
具体表现为基础软件(如驱动程序、基础开发库、运行环境等)在同一国产处理器平台上,跨不同版本操作系统时出现无法使用的问题。
发明内容
本发明针对以上问题,提供了一种能够进行适配验证和建设多架构软件仓库,进而实现软件运行库和基础软件跨平台封装机制,进一步满足信息系统领域技术自主可控的迫切需求和发展趋势的基于国产平台的基础软件封装方法。
本发明的技术方案是:运行架构包括服务端,至少包含龙芯、飞腾和申威国产平台组成的编译端,以及若干客户端,
按以下步骤进行基础软件封装:
1)、自动编译环境的构建,对所述运行架构的自动编译环境进行调试,并针对编译器优化编译配置项参数;
所述服务端为:负责接收客户端提供的源码并自动提交给编译端,同时通过ListenTCP监听客户端的链接和命令进行统一分发,集中构建;
所述客户端为:负责上传所需编译的源码包以及下载编译好的二进制包;
所述编译端为:负责进行编译并打包,与客户端相连,在编译过程中监控状态,当出现错误时,将错误信息返回给客户端供开发人员进行查看;
2)、多格式包封装,
针对不同格式的软件,通过提供国产平台上通用格式封装、统一运行格式封装和/或沙盒格式封装;
3)、建立多架构软件仓库,
设计国产平台权值,有序进行软件分类存放,多架构软件仓库按照龙芯、飞腾和申威进行分类,
其中龙芯平台包括“龙芯+中标麒麟”仓库和“龙芯+深度”仓库,
飞腾平台仅有“飞腾+银河麒麟”仓库,
申威平台包括“申威+中标麒麟”仓库和“申威+深度”仓库。
所述步骤2)中的通用格式封装,包括RPM、DEB、TAR和BIN包格式封装。
所述步骤2)中统一运行格式封装为基于AppImage技术,支持开箱即用、使用便捷,终端用户只需要赋予包可执行权限,实现在终端环境下直接运行或者在桌面环境下双击,借助于运行加载器即可打开应用包,快速启动应用程序。
所述步骤2)中,当基础软件安装包需要具备资源隔离作用时,采用沙盒格式封装技术,即Flatpak技术,实现将应用程序与依赖库进行集成打包,能够屏蔽了国产系统之间的版本差异,以统一包的形式对外提供运行环境。
在龙芯和申威平台,基础软件可以用rpm进行打包,首先配置SPEC文件,使用“rpmbuild -bb 软件名-版本.spec”命令进行打包,最终生成的.rpm格式软件包就生成在RPMS目录下。
在飞腾平台,基础软件可以制作deb包,使用“dpkg -b dirname xxx_new.deb”命令,生成.deb格式的软件包。
在龙芯、飞腾和申威平台平台上,使用appimagetools工具进行打包,用“appimagetools ‘包路径’”命令对基础软件进行打包封装,生成统一格式包.Appimage格式包,实现在不同操作系统上运行。
在龙芯、飞腾和申威平台平台上,均采用“build-init”命令构建目录,然后用“flatpak build”对基础软件进行构建,生成统一格式.flatpak包,在不同操作系统上运行,实现资源的隔离。
所述步骤3)中,对
所述龙芯平台包括“龙芯+中标麒麟”仓库和“龙芯+深度”仓库,
所述飞腾平台仅有“飞腾+银河麒麟”仓库,以及
所述申威平台包括“申威+中标麒麟”仓库和“申威+深度”仓库,
进一步按照桌面和服务器进行版本区分。
还包括测试验证步骤,所述测试验证步骤为:选择移植三维地理信息组件OSG、OsgEarth进行测试验证。
技术效果:由于种种原因,国产平台在CPU指令集、底层驱动等方面,与X86平台有着不小的区别,不同国产平台之间也有着各自的命令和使用方法。本发明所提出的封装方法基于向导式的设计,根据开发人员填写的软件基础信息、配置信息和软件实体,封装装置即可通过自动编译、构建,最终生成不同国产平台架构的软件包,有效促进目前国产平台软件生态发展。本发明实现了在国产平台上开展对软件运行库和基础软件跨平台自动编译构建、封装打包的适配验证。在龙芯、飞腾和申威三个国产平台上分别建立多架构软件仓库,进行多种格式包的统一管理。本发明包括自动编译构建、多格式包封装、多架构软件仓库、集成测试验证等关键步骤,各阶段均可实现服务化和界面的功能,形成一个图形化的封装系统,方便各类基础软件开发技术人员的打包封装使用。
附图说明
图1是本发明的原理框图,
图2是本发明的系统架构框图,
图3是本发明的多架构软件仓库组成示意框图。
具体实施方式
本发明基于国产平台的基础软件封装方法,如图1-3所示,运行架构包括服务端,至少包含龙芯、飞腾和申威国产平台组成的编译端,以及若干客户端,
按以下步骤进行基础软件封装:
1)、自动编译环境的构建,对所述运行架构的自动编译环境进行调试,并针对编译器优化编译配置项参数;
所述服务端为:负责接收客户端提供的源码并自动提交给编译端,同时通过ListenTCP监听客户端的链接和命令进行统一分发,集中构建;
所述客户端为:负责上传所需编译的源码包以及下载编译好的二进制包;
所述编译端为:负责进行编译并打包,与客户端相连,在编译过程中监控状态,当出现错误时,将错误信息返回给客户端供开发人员进行查看;
2)、多格式包封装,
针对不同格式的软件,通过提供国产平台上通用格式封装、统一运行格式封装和/或沙盒格式封装;
3)、建立多架构软件仓库,
设计国产平台权值,有序进行软件分类存放,多架构软件仓库按照龙芯、飞腾和申威进行分类,
其中龙芯平台包括“龙芯+中标麒麟”仓库和“龙芯+深度”仓库,
飞腾平台仅有“飞腾+银河麒麟”仓库,
申威平台包括“申威+中标麒麟”仓库和“申威+深度”仓库。
根据不同平台、不同版本,有以下封装形式:
所述步骤2)中的通用格式封装,包括RPM、DEB、TAR和BIN包格式封装。
所述步骤2)中统一运行格式封装为基于AppImage技术,支持开箱即用、使用便捷,终端用户只需要赋予包可执行权限,实现在终端环境下直接运行或者在桌面环境下双击,借助于运行加载器即可打开应用包,快速启动应用程序。
所述步骤2)中,当基础软件安装包需要具备资源隔离作用时,采用沙盒格式封装技术,即Flatpak技术,实现将应用程序与依赖库进行集成打包,能够屏蔽了国产系统之间的版本差异,以统一包的形式对外提供运行环境。
具体地:
在龙芯和申威平台,基础软件可以用rpm进行打包,首先配置SPEC文件,使用“rpmbuild -bb 软件名-版本.spec”命令进行打包,最终生成的.rpm格式软件包就生成在RPMS目录下。
在飞腾平台,基础软件可以制作deb包,使用“dpkg -b dirname xxx_new.deb”命令,生成.deb格式的软件包。
在龙芯、飞腾和申威平台平台上,使用appimagetools工具进行打包,用“appimagetools ‘包路径’”命令对基础软件进行打包封装,生成统一格式包.Appimage格式包,可以在不同操作系统上运行。
在龙芯、飞腾和申威平台平台上,均采用“build-init”命令构建目录,然后用“flatpak build”对基础软件进行构建,生成统一格式.flatpak包,可以在不同操作系统上运行,可以实现资源的隔离。
所述步骤3)中,对
所述龙芯平台包括“龙芯+中标麒麟”仓库和“龙芯+深度”仓库,
所述飞腾平台仅有“飞腾+银河麒麟”仓库,
所述申威平台包括“申威+中标麒麟”仓库和“申威+深度”仓库;
进一步按照桌面和服务器进行版本区分。
采用链式管理技术将各式软件包按权值有序存放,保证集成过程标准规范,在集成过程中,定制标签判别国产平台硬件的架构类型、操作系统类型,最终根据基础软件的标签查找到相应的库,其中基础软件的存在形式可以是RPM、DEB、TAR、BIN、Flatpak、AppImage包等。
进一步地,本发明基于国产平台的基础软件封装方法,还包括测试验证步骤,所述测试验证步骤为:选择移植三维地理信息组件OSG、OsgEarth进行测试验证。
选择移植三维地理信息组件OSG、OsgEarth进行上述方法测试验证,根据国产CPU架构特性,结合国产特定编译器优化技术,优化标准库的国产化实现,对其以及依赖的底层图形库进行深度优化,依赖库的优化手段包括编译器参数优化、源码分析改造、接口调试、编译参数自适应调整等。同时结合不同国产CPU特点,采用以下技术手段进行性能优化,主要包括统一内存页大小、内存对齐和充分利用多核。
在编译构建时,通过指定其构建类型、构建目录、添加QT5支持等参数进行详细配置,在构建其二级依赖库GDAL时需加入--with-openjpeg参数才能支持JPEG格式的瓦片化数据被OsgEarth读取,否则在运行OsgEarth将会出现JPEG文件读取错误。
Claims (4)
1.基于国产平台的基础软件封装方法,其特征在于,运行架构包括服务端,至少包含龙芯、飞腾和申威国产平台组成的编译端,以及若干客户端,
按以下步骤进行基础软件封装:
1)、自动编译环境的构建,对所述运行架构的自动编译环境进行调试,并针对编译器优化编译配置项参数;
所述服务端为:负责接收客户端提供的源码并自动提交给编译端,同时通过ListenTCP监听客户端的链接和命令进行统一分发,集中构建;
所述客户端为:负责上传所需编译的源码包以及下载编译好的二进制包;
所述编译端为:负责进行编译并打包,与客户端相连,在编译过程中监控状态,当出现错误时,将错误信息返回给客户端供开发人员进行查看;
2)、多格式包封装,
针对不同格式的软件,通过提供国产平台上通用格式封装、统一运行格式封装和/或沙盒格式封装;
3)、建立多架构软件仓库,
设计国产平台权值,有序进行软件分类存放,多架构软件仓库按照龙芯、飞腾和申威进行分类,
其中龙芯平台包括“龙芯+中标麒麟”仓库和“龙芯+深度”仓库,
飞腾平台仅有“飞腾+银河麒麟”仓库,
申威平台包括“申威+中标麒麟”仓库和“申威+深度”仓库;
其特征在于,
在龙芯、飞腾和申威平台上,使用appimagetools工具进行打包,用“appimagetools‘包路径’”命令对基础软件进行打包封装,生成统一格式包.Appimage格式包,实现在不同操作系统上运行;
或在龙芯、飞腾和申威平台上,均采用“build-init”命令构建目录,然后用“flatpakbuild”对基础软件进行构建,生成统一格式.flatpak包,在不同操作系统上运行,实现资源的隔离;
所述步骤3)中,对
所述龙芯平台包括“龙芯+中标麒麟”仓库和“龙芯+深度”仓库,
所述飞腾平台仅有“飞腾+银河麒麟”仓库,以及
所述申威平台包括“申威+中标麒麟”仓库和“申威+深度”仓库,
进一步按照桌面和服务器进行版本区分;
在龙芯和申威平台,基础软件可以用rpm进行打包,首先配置SPEC文件,使用“rpmbuild-bb 软件名-版本.spec”命令进行打包,最终生成的.rpm格式软件包就生成在RPMS目录下;
在飞腾平台,基础软件可以制作deb包,使用“dpkg -b dirname xxx_new.deb”命令,生成.deb格式的软件包;
还包括测试验证步骤,所述测试验证步骤为:选择移植三维地理信息组件OSG、OsgEarth进行测试验证。
2.根据权利要求1所述的基于国产平台的基础软件封装方法,其特征在于,
所述步骤2)中的通用格式封装,包括RPM、DEB、TAR和BIN包格式封装。
3.根据权利要求1所述的基于国产平台的基础软件封装方法,其特征在于,
所述步骤2)中统一运行格式封装为基于AppImage技术,支持开箱即用、使用便捷,终端用户只需要赋予包可执行权限,实现在终端环境下直接运行或者在桌面环境下双击,借助于运行加载器即可打开应用包,快速启动应用程序。
4.根据权利要求1所述的基于国产平台的基础软件封装方法,其特征在于,
所述步骤2)中,当基础软件安装包需要具备资源隔离作用时,采用沙盒格式封装技术,即Flatpak技术,实现将应用程序与依赖库进行集成打包,能够屏蔽了国产系统之间的版本差异,以统一包的形式对外提供运行环境。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110428688.3A CN113076115B (zh) | 2021-04-21 | 2021-04-21 | 基于国产平台的基础软件封装方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110428688.3A CN113076115B (zh) | 2021-04-21 | 2021-04-21 | 基于国产平台的基础软件封装方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113076115A CN113076115A (zh) | 2021-07-06 |
CN113076115B true CN113076115B (zh) | 2023-12-26 |
Family
ID=76618149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110428688.3A Active CN113076115B (zh) | 2021-04-21 | 2021-04-21 | 基于国产平台的基础软件封装方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113076115B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113721917A (zh) * | 2021-08-03 | 2021-11-30 | 北京科东电力控制系统有限责任公司 | 基于国产芯片的电网调度控制系统自动编译方法及装置 |
CN113805899B (zh) * | 2021-08-25 | 2024-01-26 | 浪潮卓数大数据产业发展有限公司 | 一种软件自动部署方法 |
CN115756514A (zh) * | 2022-11-14 | 2023-03-07 | 中国电子科技集团公司第十五研究所 | 一种软件自动化编译方法及系统 |
CN117331565B (zh) * | 2023-10-09 | 2024-05-28 | 镁佳(北京)科技有限公司 | 软件生成方法、装置、计算机设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103605520A (zh) * | 2013-11-22 | 2014-02-26 | 中标软件有限公司 | Rpm软件包转换方法及转换系统 |
CN107741859A (zh) * | 2017-11-03 | 2018-02-27 | 山东浪潮云服务信息科技有限公司 | 基于国产cpu和os的软件包管理方法、装置及系统 |
CN108595186A (zh) * | 2018-03-27 | 2018-09-28 | 天津麒麟信息技术有限公司 | 一种飞腾平台上基于完全函数的多版本软件管理方法 |
CN110727440A (zh) * | 2019-10-08 | 2020-01-24 | 中国电子科技集团公司第二十八研究所 | 一种软件封装方法 |
CN112083951A (zh) * | 2020-09-24 | 2020-12-15 | 中国人民解放军国防科技大学 | 一种支持多操作系统平台的软件包统一管理方法及系统 |
CN112612474A (zh) * | 2020-12-25 | 2021-04-06 | 航天信息股份有限公司 | 产品移植方法、装置、存储介质和电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070271552A1 (en) * | 2006-05-19 | 2007-11-22 | Pulley Robert A | System and method for packaging software |
-
2021
- 2021-04-21 CN CN202110428688.3A patent/CN113076115B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103605520A (zh) * | 2013-11-22 | 2014-02-26 | 中标软件有限公司 | Rpm软件包转换方法及转换系统 |
CN107741859A (zh) * | 2017-11-03 | 2018-02-27 | 山东浪潮云服务信息科技有限公司 | 基于国产cpu和os的软件包管理方法、装置及系统 |
CN108595186A (zh) * | 2018-03-27 | 2018-09-28 | 天津麒麟信息技术有限公司 | 一种飞腾平台上基于完全函数的多版本软件管理方法 |
CN110727440A (zh) * | 2019-10-08 | 2020-01-24 | 中国电子科技集团公司第二十八研究所 | 一种软件封装方法 |
CN112083951A (zh) * | 2020-09-24 | 2020-12-15 | 中国人民解放军国防科技大学 | 一种支持多操作系统平台的软件包统一管理方法及系统 |
CN112612474A (zh) * | 2020-12-25 | 2021-04-06 | 航天信息股份有限公司 | 产品移植方法、装置、存储介质和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113076115A (zh) | 2021-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113076115B (zh) | 基于国产平台的基础软件封装方法 | |
CN1160626C (zh) | 基于标记的链接 | |
CN100442234C (zh) | 用于嵌入式系统的软件包构建方法和系统 | |
CN102693121A (zh) | 一种跨平台手机应用的自动开发制作系统及实现方法 | |
CN111858370B (zh) | DevOps的实现方法、装置、计算机可读介质 | |
CN106775730A (zh) | 程序发布方法及系统 | |
CN105100191A (zh) | 一种云编译实现Java应用安装的方法、装置及系统 | |
US20180157479A1 (en) | Cloud service framework for toolkit deployment | |
CN102053836A (zh) | 一种Android应用开发的版本管理工具的实现方法 | |
CN113672342B (zh) | 嵌入式虚拟化系统及构建、测试方法、终端及介质 | |
CN115629971A (zh) | 一种应用的开发系统和开发方法 | |
CN113407362A (zh) | 基于车载Android系统SOA架构SOMEIP通信中间层实现方法及系统 | |
CN109992517A (zh) | 基于uefi的固件模块调试方法和系统 | |
CN113986395A (zh) | 一种linux系统下应用依赖自包含技术的打包方法 | |
CN113312046A (zh) | 子应用页面处理方法、装置和计算机设备 | |
CN116991381B (zh) | 一种应用交叉编译方法、装置、计算设备及存储介质 | |
CN107943504A (zh) | 一种嵌入式系统中软件模块的动态升级方法 | |
CN107315596A (zh) | 一种代码自动打包部署方法和装置 | |
US9411569B1 (en) | System and method for providing a climate data analytic services application programming interface distribution package | |
CN114237760B (zh) | 一种将工业机理模型封装为容器镜像并发布web服务的方法 | |
CN116775087A (zh) | 一种热修复方法、装置、电子设备及存储介质 | |
CN111580853A (zh) | 多渠道软件安装包通用生成方法 | |
CN106843994B (zh) | 一种基于动态编译的客户端软件运行方法 | |
KR20190075508A (ko) | 가상화된 시스템 상에서 임베디드 소프트웨어를 자동으로 생성하는 방법 및 컴퓨팅 시스템 | |
JP7363931B2 (ja) | オフロードサーバ、オフロード制御方法およびオフロードプログラム |
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 | ||
CB02 | Change of applicant information |
Address after: No.96 Anlin Road, Yangzhou City, Jiangsu Province 225006 Applicant after: Yangzhou Wanfang Technology Co.,Ltd. Address before: No.96 Anlin Road, Yangzhou City, Jiangsu Province 225006 Applicant before: YANGZHOU WANFANG ELECTRONIC TECHNOLOGY LLC |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |