如何设置共享ccache而不会遇到权限问题?
我想运行带有最新更改的夜间或CI构建,并使用大型ccache存储库在整个R& D中共享所有创建的二进制文件。
答案 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非常容易。