AskCleanAskClean

איך לנקות את המטמון והגרסאות הישנות של Homebrew ב-Mac

צוות AskClean · עודכן 2026-08-05

השתמשו ב-brew --cache כדי לאתר את מטמון ההורדות של Homebrew, ואז הריצו brew cleanup -n לפני כל שינוי. brew cleanup רגיל מסיר נעילות ישנות, הורדות מיושנות וגרסאות ישנות של formulae מותקנות, והוא עשוי להסיר אוטומטית formulae שהותקנו כתלויות וכבר אינן נחוצות, אלא אם HOMEBREW_NO_AUTOREMOVE מוגדר. brew cleanup --prune=all מסיר קבצים מהמטמון ללא קשר לגילם. קבלו מראש את עלות ההורדה מחדש, אובדן האפשרות לחזור לגרסה קודמת וכל הסרה אוטומטית.

בקבוקים וארכיונים של Homebrew מסודרים על מדף מואר, בעוד הורדות ישנות מונחות בפח מחזור
הפרידו בין הורדות שניתנות להחלפה וגרסאות ישנות לבין הכלים הנוכחיים שנשארים מוגנים על המדף.

הפרידו בין המטמון, 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, קובצי הגדרות, שירותים, מסדי נתונים ופרויקטים אינם מטמון למחיקה גורפת.

בדקו כל מועמד באמצעות dry run

מדדו את המטמון הפעיל עם du -sh "$(brew --cache)", ואז הריצו brew cleanup -n. התצוגה המקדימה כוללת הורדות מיושנות, גרסאות ישנות של formulae מותקנות ותלויות שמועמדות להסרה אוטומטית. בדקו גרסאות של כלים מוכרים באמצעות brew list --versions וודאו שסקריפט או תוכנית חזרה לגרסה קודמת אינם תלויים ב-keg ישן. תצוגה מקדימה אינה גיבוי; לאחר הניקוי אין הבטחה שהפריט יימצא בפח האשפה או שאותה גרסה תישאר זמינה במקור.

  1. הריצו brew --cache, ואז מדדו את מטמון ההורדות הפעיל באמצעות du -sh "$(brew --cache)".
  2. הריצו brew cleanup -n ובדקו כל הורדה, כל גרסה ישנה של formula וכל תלות שהתצוגה המקדימה מציעה להסיר אוטומטית.
  3. השתמשו ב-brew list --versions כדי לזהות גרסאות נוכחיות וישנות שנדרשות, ואז ודאו זמינות רשת, proxy וקבצים במקור.
  4. הריצו brew cleanup לתחזוקה רגילה לאחר שאישרתם את כל המועמדים; כדי למנוע autoremove, הגדירו HOMEBREW_NO_AUTOREMOVE=1 בתצוגה המקדימה ובפקודה שתבצע את הניקוי. הריצו brew cleanup --prune=all רק לאחר בדיקת brew cleanup -n --prune=all.
  5. מדדו שוב את המטמון, הריצו מחדש brew cleanup -n ו-brew list --versions ובדקו לפחות כלי חשוב אחד שהותקן דרך Homebrew.

brew cleanup -n הוא תצוגה מקדימה, לא גיבוי. מחיקת keg ישן עלולה לשבור נתיב שמקודד בסקריפט או תוכנית חזרה לגרסה קודמת שלא תועדה, ואין הבטחה שאפשר יהיה להשיב את הגרסה הזהה.

בחרו בפקודת cleanup המצומצמת ביותר שמתאימה למטרה

אחרי הבדיקה השתמשו ב-brew cleanup לתחזוקה רגילה לפי גיל; המדיניות הנוכחית מחשיבה הורדות שגילן מעל 120 יום כמועמדות לניקוי. כדי להפריד בין הסרת תלויות שאינן נחוצות לבין ניקוי המטמון, הגדירו HOMEBREW_NO_AUTOREMOVE=1 גם בתצוגה המקדימה וגם בפקודה שתבצע את הניקוי. כדי להסיר קובצי מטמון ללא קשר לגילם, בדקו תחילה עם brew cleanup -n --prune=all ורק אז הריצו brew cleanup --prune=all, עם אותו משתנה לפי הצורך. התקנה, התקנה מחדש או בנייה ממקור יצטרכו להוריד שוב bottles, ארכיונים או מתקינים. cleanup אינו מסיר את כל החבילות הנוכחיות, אך הוא עשוי למחוק kegs ישנים ולבטל חזרה מדויקת לגרסה קודמת.

הפרידו בין autoremove, נתוני משתמש והאימות הסופי

brew autoremove אינו ניקוי מטמון: הוא מסיר formulae ש-Homebrew מחשיב כתלויות שאינן נחוצות עוד, ו-Homebrew עשוי להפעיל אותו אוטומטית במהלך brew cleanup אלא אם HOMEBREW_NO_AUTOREMOVE מוגדר. כדי לקבל את שתי ההחלטות בנפרד, השתמשו ב-HOMEBREW_NO_AUTOREMOVE=1 עם cleanup, ואז בדקו בנפרד את brew autoremove --dry-run; סקריפט עשוי להשתמש בכלי ישירות בלי תלות רשומה. לאחר cleanup מדדו שוב את המטמון, הריצו brew cleanup -n ו-brew list --versions ובדקו פקודות חשובות.

