AskClean

Як очистити кеш Homebrew і старі версії на Mac

Команда AskClean · Оновлено 2026-11-02

Перш ніж щось змінювати, виконайте пробний запуск brew cleanup -n і визначте активний кеш командою brew --cache. Звичайний cleanup прибирає застарілі файли блокування, старі завантаження та старі версії формул, а глобальний запуск ще й видаляє непотрібні залежності, якщо не задано HOMEBREW_NO_AUTOREMOVE. Параметр -s (--scrub) іде далі: він видаляє й кешовані завантаження найновіших версій — наприклад, пакетів, які ви завантажили, але так і не встановили, або вже видалили. Завантаження всього, що досі встановлено, зберігаються в будь-якому разі.

Пляшки й темні коробки Homebrew впорядковано на освітленій полиці, а частину пляшок складено в контейнер для утилізації
Сховище Homebrew має різну вартість відновлення: переглядайте завантаження й старі версії, але захищайте поточні інструменти та конфігурацію.

Розділяйте кеш, старі keg-каталоги й поточні інструменти

Homebrew типово зберігає готові двійкові пакети (bottles), архіви вихідного коду й завантаження cask-пакетів у ~/Library/Caches/Homebrew; HOMEBREW_CACHE може змінити цей шлях. Установлені формули лежать у версійних каталогах keg у Cellar, cask-пакети — у Caskroom, а активні посилання — під префіксом Homebrew. Перевіряйте фактичні місця командами brew --cache, brew --cellar, brew --caskroom і brew --prefix, а не вгадуйте /opt/homebrew чи /usr/local. Cellar, Caskroom, префікс, Brewfile, файли конфігурації, служби, бази даних і проєкти — не кеш, і видаляти їх як кеш не можна.

Перегляньте кожен елемент у пробному запуску

Виконайте brew --cache, du -sh "$(brew --cache)" і HOMEBREW_NO_AUTOREMOVE=1 brew cleanup -n: параметр -n — те саме, що --dry-run, він показує, що буде видалено, нічого не видаляючи. Перегляньте застарілі завантаження й старі встановлені версії формул, а командою brew list --versions перевірте версії важливих інструментів. Префікс HOMEBREW_NO_AUTOREMOVE=1 діє лише на цей запуск і не дає cleanup автоматично видалити невикористані залежності; без нього пробний запуск покаже їх у розділі «Would autoremove». Пробний запуск не створює резервної копії: видалене Homebrew не зʼявиться в Смітнику й може вже не бути доступним у тій самій версії.

  1. Виконайте brew --cache і виміряйте активний кеш завантажень командою du -sh "$(brew --cache)".
  2. Виконайте HOMEBREW_NO_AUTOREMOVE=1 brew cleanup -n і перегляньте кожне запропоноване завантаження та стару версію формули.
  3. За допомогою brew list --versions знайдіть потрібні поточні й старі версії, а потім перевірте мережу, проксі та доступність вихідних артефактів.
  4. Запустіть HOMEBREW_NO_AUTOREMOVE=1 brew cleanup, а ширші варіанти з -s чи --prune=all — лише після такого самого перегляду з -n.
  5. Знову виміряйте кеш, повторіть пробний запуск і brew list --versions, протестуйте важливий інструмент, а видалення залежностей оцініть окремо через brew autoremove --dry-run.

Пробний cleanup не створює резервної копії. Видалений старий каталог keg може зламати скрипт або позбавити можливості відкату, а точне відновлення не гарантоване. Без HOMEBREW_NO_AUTOREMOVE=1 глобальний brew cleanup може ще й автоматично видалити невикористані залежності.

Оберіть найвужчу відповідну команду cleanup

Після перегляду виконайте HOMEBREW_NO_AUTOREMOVE=1 brew cleanup — звичайне очищення, яке типово прибирає завантаження, старші за 120 днів, і старі версії формул, але лишає поточні. Параметр -s (--scrub) додатково видаляє кешовані завантаження найновіших версій для пакетів, яких немає серед установлених (завантажених, але так і не встановлених або вже видалених), а завантаження всього, що досі встановлено, лишає; --prune=all натомість знімає віковий поріг і видаляє кешовані файли будь-якого віку. Це різні розширення, тож перегляньте точну комбінацію з -n, наприклад HOMEBREW_NO_AUTOREMOVE=1 brew cleanup -n -s, і лише потім запускайте ту саму команду без -n. Майбутнім установленням і збіркам доведеться знову завантажувати bottles, архіви й інсталятори, а видалення старих каталогів keg може унеможливити точний відкат. Для одного пакета використовуйте brew cleanup -n <name>, а потім brew cleanup <name> з тим самим префіксом; кутові дужки не вводьте буквально.

