一种软件自动适配操作系统的方法技术方案

技术编号:19820822 阅读:32 留言:0更新日期:2018-12-19 14:21
本发明专利技术提供一种软件自动适配操作系统的方法,包括如下步骤:创建该操作系统对应的容器,完成虚拟化操作系统平台的搭建;编译软件实现软件对操作系统的自动适配。步骤创建该操作系统对应的容器,完成虚拟化操作系统平台的搭建中,具体实现步骤包括:S21:准备操作系统的镜像iso文件;S22:在docker服务器上下载安装rootfs工具,使用此工具制作当前镜像iso文件的根目录系统;S23:编写docker file文件,生成容器。编写docker file文件既要考虑当前系统属于fedora系列还是ubuntu系列,又要考虑软件所依赖的软件包是否存在于镜像中,故实际操作中需根据实际情况编写。

【技术实现步骤摘要】
一种软件自动适配操作系统的方法
本专利技术属于国产操作系统软件可移植性研究
,具体涉及一种软件自动适配操作系统的方法。
技术介绍
随着国产操作系统产业的蓬勃发展,各类国产操作系统纷纷呈现,应用较广的包括中标麒麟、银河麒麟和深度等,而这些操作系统都根植于linux内核,分属于不同的系列,而不同的系列又具有不同的系统运行环境,所以linux软件在各个国产操作系统上的可移植性一直是一个值得关注的问题,如何提高软件的适配效率关系到软件厂商投入的人力和财力。对于软件适配过程,绝大部分的优化还是着重于各类型软件包的维护以及每个环节的优化,很少对整个流程进行整理和设计,缺乏系统的观念,而适配的多发性又大大提高了软件维护的成本,对厂商和用户来说都是不利的。目前针对软件所适配的操作系统环境的搭建方面,都是通过传统的虚拟化技术或者实体机进行操作系统的安装,而国产操作系统的多样性以及多版本的特点使得成本难以降低。操作系统环境的搭建一般可以在实体机中直接安装操作系统完成,但是由于不够轻量方便,一般会采用虚拟机的方法,通过vmvare或者virtualbox等虚拟化软件进行虚拟机的管理,但是vmvare和virtualbox一般应用于终端机,并不部署在服务器中。
技术实现思路
为了克服上述现有技术中的不足,本专利技术提供一种软件自动适配操作系统的方法,以解决上述技术问题。本专利技术的技术方案是:一种软件自动适配操作系统的方法,包括如下步骤:创建该操作系统对应的容器,完成虚拟化操作系统平台的搭建;编译软件实现软件对操作系统的自动适配。进一步的,步骤创建该操作系统对应的容器,完成虚拟化操作系统平台的搭建中,具体实现步骤包括:S21:准备操作系统的镜像iso文件;S22:在docker服务器上下载安装rootfs工具,使用此工具制作当前镜像iso文件的根目录系统;S23:编写dockerfile文件,生成容器。编写dockerfile文件既要考虑当前系统属于fedora系列还是ubuntu系列,又要考虑软件所依赖的软件包是否存在于镜像中,故实际操作中需根据实际情况编写,所述容器除内核外与操作系统的镜像iso文件对应的用户环境完全相同。进一步的,步骤S23之后,还包括:S24:将软件源码装入容器,并制定容器运行时所执行的适配脚本,从而保证容器的运行与软件的自动化编译和打包是同时进行的。进一步的,步骤编译软件实现软件对操作系统的自动适配,包括:S41:获取当前系统的位数和版本信息,调整代码;S42:执行编译脚本,若编译成功,打包软件以及软件依赖的动态库;S43:在docker容器中安装并执行适配软件。进一步的,步骤S41还包括:在容器中配置包管理器软件源,解决软件依赖,具体实现包括:在操作系统的镜像iso文件中,配置yum或者apt的安装源为本地,进行相应软件包的安装。进一步的,步骤S42:还包括:执行编译脚本,若编译不成功,执行步骤41。进一步的,步骤S42具体包括:S421:设置-WL,-rpath选项进行编译;S422:自动捕捉和分析编译过程中产生的错误,若不能自动解决常见错误,需要手动修改软件代码;S423:将软件编译成功的可执行文件、软件所依赖的动态库以及打包工具所需要的文件进行打包。进一步的,步骤S422还包括将执行编译过程中的日志信息进行记录存储。进一步的,步骤S423还包括:根据编译时设置的-WL,-rpath选项所指定的位置来释放依赖文件。根据提供的国产操作系统镜像,完成该虚拟化操作系统对应容器的创建,并在容器中配置包管理器软件源,从而能够自动解决软件编译过程中产生的依赖,完成操作系统平台的搭建。然后执行软件的编译脚本,在编译脚本中通过设置特定编译选项提高软件的可移植性,编译成功后,根据平台包管理器的不同,完成不同类型安装包的制作,从而实现了软件对操作系统的自动适配。从以上技术方案可以看出,本专利技术具有以下优点:该方法的实现在操作系统环境搭建、软件编译和安装包制作等方面对于用户来说是透明的,大大减少了软件维护者在操作系统适配过程中的工作,并且可以保证软件在真实用户环境的可用性,具有非常好的兼容性。一方面体现在软件适配成本的下降,又体现在适配成功后软件在真实用户环境中的正常运行,同时该方法大大提高了国产操作系统软件的可移植性,保证软件在仅进行少量源码改动的情况下,提高从一个国产操作系统平台到另一个国产操作系统平台的移植效率。此外,本专利技术设计原理可靠,结构简单,具有非常广泛的应用前景。由此可见,本专利技术与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。附图说明图1为本专利技术实施例提供的一种软件自动适配操作系统的方法流程示意图;图2为本专利技术实施例提供的一种软件自动适配操作系统的方法中虚拟操作系统平台的搭建流程示意图;图3为本专利技术实施例提供的一种软件自动适配操作系统的方法中软件自动编译打包流程图。具体实施方式下面结合附图并通过具体实施例对本专利技术进行详细阐述,以下实施例是对本专利技术的解释,而本专利技术并不局限于以下实施方式。如图1-3所示,本专利技术实施例1提供的一种软件自动适配操作系统的方法,包括如下步骤:S1:创建该操作系统对应的容器,完成虚拟化操作系统平台的搭建;S21:准备操作系统的镜像iso文件;S22:在docker服务器上下载安装rootfs工具,使用此工具制作当前镜像iso文件的根目录系统;S23:编写dockerfile文件,生成容器。编写dockerfile文件既要考虑当前系统属于fedora系列还是ubuntu系列,又要考虑软件所依赖的软件包是否存在于镜像中,故实际操作中需根据实际情况编写,所述容器除内核外与操作系统的镜像iso文件对应的用户环境完全相同。步骤S23之后,还包括:S24:将软件源码装入容器,并制定容器运行时所执行的适配脚本,从而保证容器的运行与软件的自动化编译和打包是同时进行的。S2:编译软件实现软件对操作系统的自动适配,包括:S41:获取当前系统的位数和版本信息,调整代码;S42:执行编译脚本,若编译成功,打包软件以及软件依赖的动态库,若编译不成功,执行步骤41。;S43:在docker容器中安装并执行适配软件。步骤S41还包括:在容器中配置包管理器软件源,解决软件依赖,具体实现包括:在操作系统的镜像iso文件中,配置yum或者apt的安装源为本地,进行相应软件包的安装。步骤S42具体包括:S421:设置-WL,-rpath选项进行编译;S422:自动捕捉和分析编译过程中产生的错误,若不能自动解决常见错误,需要手动修改软件代码,并将执行编译过程中的日志信息进行记录存储;S423:将软件编译成功的可执行文件、软件所依赖的动态库以及打包工具所需要的文件进行打包。步骤S423还包括:根据编译时设置的-WL,-rpath选项所指定的位置来释放依赖文件。本专利技术实施例2提供的一种软件自动适配操作系统的方法,包括如下步骤:S1:创建该操作系统对应的容器,完成虚拟化操作系统平台的搭建;S21:准备操作系统的镜像iso文件;S22:在docker服务器上下载安装rootfs工具,使用此工具制作当前镜像iso文件的根目录系统;S23:编写dockerfile文件,生成容器。编写docker本文档来自技高网...

