Исправление ошибки «Could not cleanup old kegs!» в Homebrew

Homebrew. Ошибка «Could not cleanup old kegs!»

Дата Автор Оставить комментарий 742 просмотров

Как-то раз при попытке обновить пакеты Homebrew я столкнулся со следующей ошибкой:

Error: Could not cleanup old kegs! Fix your permissions on:
  /opt/homebrew/Cellar/php/8.1.10_1

Исходя из текста самой ошибки, проблема заключается в некорректных правах доступа к определенной директории. Не имея нужных прав доступа Homebrew не может очистить старые файлы, а запускаться из-под root этот менеджер пакетов отказывается принципиально.

Исправление ошибки «Could not cleanup old kegs!» в Homebrew

Что за Homebrew
Homebrew - это свободно распространяемый менеджер пакетов с открытым кодом, аналог apt, snap и yum в Linux. Установив Homebrew в macOS пользователь получает возможность ставить недостающие пакеты так же, как это делается в Linux-дистрибутивах.
Например, я использую Homebrew чтобы держать на макбуке локальный веб-сервер на связке nginx+mysql+php-fpm, а также использовать привычные утилиты mc и htop.

Публикую решение проблемы на случай если она возникнет снова и мне потребуется быстро найти рабочую команду. Ну и для других людей, которые могут столкнуться с этой же ошибкой.

Итак, для исправление ошибки «Could not cleanup old kegs!» требуется выполнить в терминале одну единственную команду:

sudo chown -R "$USER":admin /conflicting/dir

Где вместо /conflicting/dir прописать путь к той проблемной директории, на которую ругается Homebrew (в моем случае это /opt/homebrew/Cellar/php/8.1.10_1). Если в сообщении об ошибке упоминаются сразу несколько директорий — значит данную команду нужно последовательно выполнить для для каждой из них.

После чего выполнить очистку:

brew cleanup

Проблема решена.

Автор статьи:
Дмитрий
Руководитель отдела в IT-компании. Веду этот блог с 2013 года, пишу о гаджетах и домашней автоматизации, обозреваю одноплатные компьютеры, неспешно собираю «умный дом».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

[Хамство, оскорбления и попытки крауд-маркетинга будут удалены]