Розглядайте autoremove й користувацькі дані окремо

brew autoremove — не очищення кешу: команда деінсталює формули, які Homebrew вважає непотрібними залежностями. Перевіряйте її окремо через brew autoremove --dry-run, адже скрипти можуть напряму використовувати інструмент, не зазначений у графі залежностей, а справжній brew autoremove здатен одразу порушити роботу. Після cleanup знову виміряйте кеш, повторіть пробний запуск із HOMEBREW_NO_AUTOREMOVE=1, перевірте brew list --versions і протестуйте важливі команди. AskClean може показати кеш Homebrew цілком і після вашого схвалення видаляє його назавжди, але старих каталогів keg у Cellar не чіпає — розрізнити завантаження й старі версії може лише пробний запуск самого Homebrew.

Що можна видаляти та скільки коштує відновлення

Що робить brew cleanup -s (--scrub), як переглянути зміни кешу Homebrew, прибрати старі завантаження й версії формул і зберегти поточні інструменти.

ТемаДе і чим перевіритиЩо врахувати
Розділяйте кеш, старі keg-каталоги й поточні інструментиbrew --cache / brew --cellar / brew --caskroom / brew --prefixHomebrew типово зберігає готові двійкові пакети (bottles), архіви вихідного коду й завантаження cask-пакетів у ~/Library/Caches/Homebrew; HOMEBREW_CACHE може змінити цей шлях.
Перегляньте кожен елемент у пробному запускуHOMEBREW_NO_AUTOREMOVE=1 brew cleanup -nВиконайте brew --cache, du -sh "$(brew --cache)" і HOMEBREW_NO_AUTOREMOVE=1 brew cleanup -n: параметр -n — те саме, що --dry-run, він показує, що буде видалено, нічого не видаляючи.
Оберіть найвужчу відповідну команду cleanupHOMEBREW_NO_AUTOREMOVE=1 brew cleanup (ширше: -s або --prune=all)Після перегляду виконайте HOMEBREW_NO_AUTOREMOVE=1 brew cleanup — звичайне очищення, яке типово прибирає завантаження, старші за 120 днів, і старі версії формул, але лишає поточні.
Розглядайте autoremove й користувацькі дані окремоbrew autoremove --dry-run (окрема перевірка, а не очищення кешу)brew autoremove — не очищення кешу: команда деінсталює формули, які Homebrew вважає непотрібними залежностями.

Часті запитання

Чи безпечно виконувати brew cleanup на Mac?

Це штатна команда Homebrew, але вона видаляє старі версії формул, а глобальний запуск без HOMEBREW_NO_AUTOREMOVE ще й деінсталює непотрібні залежності. Завжди починайте з HOMEBREW_NO_AUTOREMOVE=1 brew cleanup -n, зберігайте каталоги keg, потрібні скриптам або для відкату, а brew autoremove перевіряйте окремо через --dry-run.

Що означає brew cleanup -s?

Прапорець -s — це --scrub, а не «safe» і не «видалити весь кеш». Він також видаляє кешовані завантаження найновіших версій — для пакетів, які не встановлено, наприклад завантажених, але так і не встановлених або вже видалених. Завантаження формул і cask-пакетів, які у вас досі встановлено, зберігаються. Перегляньте кандидатів через brew cleanup -n -s, перш ніж запускати команду.

Що видаляє brew cleanup --prune=all?

Кешовані файли незалежно від віку, тож наступні встановлення можуть потребувати мережі й повторного завантаження. Звичайна робота cleanup зі старими версіями формул теж виконується, але поточні інструменти й конфігурація кешем не стають. Додайте HOMEBREW_NO_AUTOREMOVE=1, щоб не долучати автоматичне видалення залежностей.

Джерела

Інші посібники зі сховища для розробників