Buildroot sleduje postup sestavení s .stamp_xxx v každém sestavení balíčku dir.target instalace je ve skutečnosti poslední fází každého balíčku. Takže odstranění souboru .stamp_target_installed z každého adresáře sestavení balíčku by způsobilo jeho přeinstalaci do cíle
V nejnovějším buildrootu můžete jednoduše provést následující:
rm -rf output/target
find output/ -name ".stamp_target_installed" -delete
rm -f output/build/host-gcc-final-*/.stamp_host_installed
V některém starším buildrootu je na výstupu několik dalších souborů, které sledují vytvoření cílového adresáře s kostrou. S odkazem na zprávu z mailing listu bychom mohli shrnout následující:
Funguje "rm -rf output/target &&make"?
Jak řekl Thomas, nefunguje to. Existují však některé neoficiální hacky:
- odebrat
build/.root
vynutí přeinstalovat kostru- odebrat
build/*/.stamp_target_installed
vynutit přeinstalaci každého cílového balíčku- v závislosti na vašem toolchainu můžete znovu nainstalovat knihovnu libc a co odstraněním:
stamps/ext-toolchain-installed
(externí)stamps/ct-ng-toolchain-installed
(ctng)target/lib/libc.so.0
(buildroot)
A pak to jednoduše udělejte znovu.
Připomeňte si, že existuje spousta důvodů, proč by tyto tipy mohly dělat špatné věci. Jediný současný oficiální způsob přestavby cíle je „vyčistit“.
Buildroot má speciální cíle pro vytvoření pro vyčištění adresáře sestavení pro konkrétní balíčky, ale to se nedotýká žádného z nainstalovaných souborů. Chcete-li citovat uživatelskou příručku:
Když je balíček odstraněn z konfigurace, Buildroot nedělá nic zvláštního. Neodstraní soubory nainstalované tímto balíčkem z cílového kořenového souborového systému nebo ze systémové kořenové složky toolchain. K odstranění tohoto balíčku je zapotřebí úplné přebudování. Obecně však nemusíte nutně tento balíček odstranit hned:můžete počkat na další přestávku na oběd a restartovat sestavení od nuly.
To znamená, že můžete smazat soubory sestavení pro konkrétní balíček spuštěním make <PKG-NAME>-dirclean
. Pokud bych například chtěl smazat soubory sestavení pro i2c-tools
, spustil bych make i2c-tools-dirclean
. <PKG-NAME>-dirclean
target jednoduše spustí rm -rf
na output/build/<PKG-NAME>
adresář. To neodstraní nainstalované soubory z output/target/
. Pokud chcete odstranit soubory z vašeho rootfs bez úplného přebudování, je to v pořádku – stačí přejít na output/target/
, rm
soubory, které již nechcete, pak spusťte make
k regeneraci vašich konečných obrázků. Ujistěte se, že vaše konfigurace Buildroot také není nastavena na opětovné sestavení a instalaci balíčku, který se pokoušíte odstranit.