一种开源软件移植方法、装置、设备及存储介质制造方法及图纸

技术编号:34698756 阅读:15 留言:0更新日期:2022-08-27 16:34
本申请公开了一种开源软件移植方法、装置、设备及存储介质,涉及软件移植技术领域,包括:获取目标开源软件对应的SRPM源码包;SRPM源码包为Linux平台下的与目标开源软件对应的源码包;对SRPM源码包中的spec文件进行修正,得到修正后SRPM源码包;通过RPM包构建工具对修正后SRPM源码包进行编译,得到与目标开源软件对应的二进制RPM软件包;利用二进制RPM软件包将目标开源软件移植安装至AIX平台上。本申请对获取到的SRPM源码包中的spec文件进行修正,通过RPM包构建工具对修正后SRPM源码包进行编译得到二进制RPM软件包,利用该二进制RPM软件包将目标开源软件移植安装至AIX平台上,也即,本申请的技术方案能够实现开源软件移植的自动化,降低移植过程难度,避免移植过程出现错误。现错误。现错误。

【技术实现步骤摘要】
一种开源软件移植方法、装置、设备及存储介质


[0001]本专利技术涉及软件移植
,特别涉及一种开源软件移植方法、装置、设备及存储介质。

技术介绍

[0002]当前,随着互联网兴起,很多软件开发者都基于LAMP应用组合架构搭建Web应用平台,并在它的基础上开发了大量应用软件,同时开发开源软件的开源爱好者贡献了大量的开源软件,但大部分的开源软件都是基于X86 Linux平台进行开发的。其中,所述LAMP应用组合架构即Linux(操作系统)、Apache(HTTP服务器)、MySQL(数据库)、PHP(网络编程语言)。
[0003]现在很多应用软件开发商基于开发运维框架和流程开发新的云原生应用(、Cloud native Apps)和容器化应用(Containerized Apps),会用到很多开源软件,其中,一些开源软件是可以跨平台运行的,比如基于Java、Go等语言开发的应用软件,可以一次编译后跨平台运行,或者是基于解释执行的语言JavaScript、Python、R、Ruby也可以跨平台运行,也有很多开源软件是基于C或者C++语言开发的,需要用不同平台各自的编译器编译后才能运行,这些开源软件是由开发者基于X86 Linux平台进行开发的,使得很多开源软件社区只发布了基于Linux平台下的编译后二进制软件包,而没有发布基于AIX(Advanced Interactive eXecutive,即基于System V开发的UNIX操作系统)平台的相应编译后二进制软件包。目前,虽然有一些站点,如Linux Toolbox,power

devops等站点,会有很多Power服务器AIX平台的开源软件包,当需要使用这些开源软件时可以到这些站点去下载开源软件包,然而对于在这些站点上找不到其它开源软件包,且开源社区也未提供基于AIX平台的相应编译后二进制软件包的开源软件,则需要下载所需开源软件版本的源代码,在AIX平台上自行编译安装,但是编译开源软件包,尤其是较大型的开源软件,需要知道该开源软件依赖于其它哪些软件、选用AIX平台什么类型的编译器及版本、采用什么样的编译与链接选项、需要定义什么样的编译环境变量等,这样就会导致耗费大量时间和精力去研究开源软件的编译模板、相关说明甚至代码而且在这个过程中还有可能出现缺少编译依赖软件库,因编译环境变量不对导致编译错误等问题,解决这些问题也需要耗费大量的时间和精力。

技术实现思路

