איך לנקות את המטמון והגרסאות הישנות של Homebrew ב-Mac
צוות AskClean · עודכן 2026-11-02
הריצו brew cleanup -n לפני כל שינוי. ניקוי רגיל מסיר קובצי נעילה ישנים, הורדות מיושנות וגרסאות ישנות של formulae מותקנות, וכשמריצים אותו בלי שמות של חבילות הוא גם מסיר תלויות שאף חבילה כבר לא צריכה — אלא אם HOMEBREW_NO_AUTOREMOVE מוגדר. הדגל -s (או --scrub) הולך רחוק יותר: הוא מוחק גם הורדות שמורות במטמון של הגרסאות האחרונות, למשל של חבילות שהורדתם ולא התקנתם אף פעם או שהסרתם מאז. הורדות של כל מה שעדיין מותקן נשמרות בכל מקרה. הפקודה brew cleanup --prune=all מסירה קבצים מהמטמון בלי קשר לגילם. את המיקום הפעיל של המטמון בדקו עם brew --cache, וקבלו מראש את עלות ההורדה מחדש ואת אובדן האפשרות לחזור לגרסה קודמת.

הפרידו בין המטמון, kegs ישנים וכלים נוכחיים
Homebrew שומר bottles, ארכיוני מקור והורדות cask כברירת מחדל ב-~/Library/Caches/Homebrew, והמשתנה HOMEBREW_CACHE יכול לשנות את הנתיב. formulae מותקנות נשמרות כ-kegs לפי גרסה בתוך Cellar, חבילות cask נשמרות ב-Caskroom והקישורים הפעילים נמצאים תחת ה-prefix של Homebrew. גלו את המיקומים בפועל עם brew --cache, brew --cellar, brew --caskroom ו-brew --prefix. ה-Cellar, ה-Caskroom, ה-prefix, קובץ Brewfile, קובצי הגדרות, שירותים, מסדי נתונים ופרויקטים אינם מטמון למחיקה גורפת. AskClean יכול להציג את המטמון של Homebrew כפריט אחד לבדיקה, ואם תאשרו — הוא נמחק לצמיתות; הוא לא מריץ בשבילכם את brew cleanup ולא מנקה kegs ישנים ב-Cellar.
בדקו כל מועמד באמצעות dry run
מדדו את המטמון הפעיל עם du -sh "$(brew --cache)", ואז הריצו brew cleanup -n. התצוגה המקדימה כוללת הורדות מיושנות, גרסאות ישנות של formulae מותקנות ותלויות שמועמדות להסרה אוטומטית. בדקו גרסאות של כלים מוכרים באמצעות brew list --versions וודאו שסקריפט או תוכנית חזרה לגרסה קודמת אינם תלויים ב-keg ישן. תצוגה מקדימה אינה גיבוי; לאחר הניקוי אין הבטחה שהפריט יימצא בפח האשפה או שאותה גרסה תישאר זמינה במקור.
- הריצו brew --cache, ואז מדדו את מטמון ההורדות הפעיל באמצעות du -sh "$(brew --cache)".
- הריצו brew cleanup -n ובדקו כל הורדה, כל גרסה ישנה של formula וכל תלות שהתצוגה המקדימה מציעה להסיר אוטומטית.
- השתמשו ב-brew list --versions כדי לזהות גרסאות נוכחיות וישנות שנדרשות, ואז ודאו זמינות רשת, proxy וקבצים במקור.
- הריצו 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 יום כמועמדות לניקוי. כדי להפריד בין הסרת תלויות שאינן נחוצות לבין ניקוי המטמון, הגדירו HOMEBREW_NO_AUTOREMOVE=1 גם בתצוגה המקדימה וגם בפקודה שתבצע את הניקוי. הדגל -s, קיצור של --scrub, מרחיב את ניקוי המטמון גם להורדות עדכניות, כולל הגרסאות האחרונות של חבילות שאינן מותקנות (כאלה שהורדו ולא הותקנו אף פעם, או שהוסרו מאז), אבל שומר את ההורדות של formulae ו-casks שעדיין מותקנים: הוא לא מרוקן את כל המטמון, ופירושו אינו “safe” או “silent”. הציגו אותו מראש עם brew cleanup -n -s. כדי להסיר קובצי מטמון ללא קשר לגילם, בדקו תחילה עם brew cleanup -n --prune=all ורק אז הריצו brew cleanup --prune=all, עם אותו משתנה לפי הצורך. התקנה, התקנה מחדש או בנייה ממקור יצטרכו להוריד שוב bottles, ארכיונים או מתקינים. cleanup אינו מסיר את כל החבילות הנוכחיות, אך הוא עשוי למחוק kegs ישנים ולבטל חזרה מדויקת לגרסה קודמת.
הפרידו בין autoremove, נתוני משתמש והאימות הסופי
brew autoremove אינו ניקוי מטמון: הוא מסיר formulae ש-Homebrew מחשיב כתלויות שאינן נחוצות עוד, ו-brew cleanup גלובלי (בלי שמות של חבילות) מבצע את אותה הסרה, אלא אם HOMEBREW_NO_AUTOREMOVE מוגדר. כדי לקבל את שתי ההחלטות בנפרד, השתמשו ב-HOMEBREW_NO_AUTOREMOVE=1 עם cleanup, ואז בדקו בנפרד את brew autoremove --dry-run; סקריפט עשוי להשתמש בכלי ישירות בלי תלות רשומה. לאחר cleanup מדדו שוב את המטמון, הריצו brew cleanup -n ו-brew list --versions ובדקו פקודות חשובות.
גבולות המחיקה ועלות השחזור
הבינו מה עושה brew cleanup -s (או --scrub), בדקו מראש אילו הורדות וגרסאות ישנות של formulae יימחקו, והגנו על הכלים הנוכחיים ועל ההגדרות שלכם.
| פריט או פעולה | מיקום או כלי בדיקה | השלכה |
|---|---|---|
| הפרידו בין המטמון, kegs ישנים וכלים נוכחיים | brew --cache | Homebrew שומר bottles, ארכיוני מקור והורדות cask כברירת מחדל ב-~/Library/Caches/Homebrew, והמשתנה HOMEBREW_CACHE יכול לשנות את הנתיב. formulae מותקנות נשמרות כ-kegs לפי גרסה בתוך Cellar, חבילות cask נשמרות ב-Caskroom והקישורים הפעילים נמצאים תחת ה-prefix של Homebrew. |
| בדקו כל מועמד באמצעות dry run | brew cleanup -n | מדדו את המטמון הפעיל עם du -sh "$(brew --cache)", ואז הריצו brew cleanup -n. |
| בחרו בפקודת cleanup המצומצמת ביותר שמתאימה למטרה | brew cleanup / brew cleanup -s / brew cleanup --prune=all | אחרי הבדיקה השתמשו ב-brew cleanup לתחזוקה רגילה לפי גיל; המדיניות הנוכחית מחשיבה הורדות שגילן מעל 120 יום כמועמדות לניקוי. |
| הפרידו בין autoremove, נתוני משתמש והאימות הסופי | brew autoremove --dry-run (לא ניקוי מטמון) | brew autoremove אינו ניקוי מטמון: הוא מסיר formulae ש-Homebrew מחשיב כתלויות שאינן נחוצות עוד, ו-brew cleanup גלובלי (בלי שמות של חבילות) מבצע את אותה הסרה, אלא אם HOMEBREW_NO_AUTOREMOVE מוגדר. |
שאלות נפוצות
האם בטוח להריץ brew cleanup ב-Mac?
זו פקודת תחזוקה נתמכת של Homebrew, אבל היא מסירה גם גרסאות ישנות של formulae, וכשמריצים אותה בלי שמות של חבילות היא גם מסירה תלויות שאף חבילה כבר לא צריכה (autoremove), אלא אם HOMEBREW_NO_AUTOREMOVE מוגדר. הריצו תמיד brew cleanup -n, הגנו על kegs שסקריפט או תוכנית חזרה עדיין זקוקים להם והגדירו HOMEBREW_NO_AUTOREMOVE=1 אם תרצו לבדוק תלויות שאינן נחוצות בנפרד.
מה מוחקות brew cleanup -s ו-brew cleanup --prune=all?
הפקודה brew cleanup --prune=all מסירה קובצי מטמון בלי קשר לגילם. הדגל -s (או --scrub) מנקה גם הורדות שמורות של הגרסאות האחרונות — של חבילות שאינן מותקנות, כמו כאלה שהורדתם ולא התקנתם אף פעם או שהסרתם מאז. הורדות של formulae ו-casks שעדיין מותקנים אצלכם נשמרות. בשני המקרים cleanup מסיר גם קובצי נעילה ישנים וגרסאות ישנות של formulae. בדקו את הרשימה המדויקת עם brew cleanup -n -s או עם brew cleanup -n --prune=all.
האם להריץ אחר כך brew autoremove?
לא כשלב נוסף ואוטומטי. brew autoremove מסיר formulae שמוגדרות כתלויות שאינן נחוצות ואינו מנקה את מטמון ההורדות; brew cleanup גלובלי כבר מבצע את אותה הסרה, אלא אם HOMEBREW_NO_AUTOREMOVE מוגדר. כדי להפריד בין ההחלטות, השתמשו במשתנה בזמן cleanup ואז התחילו ב-brew autoremove --dry-run.
מקורות