Как удалить каталог sstate-cache в Yocto?

Размер мой sstate-cache каталог моей среды "fido" в YoctoProject составляет более 3 ГБ. Как я могу удалить sstate-cache каталог в yocto/build-dir?

Это сохранить для использования rm -rf или есть другой способ?

5 ответов

Решение

Согласно справочному руководству Yocto можно сохранить полное build/tmp каталог, включая sstate-cache каталог:

В крайнем случае, чтобы очистить сборку и запустить ее с нуля (кроме загрузок), вы можете удалить все в каталоге tmp или полностью избавиться от каталога. Если вы это сделаете, вам также следует полностью удалить каталог build/sstate-cache. (см. [1] и [2])

Кроме того, вы можете удалить sstate-кеш с помощью bitbake для конкретного рецепта по телефону do_cleansstate как показано ниже (см. do_cleansstate).

$ bitbake -c cleansstate recipe

Имейте в виду, что Shared State Cache требуется много места в памяти, и он снова будет увеличиваться до размера, необходимого при создании изображений.

Более подробная информация о Shared State Cache доступна в следующих разделах Справочного руководства Yocto: Shared State Cache и sstate-cache.

Правильная задача для этого:

$ bitbake -c cleansstate <recipe-name>

Смотрите: Справочное руководство Yocto

Есть больше задач для очистки, которые удаляют sstate кеш и даже больше (например, do_cleanall).

Удалить каталог sstate-cache безопасно, однако правильный способ уменьшить его размер - использовать сценарий в poky/scripts/sstate-cache-management.shкоторый удалит старые записи. См. https://git.yoctoproject.org/cgit.cgi/poky/plain/scripts/sstate-cache-management.sh

Вы можете удалить sstate-cache из сборки, и наиболее частой причиной этого является то, что он продолжает расти по мере того, как для каждой сборки добавляется все больше и больше кешированных данных. Вот простой способ его очистки:

      ./scripts/sstate-cache-management.sh --remove-duplicated -d --cache-dir=<path to sstate-cached>

Это удаляет повторяющиеся и старые данные из кеша.

ПРИМЕЧАНИЕ: когда нам нужно перестроить с нуля, мы либо удаляем build / tmp, чтобы можно было использовать sstate-cache для ускорения сборки, либо удаляем как build / tmp, так и sstate-cache, чтобы во время сборки не использовался повторно кеш..

Я выделил часть, в которой есть команда для уменьшения размера кэша sstate; Это альтернативный способ очистки кеша.

https://www.yoctoproject.org/sites/default/files/yocto_devday_advanced_class_sandiego.pdf слайд 37

Состояние: рекомендации

• В сложных системах рекомендуется разделять каталоги sstate, например, собственные и ненативные каталоги sstate, а также разные BSP и арки.

• Повторное использование одного каталога очень быстро станет очень большим. Используйте atime для удаления старых файлов. Примечание: для этого требуется, чтобы файловая система была смонтирована с atime/relaytime, которую мы обычно рекомендуем отключать для производительности сборки.

найти ${sstate_dir} -name 'sstate*' -atime +3 -delete; Fi *

• Периодически перестраивайте sstate в новый каталог и удаляйте старый каталог sstate, чтобы сохранить ограниченный размер. Могут быть пакеты или версии пакетов, которые больше не используются и просто занимают место.

• Хотя для состояния можно использовать другие протоколы, такие как HTTP и FTP, их следует избегать. Использование HTTP ограничивает sstate только для чтения, а FTP обеспечивает низкую производительность.

• Кроме того, отсутствующий файл sstate на сервере http/ftp приводит к зависанию wget в течение длительного времени из-за повторных попыток и времени ожидания.

Другие вопросы по тегам