GNU/Linux >> Linux Esercitazione >  >> Linux

Come pulire solo il target in buildroot

Buildroot tiene traccia dell'avanzamento della compilazione con .stamp_xxx in ogni pacchetto build dir.target install è in realtà l'ultima fase per ogni pacchetto. Pertanto, la rimozione del file .stamp_target_installed da ogni directory di build del pacchetto ne causerebbe la reinstallazione nella destinazione

Nell'ultima buildroot, puoi semplicemente fare quanto segue:

rm -rf output/target
find output/ -name ".stamp_target_installed" -delete
rm -f output/build/host-gcc-final-*/.stamp_host_installed

In alcuni vecchi buildroot, ci sono alcuni altri file in output che tengono traccia della creazione della directory di destinazione con lo scheletro. Citando il messaggio della mailing list, potremmo riassumere quanto segue:

Un "rm -rf output/target &&make" funziona?

Come ha detto Thomas, non funziona. Ma esistono alcuni hack non ufficiali:

  • rimuovi build/.root costringerà a reinstallare lo scheletro
  • rimuovi build/*/.stamp_target_installed forza la reinstallazione di ogni pacchetto di destinazione
  • a seconda della tua toolchain, puoi reinstallare libc e co rimuovendo:
  • stamps/ext-toolchain-installed (esterno)
  • stamps/ct-ng-toolchain-installed (ctng)
  • target/lib/libc.so.0 (buildroot)

E poi semplicemente fallo di nuovo.

Ricorda, ci sono un sacco di motivi per cui questi suggerimenti potrebbero fare cose sbagliate. L'unico modo ufficiale attuale per ricostruire il target è "make clean".


Buildroot ha obiettivi make speciali per ripulire la directory di build per pacchetti specifici, ma questo non tocca nessuno dei file installati. Per citare il manuale dell'utente:

Quando un pacchetto viene rimosso dalla configurazione, Buildroot non fa niente di speciale. Non rimuove i file installati da questo pacchetto dal filesystem root di destinazione o dalla toolchain sysroot. Per eliminare questo pacchetto è necessaria una ricostruzione completa. Tuttavia, in genere non è necessario che questo pacchetto venga rimosso in questo momento:puoi attendere la prossima pausa pranzo per riavviare la build da zero.

Detto questo, puoi eliminare i file di compilazione per un pacchetto specifico eseguendo make <PKG-NAME>-dirclean . Ad esempio, se volessi eliminare i file di build per i2c-tools , eseguirei make i2c-tools-dirclean . L'<PKG-NAME>-dirclean target esegue semplicemente un rm -rf sul output/build/<PKG-NAME> directory. Questo non rimuoverà i file installati da output/target/ . Se vuoi rimuovere i file dal tuo rootfs senza una ricostruzione completa, va bene - puoi semplicemente andare in output/target/ , rm i file che non desideri più, quindi esegui make per rigenerare le tue immagini finali. Assicurati che anche la configurazione di Buildroot non sia impostata per ricostruire e installare il pacchetto che stai tentando di rimuovere.


Linux
  1. Come elencare i file installati da un pacchetto RPM o DEB in Linux

  2. Come aggiungere il mio software a un pacchetto Buildroot Linux?

  3. Come visualizzare solo i file dal comando aws s3 ls?

  4. Come posso elencare solo i file non vuoti usando ls?

  5. Come creare collegamenti simbolici a tutti i file (classe di file) in una directory?

Come trovare file in Linux

Come installare i file Deb (pacchetti) su Ubuntu

Come annullare lo stage di file su Git

Come contare il numero di file e sottodirectory all'interno di una directory

Come trovare file in Debian

Come ripulire i file non necessari