【技术保护点】
1.一种软件自动适配操作系统的方法,其特征在于,包括如下步骤:创建该操作系统对应的容器,完成虚拟化操作系统平台的搭建;编译软件实现软件对操作系统的自动适配。

【技术特征摘要】
1.一种软件自动适配操作系统的方法,其特征在于,包括如下步骤:创建该操作系统对应的容器,完成虚拟化操作系统平台的搭建;编译软件实现软件对操作系统的自动适配。2.根据权利要求1所述的一种软件自动适配操作系统的方法,其特征在于,步骤创建该操作系统对应的容器,完成虚拟化操作系统平台的搭建,具体实现步骤包括:S21:准备操作系统的镜像iso文件;S22:在docker服务器上下载安装rootfs工具,使用此工具制作当前镜像iso文件的根目录系统;S23:编写dockerfile文件,生成容器,所述容器除内核外与操作系统的镜像iso文件对应的用户环境完全相同。3.根据权利要求2所述的一种软件自动适配操作系统的方法,其特征在于,步骤S23之后,还包括:S24:将软件源码装入容器,并制定容器运行时所执行的适配脚本。4.根据权利要求1所述的一种软件自动适配操作系统的方法,其特征在于,步骤编译软件实现软件对操作系统的自动适配,包括:S41:获取当前系统的位数和版本信息,调整代码;S42:执行编译脚本,若编译成功,打包软件以及软件依赖的动态库;S43:在docker容器中安装并...

【专利技术属性】
技术研发人员:常双举郭猛善刘强李婷
申请(专利权)人:山东超越数控电子股份有限公司
类型:发明
国别省市:山东,37

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

1