1、bitbake简介
BitBake 是一种软件组建自动化工具程式。功能类似于make,是针对于嵌入式Linux交叉编译器环境所设计研发。它源自于Gentoo Linux的软件包管理系统,是用 Python 写的一个程序。它是 OpenEmbedded 构建系统时使用的生产工具,比如Yocto 、WindRiver Linux 等嵌入式系统都是在使用它进行编译。它是一个多任务引擎,可以并行执行 shell 和 Python 任务,每个任务单元根据预定义的元数据来管理源码、配置、编译、打包,并最终将每个任务生成的文件集合成为系统镜像。例如要从源码构建一个 Linux 系统,需要搭建一个生产环境,然后依次生成 Grub、Kernel、各种库文件、各种可执行文件,然后集合到一个文件系统里。如果你玩过 LFS ,就会了解这个过程的复杂性。BitBake 存在的意义就是提供了一个高效的工具,并将这个过程标准化、流程化。BitBake 与 GNU Make 的关系就像 GNU Make 之于 GCC ,运作方式也类似 GNU Make ,但又有很多不同:
- BitBake 根据预先定义的元数据执行任务,这些元数据定义了执行任务所需的变量,执行任务的过程,以及任务之间的依赖关系,它们存储在 recipe(.bb)、append(.bbappend)、configuration(.conf)、include(.inc) 和 class(.bbclass) 文件中。
- BitBake 包含一个抓取器,用于从不同的位置获取源码,例如本地文件、源码控制器(git)、网站等。
- 每一个任务单元的结构通过 recipe 文件描述,描述的信息有依赖关系、源码位置、版本信息、校验和、说明等等。
- BitBake 包含了一个 C/S 的抽象概念,可以通过命令行或者 XML-RPC 使用