شرح brew cleanup -s: مسح ذاكرة Homebrew المؤقتة على Mac
فريق AskClean · آخر تحديث 2026-11-02
شغّل brew cleanup -n قبل أي تغيير. يزيل brew cleanup العادي الأقفال القديمة والتنزيلات المتقادمة والإصدارات القديمة من الصيغ المثبتة، وقد يلغي تلقائيًا تثبيت صيغ الاعتماديات التي لم تعد لازمة ما لم تضبط HOMEBREW_NO_AUTOREMOVE. أما الخيار -s، أي --scrub، فيذهب أبعد من ذلك: يحذف أيضًا التنزيلات المخزنة لأحدث الإصدارات، كالحزم التي جلبتها ولم تثبّتها قط أو أزلتها لاحقًا. وفي الحالتين تبقى تنزيلات كل ما لا يزال مثبتًا. وتأكد من موقع الذاكرة النشطة باستخدام brew --cache.

افصل الذاكرة المؤقتة عن kegs القديمة والأدوات الحالية
يحفظ Homebrew الحزم الثنائية الجاهزة (bottles) وأرشيفات المصدر وتنزيلات حزم cask افتراضيًا في ~/Library/Caches/Homebrew، ويمكن لـ HOMEBREW_CACHE تغيير المسار، والتنزيل المخزن يمكن جلبه من جديد عادةً. أما الصيغ المثبتة فتوجد في مجلدات مرقّمة بالإصدار تسمى kegs داخل Cellar، وحزم cask في Caskroom، والروابط النشطة تحت بادئة Homebrew؛ فاكتشف المواقع الفعلية باستخدام brew --cache وbrew --cellar وbrew --caskroom وbrew --prefix بدل افتراض /opt/homebrew أو /usr/local. إن Cellar وCaskroom وبادئة Homebrew وBrewfile وملفات الإعداد (dotfiles) والخدمات وقواعد البيانات والمشاريع ليست ذاكرة مؤقتة للحذف الجماعي.
راجع كل مرشح بالمعاينة أولًا
قِس الذاكرة النشطة بالأمر du -sh "$(brew --cache)"، ثم شغّل brew cleanup -n؛ فالخيار -n يساوي --dry-run ويعرض ما سيزيله Homebrew دون إزالة شيء. اقرأ في الناتج التنزيلات المخزنة والإصدارات القديمة من الصيغ وأي صيغ مدرجة تحت «Would autoremove»، وقارن الأدوات المعروفة باستخدام brew list --versions، وتأكد من أن أي نص برمجي أو خطة رجوع لا يعتمدان على keg قديم. والمعاينة ليست نسخة احتياطية؛ فبعد التنفيذ لا تضمن وجود المحذوف في سلة المهملات أو بقاء الإصدار نفسه متاحًا من المصدر.
- شغّل brew --cache، ثم قِس ذاكرة التنزيل النشطة بالأمر du -sh "$(brew --cache)".
- شغّل brew cleanup -n، وراجع كل تنزيل وكل إصدار صيغة قديم وأي اعتماديات تقترح المعاينة إزالتها تلقائيًا.
- استخدم brew list --versions لتحديد الإصدارات الحالية والقديمة اللازمة، ثم تحقق من الشبكة والوكيل الشبكي وتوفر الملفات لدى المصدر.
- شغّل brew cleanup للصيانة العادية بعد قبول جميع المرشحين، ولمنع autoremove اضبط HOMEBREW_NO_AUTOREMOVE=1 في المعاينة والأمر الفعلي. ولا تستخدم brew cleanup -s أو brew cleanup --prune=all إلا بعد مراجعة brew cleanup -n -s أو brew cleanup -n --prune=all.
- قِس الذاكرة مجددًا، وأعد brew cleanup -n وbrew list --versions، ثم اختبر أداة واحدة مهمة على الأقل ثبّتها عبر Homebrew.
إن brew cleanup -n معاينة لا نسخة احتياطية. قد يؤدي حذف keg قديم إلى كسر مسار في نص برمجي أو خطة رجوع غير موثقة، ولا توجد ضمانة لاستعادة الإصدار المطابق.
اختر أضيق أمر cleanup يحقق الغرض
بعد المراجعة، استخدم brew cleanup للصيانة العادية المبنية على العمر؛ إذ تعد السياسة الافتراضية الحالية التنزيلات الأقدم من 120 يومًا مرشحة للتنظيف. والخيار -s اختصار لـ --scrub، لا لـ «safe» أو «silent»: يوسّع التنظيف ليشمل التنزيلات الحديثة، بما فيها تنزيلات أحدث الإصدارات، لكنه يُبقي تنزيلات الصيغ وحزم cask المثبتة حاليًا فلا يفرغ الذاكرة كلها؛ فعاينه أولًا بالأمر brew cleanup -n -s. أما لإزالة كل الملفات المخزنة مؤقتًا مهما كان عمرها، فافحص أولًا brew cleanup -n --prune=all ثم شغّل brew cleanup --prune=all، واعلم أن عمليات التثبيت اللاحقة ستحتاج إلى جلب الحزم الثنائية والأرشيفات والمثبتات من جديد. وإذا أردت فصل إزالة الاعتماديات غير اللازمة عن التنظيف، فاضبط HOMEBREW_NO_AUTOREMOVE=1 في المعاينة والأمر الفعلي. لا يزيل cleanup الحزم الحالية، لكنه قد يحذف kegs قديمة ويجعل الرجوع الدقيق إلى إصدار سابق مستحيلًا.
لا تخلط autoremove بتنظيف الذاكرة، وتحقق من النتيجة
ليس brew autoremove تنظيفًا للذاكرة المؤقتة، بل يلغي تثبيت الصيغ التي يراها Homebrew اعتماديات لم تعد لازمة، وقد يشغّله Homebrew تلقائيًا أثناء brew cleanup ما لم تضبط HOMEBREW_NO_AUTOREMOVE. لفصل القرارين، اضبط HOMEBREW_NO_AUTOREMOVE=1 مع cleanup، ثم راجع brew autoremove --dry-run على حدة؛ فقد يستخدم نص برمجي أداة مباشرة دون علاقة اعتماد مسجلة. ولا تحذف بادئة Homebrew أو Cellar أو Caskroom أو مجلد ~/Library/Caches كله بالأمر rm -rf. وبعد cleanup، قِس الذاكرة مجددًا، وأعد brew cleanup -n وbrew list --versions، ثم اختبر أوامرك المهمة.
حدود الحذف وكلفة الاستعادة
افهم ما يفعله brew cleanup -s، وعاين تغييرات ذاكرة Homebrew المؤقتة قبل تنفيذها، وأزل التنزيلات وإصدارات الصيغ القديمة مع حماية أدواتك الحالية وإعداداتك.
| العنصر أو الإجراء | موضع أو أداة الفحص | العاقبة |
|---|---|---|
| افصل الذاكرة المؤقتة عن kegs القديمة والأدوات الحالية | brew --cache | يحفظ Homebrew الحزم الثنائية الجاهزة (bottles) وأرشيفات المصدر وتنزيلات حزم cask افتراضيًا في ~/Library/Caches/Homebrew، ويمكن لـ HOMEBREW_CACHE تغيير المسار، والتنزيل المخزن يمكن جلبه من جديد عادةً. |
| راجع كل مرشح بالمعاينة أولًا | brew cleanup -n | قِس الذاكرة النشطة بالأمر du -sh "$(brew --cache)"، ثم شغّل brew cleanup -n؛ فالخيار -n يساوي --dry-run ويعرض ما سيزيله Homebrew دون إزالة شيء. |
| اختر أضيق أمر cleanup يحقق الغرض | brew cleanup / brew cleanup -s / brew cleanup --prune=all | بعد المراجعة، استخدم brew cleanup للصيانة العادية المبنية على العمر؛ إذ تعد السياسة الافتراضية الحالية التنزيلات الأقدم من 120 يومًا مرشحة للتنظيف. |
| لا تخلط autoremove بتنظيف الذاكرة، وتحقق من النتيجة | brew autoremove --dry-run (ليس تنظيفًا للذاكرة المؤقتة) | ليس brew autoremove تنظيفًا للذاكرة المؤقتة، بل يلغي تثبيت الصيغ التي يراها Homebrew اعتماديات لم تعد لازمة، وقد يشغّله Homebrew تلقائيًا أثناء brew cleanup ما لم تضبط HOMEBREW_NO_AUTOREMOVE. |
الأسئلة الشائعة
هل تشغيل brew cleanup آمن على Mac؟
إنه أمر صيانة مدعوم من Homebrew، لكنه يزيل التنزيلات المتقادمة والإصدارات القديمة من الصيغ المثبتة، وقد يلغي تثبيت الاعتماديات غير اللازمة ما لم تضبط HOMEBREW_NO_AUTOREMOVE. شغّل brew cleanup -n أولًا دائمًا، وتأكد من أن أي سير عمل لا يعتمد على keg قديم أو على اعتمادية مدرجة قبل تنفيذ الأمر الفعلي.
ما معنى brew cleanup -s، وبماذا يختلف عن brew cleanup --prune=all؟
الخيار -s هو --scrub: يمسح أيضًا التنزيلات المخزنة لأحدث الإصدارات الخاصة بالحزم غير المثبتة، كتلك التي جلبتها ولم تثبّتها قط أو أزلتها لاحقًا، أما تنزيلات الصيغ وحزم cask التي لا تزال مثبتة فيُبقيها Homebrew. أما brew cleanup --prune=all فيزيل الملفات المخزنة مؤقتًا مهما كان عمرها. وفي الحالتين يزيل cleanup أيضًا الأقفال القديمة والإصدارات القديمة من الصيغ، فراجع القائمة الدقيقة بالأمر brew cleanup -n -s أو brew cleanup -n --prune=all قبل التنفيذ.
هل أشغّل brew autoremove بعد brew cleanup؟
لا حاجة إلى ذلك عادةً؛ فما لم تضبط HOMEBREW_NO_AUTOREMOVE، ينفذ brew cleanup الشامل الإزالة نفسها. وإن شغّلته منفردًا فابدأ بالأمر brew autoremove --dry-run. يلغي autoremove تثبيت الصيغ التي يعدّها Homebrew اعتماديات غير لازمة، ولا يمسح ذاكرة التنزيل، وقد يزيل أداة تستخدمها نصوصك البرمجية مباشرة.
المصادر