In ordine di efficacia e quanto è facile la correzione:
- Acquista più spazio su disco: Mettere $TMPDIR su un proprio SSD aiuta molto ed elimina la necessità di microgestire.
- Elimina $TMPDIR (build/tmp): le vecchie immagini, i vecchi pacchetti e le directory di lavoro/sysroot per le MACCHINE che attualmente non stai creando si accumulano e possono occupare molto spazio. Normalmente puoi semplicemente eliminare l'intero $TMPDIR una volta ogni tanto:finché utilizzi sstate-cache, la build successiva dovrebbe essere comunque piuttosto veloce.
- Elimina $SSTATE_DIR (build/sstate-cache): Se fai molte build, lo stato stesso si accumula nel tempo. L'eliminazione della directory è sicura, ma la build successiva richiederà molto tempo poiché tutto verrà ricostruito.
- Elimina $DL_DIR (build/download): Se usi una directory di build per molto tempo (mentre estrai gli aggiornamenti dal master o passi a un ramo più recente) i download obsoleti continuano a occupare spazio su disco. Tieni presente che l'eliminazione della directory significherà riscaricare tutto. Guardare solo i file più grandi ed eliminare le vecchie versioni può essere un utile compromesso qui.
Ci sono alcuni modi ufficiali invece di eliminare.
Eliminando deliberatamente potresti forzare build e download non necessari. Alcuni elementi della build potrebbero non essere controllati da bitbake e potresti trovarti in una situazione in cui non puoi ricostruire questi elementi in modo semplice.
Con questi consigli, puoi battere la regola non scritta di 50 GB per build yocto:
Controlla il tuo IMAGE_FSTYPES variabile. La mia esperienza dice che è sicuro eliminare tutte le immagini di questi file che non sono collegamenti simbolici o target di collegamenti simbolici. Evita l'ultimo generato per evitare di interrompere l'ultimo link di compilazione e qualsiasi cosa relativa a bootloader e file di configurazione, in quanto potrebbero essere rigenerati raramente.
Se stai conservando più di una build con lo stesso set di livelli, puoi utilizzare una cartella di download comune per le build.
DL_DIR ?="common_dir_across_all_builds/downloads/"
E dopo:
Per mantenere pulito il tuo /deploy:
RM_OLD_IMAGE: Recupera spazio su disco rimuovendo le versioni create in precedenza della stessa immagine dalla directory delle immagini indicata dalla variabile DEPLOY_DIR.Imposta questa variabile su "1" nel tuo file local.conf per rimuovere queste immagini:
RM_OLD_IMAGE = "1"
IMAGE_FSTYPES Rimuovi i tipi di immagine che non intendi utilizzare, puoi sempre abilitarne uno in particolare quando ne hai bisogno:
IMAGE_FSTYPES_remove = "tar.bz2"
IMAGE_FSTYPES_remove = "rpi-sdimg"
IMAGE_FSTYPES_remove = "ext3"
Per /tmp/work, non sono necessari tutti i file di lavoro di tutte le ricette. Puoi specificare quali sei interessato al tuo sviluppo.
RM_WORK_EXCLUDE :Con rm_work abilitato, questa variabile specifica un elenco di ricette le cui directory di lavoro non devono essere rimosse. Vedere la sezione "rm_work.bbclass" per maggiori dettagli.
INHERIT += "rm_work"
RM_WORK_EXCLUDE += "home-assistant widde"