Package

在buildroot裡面的套件(package),其實就是會在建制過程中被自動處理的meta data,這些meta裡面需要跟系統描述這個套件要在哪裡取得?版本是什麼?還有其相依性是什麼?等等資訊...

buildroot套件的基本構成有以下幾個:

  1. 在package底下的資料夾,eg.『buildroot/package/xz』。
  2. Config.in 使用kconfig語言所撰寫,描述此套件的組態。
  3. <pkg>.mk
    使用make語法所撰寫,描述套件在那,怎麼建制,怎麼安裝等等。
  4. 選用的<pkg>.hash
    使用hash可以確保檔案的完整性和正確性。
  5. 選用的.patch
    如果在建制前想要改變source code的內容,可以使用.patch檔,檔名不重要,只要在這個資料夾裡的.patch,系統都會自動幫你套用。

Package Infrastructures

buildroot裡面會用到許多的軟體套件,但是很多都有他自己的well-known建制系統,像是:Makefile, shell script, autotool, CMake和其他的語言(Python, Perlm Lua, Erlang等等)。如下面兩張圖:

(來源 : free-electrons )

你會看到在package底下有對每個建制系統的定義。然後每個套件的建制系統也不會都一樣。不過通常都還是會繼承generic-package的架構,像是底下這張圖一樣,會先經過下載 --> 解壓縮 --> 補丁 --> 設定組態 --> 建制 --> 安裝。只有pkg-kconfig是個例外,並沒有繼承這個流程。

(來源 : free-electrons )

results matching ""

    No results matching ""