Skip to main content
بشكل عام، في كل مرة تشغّل فيها bin/up، ستقوم using-the-toolkit تلقائيًا بتحديث صورة TeX Live full الخاصة بنا. ولتجنّب التحديثات اليدوية، يمكنك أتمتة تحديثات صورة TeX Live Sandbox باستخدام السكربت التالي. أضفه كمهمة cron، مع التأكد من أن مستخدم cron يملك إذن تشغيل docker. شغّل crontab -e لإضافة السطر التالي في النهاية.
crontab -e
يتخطى flock -n التشغيل إذا كان التشغيل السابق لا يزال يحتفظ بالقفل، لذا لا تتراكم عمليات السحب البطيئة أبدًا.
/usr/local/bin/pull-texlive.sh
لماذا التدوير كل ساعة بدلًا من سحب كل شيء دفعة واحدة: يُشتق الوسم من ساعة النظام (عدد الساعات منذ epoch، باقي القسمة على عدد الوسوم)، لذا تكون المهمة عديمة الحالة — فلا شيء يسجّل “أين توقفنا”، وتعيد الدورة ضبط نفسها تلقائيًا بعد إعادة التشغيل أو تفويت ساعة. يتعامل كل تشغيل مع وسم واحد فقط؛ وعندما لا يتغير digest في السجل، يقتصر السحب على فحص manifest (Image is up to date) وينتهي خلال ثوانٍ. أما التحديث الفعلي فيُنزّل صورة واحدة على الأكثر كل ساعة، بحد أقصى يفرضه timeout 50m، ويحذف docker image prune -f الطبقات التي أصبحت يتيمة بسبب انتقال الوسم. للتحقق من سلامة المزامنة:
عند نشر إصدار جديد من TeX Live، أضف وسمه إلى المصفوفة TAGS — وسيتكيف طول دورة التدوير تلقائيًا. أما الساعات التي يكون فيها المضيف مطفأً فتُتخطى ولا توضع في قائمة انتظار؛ وستُحدَّث الوسوم المتأثرة ببساطة في دورها التالي.
آخر تعديل في ٤ أكتوبر ٢٠٢٦