سؤال

كيف يمكنني إعداد ذاكرة تخزين مؤقت مشتركة دون الوقوع في مشكلة الأذونات؟

أرغب في تشغيل إصدار CI ليلاً أو إنشاء CI بأحدث التغييرات ومشاركة جميع الثنائيات التي تم إنشاؤها خلال البحث والتطوير باستخدام مستودع ccache كبير.

هل كانت مفيدة؟

المحلول

الحل الأسهل:إنشاء مجموعة جديدة (على سبيل المثال."devel")، وجعل جميع المطورين أعضاء فيه.امنح أذونات القراءة/الكتابة لهذه المجموعة في التسلسل الهرمي للدليل حيث يتم الاحتفاظ بذاكرة التخزين المؤقت.سيحتاج المطورون أيضًا إلى إصلاح umask الخاص بهم.

نصائح أخرى

انظر المكتوب حديثا تقاسم ذاكرة التخزين المؤقت القسم في دليل ccache.في جوهرها، استخدم نفس الشيء CCACHE_DIR ضبط، ضبط CCACHE_UMASK بشكل مناسب والنظر في استخدام CCACHE_BASEDIR.

إذا كنت تستخدم أيضًا ذات الصلة com.distcc, ، فإن مشاكل الأذونات ستختفي إلى حد كبير، حيث سيتم تشغيل المجموعات تحت سيطرتها على أي مضيف مزرعة تجميع تقوم بتعيينه.

يمكنك أيضًا تضمين أجهزة سطح المكتب الخاصة بالمطورين بين مضيفي distcc، على الرغم من أن ذلك يكون على حساب وجود بعض الأعمال المكررة حيث من المحتمل أن يتم تجميع الملف على أكثر من جهاز واحد - على الرغم من أنه لن يُرجع أبدًا ملف كائن مترجم قديمًا.ومن شأنه أيضًا تسريع عمليات إعادة التجميع اليومية.

يمكنك أيضًا إلقاء نظرة على Mozilla سكاتشي, ، وهي أداة تشبه ccache يمكنها تخزين عناصر البناء في التخزين السحابي (GCS/S3/Azure أو redis/memcached).

لطفا أنظر com.xcache.
إنها سحابة ccache وقد تم استخدامها في علي بابا والتي تتمتع بكفاءة عالية.إذا كنت تستخدم ccache، فسيكون من السهل جدًا التبديل إلى xcache.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top