bitbake介绍
从根本上讲,BitBake是一个通用的任务执行引擎,它使Shell和Python任务可以在复杂的任务间依赖关系约束内有效地并行运行。BitBake的主要用户之一OpenEmbedded以此内核为基础,并使用面向任务的方法构建嵌入式Linux软件堆栈。
从概念上讲,BitBake在某些方面类似于GNU Make,但有很大的区别:
- *BitBake根据提供的构成任务的元数据执行任务。元数据存储在配方(.bb),配置(.conf)和类(.bbclass)文件中,并向BitBake提供有关要运行哪些任务以及这些任务之间的依赖关系的说明。
* - BitBake包含一个提取程序库,用于从各种位置(例如源代码控制系统或网站)获取源代码。
- 每个要构建的单元的指令(例如,一个软件)被称为配方文件,其中包含有关该单元的所有信息(依赖关系,源文件位置,校验和,描述等)。
- BitBake包含客户端/服务器抽象,可以从命令行使用,也可以通过XMLRPC用作服务,并且具有多个不同的用户界面。
概念
BitBake是用Python语言编写的程序。在最高级别,BitBake解释元数据,确定要运行的任务并执行这些任务。与GNU Make相似,BitBake控制软件的构建方式。GNU Make通过“ makefiles”实现其控制。BitBake使用“食谱”。
通过允许完成更复杂的任务(例如,组装整个嵌入式Linux发行版),BitBake扩展了GNU Make这样的简单工具的功能。
获取BitBake
您可以通过几种不同的方式获得BitBake:
克隆BitBake:使用Git克隆BitBake源代码存储库是获得BitBake的推荐方法。克隆存储库可轻松获得错误修复,并可以访问稳定分支和master分支。克隆BitBake之后,应该使用最新的稳定分支进行开发,因为master分支用于BitBake开发,并且可能包含不太稳定的更改。
通常,您需要一个与您使用的元数据相匹配的BitBake版本。元数据通常向后兼容但不向前兼容。
这是克隆BitBake存储库的示例:
$ git clone git://git.openembedded.org/bitbake
您也可以通过网盘下载BitBake的源代码。
例子
下面提供一些示例,展示如何使用BitBake。
针对单个配置执行任务
对单个配置文件执行任务相对简单。您指定有问题的文件,然后BitBake解析该文件并执行指定的任务。如果您未指定任务,则BitBake将执行默认任务“build”。
以下命令在foo_1.0.bb 配置文件上运行构建任务,这是默认任务:
$ bitbake -b foo_1.0.bb
以下命令在foo.bb配置文件上运行clean任务 :
$ bitbake -b foo.bb -c clean
用法
详细的用法,可以查看官方使用手册:www.yoctoproject.org/docs/1.6/bitbake-user-manual/bitbake-user-manual.html