[0004]有鉴于此,本专利技术的目的在于提供一种开源软件移植方法、装置、设备及存储介质,能够实现开源软件移植的自动化,从而降低移植过程难度,避免移植过程出现错误和移植后软件运行风险。其具体方案如下:
[0005]第一方面,本申请公开了一种开源软件移植方法,包括:
[0006]获取目标开源软件对应的SRPM源码包;所述SRPM源码包为Linux平台下的与所述目标开源软件对应的源码包;
[0007]对所述SRPM源码包中的spec文件进行修正,得到修正后SRPM源码包;
[0008]通过RPM包构建工具对所述修正后SRPM源码包进行编译,得到与所述目标开源软
件对应的二进制RPM软件包;
[0009]利用所述二进制RPM软件包将所述目标开源软件移植安装至AIX平台上。
[0010]可选的,所述对所述SRPM源码包中的spec文件进行修正,得到修正后SRPM源码包之前,还包括:
[0011]确定所述目标开源软件对应的关于所述AIX平台与所述Linux平台之间的目标差异列表。
[0012]可选的,所述确定所述目标开源软件对应的关于所述AIX平台与所述Linux平台之间的目标差异列表,包括:
[0013]确定所述目标开源软件对应的关于所述AIX平台与所述Linux平台之间的包含目标编译器差异和目标编译选项差异的目标差异列表。
[0014]可选的,所述确定所述目标开源软件对应的关于所述AIX平台与所述Linux平台之间的目标差异列表,包括:
[0015]从预先构建的差异知识库中确定出与所述目标开源软件对应的关于所述AIX平台与所述Linux平台之间的目标差异列表。
[0016]可选的,所述从预先构建的差异知识库中确定出与所述目标开源软件对应的关于所述AIX平台与所述Linux平台之间的目标差异列表之前,还包括:
[0017]确定所述AIX平台与所述Linux平台之间的编译器差异和编译选项差异;
[0018]利用所述编译器差异和所述编译选项差异构建相应的差异知识库。
[0019]可选的,所述对所述SRPM源码包中的spec文件进行修正,得到修正后SRPM源码包,包括:
[0020]根据所述目标差异列表对所述SRPM源码包中的spec文件进行修正,得到修正后SRPM源码包。
[0021]可选的,所述通过RPM包构建工具对所述修正后SRPM源码包进行编译,得到与所述目标开源软件对应的二进制RPM软件包,包括:
[0022]将所述目标差异列表定义为编译变量列表,并将所述编译变量列表发送至RPM包构建工具,以便所述RPM包构建工具基于所述编译变量列表对所述修正后SRPM源码包进行编译,得到与所述目标开源软件对应的二进制RPM软件包。
[0023]第二方面,本申请公开了一种开源软件移植装置,包括:
[0024]源码包获取模块,用于获取目标开源软件对应的SRPM源码包;所述SRPM源码包为Linux平台下的与所述目标开源软件对应的源码包;
[0025]文件修正模块,用于对所述SRPM源码包中的spec文件进行修正,得到修正后SRPM源码包;
[0026]文件编译模块,用于通过RPM包构建工具对所述修正后SRPM源码包进行编译,得到与所述目标开源软件对应的二进制RPM软件包;
[0027]软件安装模块,用于利用所述二进制RPM软件包将所述目标开源软件移植安装至AIX平台上。
[0028]第三方面,本申请公开了一种电子设备,包括:
[0029]存储器,用于保存计算机程序;
[0030]处理器,用于执行所述计算机程序,以实现前述公开的开源软件移植方法的步骤。
[0031]第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的开源软件移植方法的步骤。
[0032]可见,本申请提供了一种开源软件移植方法,包括:获取目标开源软件对应的SRPM源码包;所述SRPM源码包为Linux平台下的与所述目标开源软件对应的源码包;对所述SRPM源码包中的spec文件进行修正,得到修正后SRPM源码包;通过RPM包构建工具对所述修正后SRPM源码包进行编译,得到与所述目标开源软件对应的二进制RPM软件包;利用所述二进制RPM软件包将所述目标开源软件移植安装至AIX平台上。由此可知,本申请通过获取Linux平台下的与所述目标开源软件对应的SRPM源码包,然后对该SRPM源本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种开源软件移植方法,其特征在于,包括:获取目标开源软件对应的SRPM源码包;所述SRPM源码包为Linux平台下的与所述目标开源软件对应的源码包;对所述SRPM源码包中的spec文件进行修正,得到修正后SRPM源码包;通过RPM包构建工具对所述修正后SRPM源码包进行编译,得到与所述目标开源软件对应的二进制RPM软件包;利用所述二进制RPM软件包将所述目标开源软件移植安装至AIX平台上。2.根据权利要求1所述的开源软件移植方法,其特征在于,所述对所述SRPM源码包中的spec文件进行修正,得到修正后SRPM源码包之前,还包括:确定所述目标开源软件对应的关于所述AIX平台与所述Linux平台之间的目标差异列表。3.根据权利要求2所述的开源软件移植方法,其特征在于,所述确定所述目标开源软件对应的关于所述AIX平台与所述Linux平台之间的目标差异列表,包括:确定所述目标开源软件对应的关于所述AIX平台与所述Linux平台之间的包含目标编译器差异和目标编译选项差异的目标差异列表。4.根据权利要求2所述的开源软件移植方法,其特征在于,所述确定所述目标开源软件对应的关于所述AIX平台与所述Linux平台之间的目标差异列表,包括:从预先构建的差异知识库中确定出与所述目标开源软件对应的关于所述AIX平台与所述Linux平台之间的目标差异列表。5.根据权利要求4所述的开源软件移植方法,其特征在于,所述从预先构建的差异知识库中确定出与所述目标开源软件对应的关于所述AIX平台与所述Linux平台之间的目标差异列表之前,还包括:确定所述AIX平台与所述Linux平台之间的编译器差异和编译选项差异;利用所述编译器差异和所述编译选项差异...

【专利技术属性】
技术研发人员:李松青
申请(专利权)人:浪潮商用机器有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1