2015-06-12 15 views
14

Ho problemi a capire le ricette bitbake. (Ho un po 'scritto male che ho bisogno di modificare, di solito leggo e capisco l'intero meccanismo ma purtroppo ho un programma serrato). Potete per favore aiutarmi a capire la differenza tra RDEPENDS e DEPENDS. Leggo il riferimento e so che rappresentano la dipendenza runtime e creano rispettivamente la dipendenza, ma qual è l'effetto su di essa in una ricetta bitbake? Per quanto ho capito, se un pacchetto A dipende da un altro B, B deve essere compilato e pronto per abilitare A per costruire. Bitbake non è correlato al runtime, è solo lì per costruire e distribuire i pacchetti. Quindi qual è la differenza?dipendenza runtime vs build dipendenza

risposta

22

Come dici tu, bitbake si occupa di costruzione e la distribuzione le pacchetti, ed ha la necessità di distribuire tutti i pacchetti che sono necessari per soddisfare runtime dipendenze sul sistema di destinazione.

Se la vostra ricetta dice che l'obiettivo TDEPENDS su un bersaglio P, che racconta bitbake che deve costruire P prima T, perché T non può essere costruito senza P.

Se la vostra ricetta dice che TRDEPENDS su P, che racconta bitbake che deve distribuire P al sistema di destinazione se dispiega T, perché T non può essere utilizzato senza P.

Ad esempio, non si può costruire tar senza il compilatore C, ma non è necessario il compilatore C per usare tar. È possibile distribuire senza distribuire il compilatore C. Quindi questo è un DEPEND.

D'altra parte, non è possibile utilizzare tar senza la libreria di runtime C. Se viene distribuito tar, è necessario distribuire anche la libreria di runtime C. Quindi questo è un RDEPEND.

I tecnici bitake sono:

  • Se TDEPENDS su P poi T 'do_configure compito s è fatto dipendere su P' s do_populate_sysroot compito.

  • Se TRDEPENDS su P poi 'do_build ia compito s fatta dipendere P' T s do_package_write compito.

+0

Grazie signore! Ora è chiaro per me. Informazioni sugli aspetti tecnici che hai menzionato: esiste un ordine definito di come una ricetta chiama tali compiti? Quelle attività (do_configure, do_build etc) fanno parte dello standard di bitbake? – lulijeta

+1

Sì, esiste un ordine definito che è, naturalmente, l'ordine corretto - sebbene sia possibile per voi sovrascrivere o estendere qualsiasi comportamento predefinito se lo si desidera, o per definire compiti propri e inserirli tra quelli predefiniti. Vedi [Dal mondo di Bitbake Hello a un'immagine] (http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/) –

+0

Ottima risposta –

Problemi correlati