软件源码编译方法及装置制造方法及图纸

技术编号:14776211 阅读:47 留言:0更新日期:2017-03-09 13:01
本发明专利技术提供了一种软件源码编译方法及装置,解决了现有技术中软件源码编译必须依赖本地环境以及不能保留编译环境的问题。所述软件源码编译方法包括:为软件创建一个最小编译系统;以chroot方式在所述最小编译系统中编译所述软件的源码包;将编译后的源码包存储到指定位置。本发明专利技术实施例适用于进行软件源码编译。

【技术实现步骤摘要】

本专利技术涉及软件编译
,尤其涉及一种软件源码编译方法及装置
技术介绍
RPM(RedHatPackageManager,红帽子包管理器)是用于Linux分发版的最常见的软件包管理器。RPM有五种基本的操作功能:安装、卸载、升级、查询和验证。这五种基本功能的实现仅仅需要用RPM+选项+RPM包就能轻易地实现。如果要发布RPM格式的源码包或者是二进制包,就要使用RPM最新打包工具RPMbuild(创建RPM),RPMbuild是一种常用的软件源码编译方法。在实现本专利技术的过程中,专利技术人发现现有技术中至少存在如下技术问题:采用RPMbuild进行软件源码编译,必须依赖本地环境,在编译过程中容易受到外界环境的干扰,不能有效保证软件源码包编译的正确性。
技术实现思路
本专利技术提供的软件源码编译方法及装置,能够为软件构建独立的编译环境,从而可以减少外界环境的干扰,有效保证源码包编写的正确性。第一方面,本专利技术提供一种软件源码编译方法,包括:为软件创建一个最小编译系统;以改变根目录chroot方式在所述最小编译系统中编译所述软件的源码包;将编译后的源码包存储到指定位置。第二方面,本专利技术提供一种软件源码编译装置,包括:创建单元,用于为软件创建一个最小编译系统;编译单元,用于以改变根目录chroot方式在所述最小编译系统中编译所述软件的源码包;存储单元,用于将编译后的源码包存储到指定位置。本专利技术实施例提供的软件源码编译方法及装置,为软件创建一个最小编译系统,以chroot方式在所述最小编译系统中编译所述软件的源码包,将编译后的源码包存储到指定位置。与现有技术相比,本专利技术能够为软件构建独立的编译环境,以便最大限度地减少外界环境的干扰,从而有效保证源码包的编写的正确性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术软件源码编译方法实施例一的流程图;图2为本专利技术软件源码编译方法实施例二的流程图;图3为本专利技术软件源码编译装置实施例一的结构示意图;图4为本专利技术软件源码编译装置实施例二的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术提供一种软件源码编译方法,图1为本专利技术软件源码编译方法实施例一的流程图,如图1所示,本实施例的方法包括:S11、为软件创建一个最小编译系统;S12、以chroot(changeroot,改变根目录)方式在所述最小编译系统中编译所述软件的源码包;采用chroot方式在所述最小编译系统中编译所述软件的源码包,从而生成新的源码包和工作目录。S13、将编译后的源码包存储到指定位置。其中,所述指定位置为系统预先设定好的位置。本专利技术实施例提供的软件源码编译方法,为软件创建一个最小编译系统,以chroot方式在所述最小编译系统中编译所述软件的源码包,将编译后的源码包存储到指定位置。与现有技术相比,本专利技术能够为软件构建独立的编译环境,以便最大限度地减少外界环境的干扰,从而有效保证源码包的编写的正确性。本专利技术实施例还提供一种软件源码编译方法,图2为本专利技术软件源码编译方法实施例二的流程图,以在fedora中进行软件源码编译为例,如图2所示,本实施例的方法包括:S21、为软件创建一个最小编译系统。在fedora中,每个软件的发布版中都会提供最小编译系统的RPM包列表,根据软件发布版中提供的最小编译系统的RPM包列表,为软件创建一个最小编译系统。其中,在为软件创建一个最小编译系统之前,需要执行如下操作:首先,为编译环境配置参数;编译环境的配置参数可以包括:编译时chroot后用户的主目录、是否使用系统DNS(DomainNameSystem,域名系统)、工作目录、编译超时、编译任务目录、目标平台、编译环境搭建的命令、发布版后缀、是否使用rootcache(根缓存)、rootcache目录、ccache(compilercache,编译器缓存)加快重新编译时的速度、ccache大小、ccache目录、是否使用yumcache(yum缓存);RPM编译相关的配置参数可以包括:编译的主机平台、cpu架构、打包时的vendor(供应商)、编译的根目录、RPM包命名格式、打包者信息等。然后,配置yum(YellowdogUpdater,Modified)源;其中,yum是一个软件包管理器,是为了解决Linux系统中特有的依赖关系问题而存在的。yum源相当于一个目录项,当使用yum机制安装软件时,若需要安装依赖软件,则yum机制会根据在yum源中定义好的路径查找依赖软件,并将依赖软件安装好。yum从指定的地方,例如相关网站的RPM包地址或本地的RPM路径自动下载RPM包并且安装,能够很好的解决依赖关系问题。yum的基本工作机制如下:在服务器端,服务器上面存放了所有的RPM软件包,然后以相关的功能去分析每个RPM文件的依赖性关系,将这些数据记录成文件存放在服务器的某特定目录内;在客户端,如果需要安装某个软件时,先下载服务器上面记录的依赖性关系文件,通过对服务器端下载的纪录数据进行分析,然后取得所有相关的软件,一次全部下载下来进行安装。具体地,配置后续编译软件源码包时需要用到的各种参数和变量,后续需要安装的所有软件都从yum源中获取。最后,运行run.sh脚本。其中,run.sh脚本为一shell脚本,shell脚本可将多条命令编写到一个文件中,通过运行脚本文件即可完成指定的工作。常用于系统启动、程序编译等需要重复执行大量命令的场合。S22、以chroot方式在所述最小编译系统中编译所述软件的源码包。具体地,可以使用chroot工具进入到所述最小编译系统中,只安装要编译的源码包的依赖包,并进行编译。其中,所述chroot方式即changeroot,具体为:改变应用程序执行时所参考的根目录位置,编译完成后运行的所有程序都是指定的根目录下的程序。S23、将编译后的源码包存储到指定位置。S24、记录所述软件的源码包的编译过程。本专利技术实施例提供的软件源码编译方法,为软件创建一个最小编译系统,以chroot方式在所述最小编译系统中编译所述软件的源码包,将编译后的源码包存储到指定位置。与现有技术相比,本专利技术能够为软件构建独立的编译环境,以便最大限度地减少外界环境的干扰,从而有效保证源码包的编写的正确性;此外,使用灵活,能根据需要保留编译环境。上述软件源码编译方法实施例可以基于MIPS(Microprocessorwithoutinterlockedpipedstages,无内部互锁流水级的微处理器)平台。本专利技术实施例提供一种软件源码编译装置,图3为本专利技术软件源码编译装置实施例一的结本文档来自技高网...
软件源码编译方法及装置

【技术保护点】
一种软件源码编译方法,其特征在于,包括:为软件创建一个最小编译系统;以改变根目录chroot方式在所述最小编译系统中编译所述软件的源码包;将编译后的源码包存储到指定位置。

【技术特征摘要】
1.一种软件源码编译方法,其特征在于,包括:为软件创建一个最小编译系统;以改变根目录chroot方式在所述最小编译系统中编译所述软件的源码包;将编译后的源码包存储到指定位置。2.根据权利要求1所述的方法,其特征在于,在所述将编译后的源码包放到指定位置之后,还包括:记录所述软件的源码包的编译过程。3.根据权利要求1所述的方法,其特征在于,在费多拉fedora中,所述为软件创建一个最小编译系统包括:根据软件发布版中提供的最小编译系统的红帽子包管理器RPM包列表,创建一个最小编译系统。4.根据权利要求1所述的方法,其特征在于,所述以chroot方式在所述最小编译系统中编译所述软件的源码包包括:使用chroot工具进入到所述最小编译系统中,只安装要编译的源码包的依赖包,并进行编译。5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法基...

【专利技术属性】
技术研发人员:高翔汪雷
申请(专利权)人:龙芯中科技术有限公司
类型:发明
国别省市:北京;11

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

1