גבולות המחיקה ועלות השחזור

הציגו תצוגה מקדימה של הורדות וגרסאות ישנות של formulae עם brew cleanup, והגנו על כלים נוכחיים, תלויות, הגדרות ונתוני משתמש.

פריט או פעולהמיקום או כלי בדיקההשלכה
הפרידו בין המטמון, kegs ישנים וכלים נוכחייםbrew --cacheHomebrew שומר 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, קובצי הגדרות, שירותים, מסדי נתונים ופרויקטים אינם מטמון למחיקה גורפת.
בדקו כל מועמד באמצעות dry runbrew cleanup -nמדדו את המטמון הפעיל עם du -sh "$(brew --cache)", ואז הריצו brew cleanup -n. התצוגה המקדימה כוללת הורדות מיושנות, גרסאות ישנות של formulae מותקנות ותלויות שמועמדות להסרה אוטומטית. בדקו גרסאות של כלים מוכרים באמצעות brew list --versions וודאו שסקריפט או תוכנית חזרה לגרסה קודמת אינם תלויים ב-keg ישן. תצוגה מקדימה אינה גיבוי; לאחר הניקוי אין הבטחה שהפריט יימצא בפח האשפה או שאותה גרסה תישאר זמינה במקור.
בחרו בפקודת cleanup המצומצמת ביותר שמתאימה למטרהbrew cleanup / brew cleanup --prune=allאחרי הבדיקה השתמשו ב-brew cleanup לתחזוקה רגילה לפי גיל; המדיניות הנוכחית מחשיבה הורדות שגילן מעל 120 יום כמועמדות לניקוי. כדי להפריד בין הסרת תלויות שאינן נחוצות לבין ניקוי המטמון, הגדירו HOMEBREW_NO_AUTOREMOVE=1 גם בתצוגה המקדימה וגם בפקודה שתבצע את הניקוי. כדי להסיר קובצי מטמון ללא קשר לגילם, בדקו תחילה עם brew cleanup -n --prune=all ורק אז הריצו brew cleanup --prune=all, עם אותו משתנה לפי הצורך. התקנה, התקנה מחדש או בנייה ממקור יצטרכו להוריד שוב bottles, ארכיונים או מתקינים. cleanup אינו מסיר את כל החבילות הנוכחיות, אך הוא עשוי למחוק kegs ישנים ולבטל חזרה מדויקת לגרסה קודמת.
הפרידו בין autoremove, נתוני משתמש והאימות הסופיbrew autoremove --dry-run (לא ניקוי מטמון)brew autoremove אינו ניקוי מטמון: הוא מסיר formulae ש-Homebrew מחשיב כתלויות שאינן נחוצות עוד, ו-Homebrew עשוי להפעיל אותו אוטומטית במהלך brew cleanup אלא אם HOMEBREW_NO_AUTOREMOVE מוגדר. כדי לקבל את שתי ההחלטות בנפרד, השתמשו ב-HOMEBREW_NO_AUTOREMOVE=1 עם cleanup, ואז בדקו בנפרד את brew autoremove --dry-run; סקריפט עשוי להשתמש בכלי ישירות בלי תלות רשומה. לאחר cleanup מדדו שוב את המטמון, הריצו brew cleanup -n ו-brew list --versions ובדקו פקודות חשובות.

שאלות נפוצות

האם בטוח להריץ brew cleanup ב-Mac?

זו פקודת תחזוקה נתמכת של Homebrew, אבל היא מסירה גם גרסאות ישנות של formulae ועשויה להפעיל autoremove אוטומטית. הריצו תמיד brew cleanup -n, הגנו על kegs שסקריפט או תוכנית חזרה עדיין זקוקים להם והגדירו HOMEBREW_NO_AUTOREMOVE=1 אם תרצו לבדוק תלויות שאינן נחוצות בנפרד.

מה מוחקת brew cleanup --prune=all?

היא מרחיבה את מדיניות ניקוי המטמון לכל גילי הקבצים, בעוד שאר פעולות cleanup על נעילות וגרסאות ישנות עדיין חלות. בדקו את הרשימה המדויקת עם brew cleanup -n --prune=all.

האם להריץ אחר כך brew autoremove?

לא כשלב נוסף ואוטומטי. brew autoremove מסיר formulae שמוגדרות כתלויות שאינן נחוצות ואינו מנקה את מטמון ההורדות; cleanup עצמו עשוי כבר להפעיל אותו אלא אם HOMEBREW_NO_AUTOREMOVE מוגדר. כדי להפריד בין ההחלטות, השתמשו במשתנה בזמן cleanup ואז התחילו ב-brew autoremove --dry-run.

מקורות

המשיכו לנקות את אחסון הפיתוח