GNU/Linux >> Znalost Linux >  >> Linux

Jak vyčistit pouze cíl v buildroot

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.


Linux
  1. Jak získat pouze soubory vytvořené po rande s Ls?

  2. Jak přidat svůj vlastní software do balíčku Buildroot Linux?

  3. Jak mohu pomocí ls vypsat pouze neprázdné soubory?

  1. Jak porovnat pouze první řádek dvou souborů?

  2. Systemd :Jak spustit skript pouze při vypnutí (ne při restartu)

  3. lsof - omezit výstup pouze na fyzické soubory - jak?

  1. Jak odlišíte adresář pouze pro soubory určitého typu?

  2. Příkaz Linux:Jak „najít“ pouze textové soubory?

  3. Jak zobrazit pouze soubory z příkazu aws s3 ls?