GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo limpiar solo el objetivo en buildroot

Buildroot realiza un seguimiento del progreso de la compilación con .stamp_xxx en el directorio de compilación de cada paquete. La instalación de destino es en realidad la última etapa de cada paquete. Por lo tanto, eliminar el archivo .stamp_target_installed de cada directorio de compilación del paquete haría que se reinstalara en el destino

En la última buildroot, simplemente puede hacer lo siguiente:

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

En algunos buildroot más antiguos, hay algunos otros archivos en la salida que rastrean la creación del directorio de destino con el esqueleto. Citando el mensaje de la lista de correo, podríamos resumir lo siguiente:

¿Funciona "rm -rf output/target &&make"?

Como dijo Thomas, no funciona. Pero existen algunos trucos no oficiales:

  • eliminar build/.root forzará a reinstalar el esqueleto
  • quitar build/*/.stamp_target_installed forzar la reinstalación de cada paquete de destino
  • dependiendo de su cadena de herramientas, puede reinstalar libc y co eliminando:
  • stamps/ext-toolchain-installed (externo)
  • stamps/ct-ng-toolchain-installed (ctng)
  • target/lib/libc.so.0 (construir raíz)

Y luego simplemente hazlo de nuevo.

Recuerde, hay muchas razones por las que estos consejos podrían hacer cosas incorrectas. La única forma oficial actual de reconstruir el objetivo es "limpiar".


Buildroot tiene objetivos de creación especiales para limpiar el directorio de compilación para paquetes específicos, pero esto no toca ninguno de los archivos instalados. Para citar el manual de usuario:

Cuando se elimina un paquete de la configuración, Buildroot no hace nada especial. No elimina los archivos instalados por este paquete del sistema de archivos raíz de destino o de la cadena de herramientas sysroot. Se necesita una reconstrucción completa para deshacerse de este paquete. Sin embargo, por lo general, no es necesario que elimine este paquete en este momento:puede esperar a la próxima pausa para el almuerzo para reiniciar la compilación desde cero.

Dicho esto, puede eliminar los archivos de compilación de un paquete específico ejecutando make <PKG-NAME>-dirclean . Por ejemplo, si quisiera eliminar los archivos de compilación para i2c-tools , ejecutaría make i2c-tools-dirclean . El <PKG-NAME>-dirclean el objetivo simplemente ejecuta un rm -rf en el output/build/<PKG-NAME> directorio. Esto no eliminará los archivos instalados de output/target/ . Si desea eliminar los archivos de su rootfs sin una reconstrucción completa, está bien, simplemente puede ir a output/target/ , rm los archivos que ya no desea, luego ejecute make para regenerar sus imágenes finales. Asegúrese de que su configuración de Buildroot tampoco esté configurada para reconstruir e instalar el paquete que está tratando de eliminar.


Linux
  1. Cómo limpiar las versiones de Snap Package en Linux [Consejo rápido]

  2. ¿Cómo obtener solo archivos creados después de una fecha con Ls?

  3. ¿Cómo mostrar solo los archivos del comando aws s3 ls?

  4. ¿Cómo puedo enumerar solo archivos no vacíos usando ls?

  5. ¿Cómo crear enlaces simbólicos a todos los archivos (clase de archivos) en un directorio?

Cómo encontrar archivos en Linux

Cómo instalar archivos Deb (paquetes) en Ubuntu

Cómo desorganizar archivos en Git

Cómo contar la cantidad de archivos y subdirectorios dentro de un directorio

Cómo encontrar archivos en Debian

Cómo limpiar archivos innecesarios