Как я могу настроить общий ccache, не столкнувшись с проблемами с разрешениями?
Я хотел бы запускать ночную сборку или сборку CI с последними изменениями и делиться всеми созданными двоичными файлами во время исследований и разработок, используя большой репозиторий ccache.





Самое простое решение: создать новую группу (например, «devel») и сделать ее членами всех разработчиков. Предоставьте разрешения на чтение / запись этой группе в иерархии каталогов, где хранится кеш. Разработчикам также нужно будет исправить свою маску.
Если вы также используете связанный distcc, тогда проблемы с разрешениями в значительной степени исчезнут, поскольку компиляции будут выполняться под его контролем на любых хостах компилируемой фермы, которые вы установили.
Вы также можете включить настольные компьютеры разработчиков в число хостов distcc, хотя за счет дублирования работы, когда файл потенциально может быть скомпилирован на нескольких машинах, хотя он никогда не вернет устаревший скомпилированный объектный файл. Это также ускорит повседневную перекомпиляцию.
См. Только что написанный раздел Совместное использование кеша в руководстве ccache. По сути, используйте ту же настройку CCACHE_DIR, установите CCACHE_UMASK соответствующим образом и рассмотрите возможность использования CCACHE_BASEDIR.
Вы также можете взглянуть на Mozilla sccache, который представляет собой инструмент, похожий на ccache, который может хранить артефакты сборки в облачном хранилище (GCS / S3 / Azure или redis / memcached).
См. xcache.
Это ccache-cloud, которое использовалось в alibaba с высокой эффективностью.
Если вы используете ccache, переключиться на xcache будет очень просто.