如何设置共享ccache

时间:2008-09-23 09:12:30

标签: c++ c compiler-construction build-process

如何设置共享ccache而不会遇到权限问题?

我想运行带有最新更改的夜间或CI构建,并使用大型ccache存储库在整个R& D中共享所有创建的二进制文件。

5 个答案:

答案 0 :(得分:5)

请参阅ccache手册中新写的Sharing a cache部分。实质上,使用相同的CCACHE_DIR设置,适当设置CCACHE_UMASK并考虑使用CCACHE_BASEDIR

答案 1 :(得分:2)

最简单的解决方案:创建一个新组(例如“devel”),并使所有开发人员成为其中的成员。在维护缓存的目录层次结构上为该组授予读/写权限。开发人员还需要修复他们的umask。

答案 2 :(得分:1)

如果你也使用了相关的distcc,那么权限问题就会大大消失,因为编译将在你设置的任何编译农场主机的控制下运行。

您还可以在distcc主机中包含开发人员桌面计算机,但代价是有一些重复的工作,其中文件可能会在多台计算机上编译 - 尽管它永远不会返回过时的编译对象文件。它还可以加快日常的重新编译。

答案 3 :(得分:1)

您还可以查看Mozilla的sccache,这是一个类似ccache的工具,可以在云存储中存储构建工件(GCS / S3 / Azure或redis / memcached)。

答案 4 :(得分:0)

请参阅xcache
它是ccache-cloud,已在具有较高效率的阿里巴巴中使用。 如果您使用的是ccache,则切换到xcache非常容易。