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