Compiling

安裝命令中的 ${D} 變數

  • March 12, 2019

我已經看到在多個 yocto 食譜中使用了以下安裝命令

install -d ${D}${libdir}

我知道 install 命令及其用途,但是我無法理解 ${D} 變數的用途,因為它通常沒有在配方中定義。有人可以解釋這個 shell 變數的用途嗎?

${D}變數允許正在建構的軟體安裝在其實際目標以外的目錄中。例如,您可以將軟體配置libdir/usr/lib,但這是針對目標設備的;當您在建構系統上執行安裝時,您不希望新建構的文件實際安裝在 中/usr/lib,您希望將其放置在隔離的地方,以便可以輕鬆辨識它們並將其複製到目標系統。所以你創建一個臨時目錄並安裝在那裡:

mkdir /tmp/yocto-target
make install D=/tmp/yocto-target

這樣文件就結束了/tmp/yocto-target/usr/lib,依此類推。/tmp/yocto-target然後,您可以使用您喜歡的任何工具存檔所有內容,刪除/tmp/yocto-target前綴,將存檔複製到目標設備並在那里安裝其內容。

在其他建構系統中,DESTDIR出於相同的原因使用該變數。

引用自:https://unix.stackexchange.com/questions/339463