1.. SPDX-License-Identifier: CC-BY-SA-2.0-UK 2 3Conserving Disk Space 4********************* 5 6Conserving Disk Space During Builds 7=================================== 8 9To help conserve disk space during builds, you can add the following 10statement to your project's ``local.conf`` configuration file found in 11the :term:`Build Directory`:: 12 13 INHERIT += "rm_work" 14 15Adding this statement deletes the work directory used for 16building a recipe once the recipe is built. For more information on 17"rm_work", see the :ref:`ref-classes-rm-work` class in the 18Yocto Project Reference Manual. 19 20When you inherit this class and build a ``core-image-sato`` image for a 21``qemux86-64`` machine from an Ubuntu 22.04 x86-64 system, you end up with a 22final disk usage of 22 Gbytes instead of &MIN_DISK_SPACE; Gbytes. However, 23&MIN_DISK_SPACE_RM_WORK; Gbytes of initial free disk space are still needed to 24create temporary files before they can be deleted. 25 26Purging Obsolete Shared State Cache Files 27========================================= 28 29After multiple build iterations, the Shared State (sstate) cache can contain 30multiple cache files for a given package, consuming a substantial amount of 31disk space. However, only the most recent ones are likely to be reused. 32 33The following command is a quick way to purge all the cache files which 34haven't been used for a least a specified number of days:: 35 36 find build/sstate-cache -type f -mtime +$DAYS -delete 37 38The above command relies on the fact that BitBake touches the sstate cache 39files as it accesses them, when it has write access to the cache. 40 41You could use ``-atime`` instead of ``-mtime`` if the partition isn't mounted 42with the ``noatime`` option for a read only cache. 43 44For more advanced needs, OpenEmbedded-Core also offers a more elaborate 45command. It has the ability to purge all but the newest cache files on each 46architecture, and also to remove files that it considers unreachable by 47exploring a set of build configurations. However, this command 48requires a full build environment to be available and doesn't work well 49covering multiple releases. It won't work either on limited environments 50such as BSD based NAS:: 51 52 sstate-cache-management.py --remove-duplicated --cache-dir=sstate-cache 53 54This command will ask you to confirm the deletions it identifies. 55Run ``sstate-cache-management.sh`` for more details about this script. 56 57.. note:: 58 59 As this command is much more cautious and selective, removing only cache files, 60 it will execute much slower than the simple ``find`` command described above. 61 Therefore, it may not be your best option to trim huge cache directories. 62