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

Розділяйте кеш, старі 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 не зʼявиться в Смітнику й може вже не бути доступним у тій самій версії.
- Виконайте brew --cache і виміряйте активний кеш завантажень командою du -sh "$(brew --cache)".
- Виконайте HOMEBREW_NO_AUTOREMOVE=1 brew cleanup -n і перегляньте кожне запропоноване завантаження та стару версію формули.
- За допомогою brew list --versions знайдіть потрібні поточні й старі версії, а потім перевірте мережу, проксі та доступність вихідних артефактів.
- Запустіть HOMEBREW_NO_AUTOREMOVE=1 brew cleanup, а ширші варіанти з -s чи --prune=all — лише після такого самого перегляду з -n.
- Знову виміряйте кеш, повторіть пробний запуск і 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 --prefix | Homebrew типово зберігає готові двійкові пакети (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, він показує, що буде видалено, нічого не видаляючи. |
| Оберіть найвужчу відповідну команду cleanup | HOMEBREW_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, щоб не долучати автоматичне видалення залежностей.
Джерела