#Что означает ошибка
brew permission denied
Ошибки Homebrew Permission denied @ dir_s_mkdir и Error: Permission denied при brew install или brew update возникают, когда каталог Homebrew принадлежит другому пользователю (часто root после работы через sudo).
Запускать brew через sudo нельзя.
Исправление Permission denied начинается с определения проблемного пути и владельца. Homebrew обычно обслуживается одним назначенным пользователем; изменение прав всей установки может нарушить безопасность и рабочую конфигурацию других пользователей.
Проверьте доступ к конкретному каталогу Homebrew или пользовательскому кэшу. Если Homebrew установлен организацией или другому пользователю, не меняйте владельца без согласования.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| ВладелецКаталог. | Проявляется как «brew permission denied» или близкий по смыслу сбой. | chown. |
| CLTУстарели. | Проявляется как «brew permission denied» или близкий по смыслу сбой. | Обновите. |
| Apple SiliconПуть. | Проявляется как «brew permission denied» или близкий по смыслу сбой. | /opt/homebrew. |
| GitСбой. | Проявляется как «brew permission denied» или близкий по смыслу сбой. | Проверьте. |
#Пошаговое решение
- Определите префикс HomebrewНа Mac откройте «Программы» → «Утилиты» → «Терминал» и выполните
whoami,command -v brew,brew --prefix,brew --repository. Убедитесь, что используете именно свою установку Homebrew (на Apple Silicon обычно/opt/homebrew, на Intel —/usr/local, но возможны другие значения). Из сообщенияPermission deniedвыпишите конкретный файл или каталог, к которому нет доступа. Не выполняйте команды сsudo, пока не выясните, не относится ли путь к чужой установке или системной папке. - Верните владельцаПроверьте права только проблемного каталога через
ls -ldeO ПОЛНЫЙ_ПУТЬ, подставив фактический путь из ошибки;-eпоказывает списки контроля доступа,-O— флаги macOS. Также выполнитеbrew doctor: его рекомендации могут указать типовую неисправность. Если каталог принадлежит другой учётной записи и Homebrew установлен организацией, попросите владельца исправить права. Массовыйsudo chown -R $(whoami) $(brew --prefix)/*недопустим: он меняет владельцев всего дерева, в том числе объектов других пользователей. - Проверьте права на записьЕсли повреждён только ваш пользовательский каталог кэша Homebrew, выполните
brew --cache, затемls -ldeO "$(brew --cache)"и убедитесь, что он принадлежит вашему аккаунту. Исправляйте права только точного проблемного объекта и только при подтверждённом владельце; решение зависит от того, кому предназначен каталог. В установке для нескольких пользователей не назначайте его себе по умолчанию; обратитесь к администратору. Не запускайтеchmod -Rилиchown -Rна/usr/localлибо/opt/homebrewвслепую. - Запустите
brew doctorПосле согласованного точечного исправления повторитеbrew doctorи прочитайте, остались ли сообщения о правах. Для диагностики можно выполнитьbrew config, который покажет архитектуру и версию окружения. Если Homebrew принадлежит другому пользователю, установите договорённость о едином владельце; командыbrew update,brew installобычно запускают без sudo, из учётной записи владельца установки. Привилегии администратора могут понадобиться для первоначальной настройки путей или отдельных cask, но не для обычного запуска brew. - Повторите
brew updateЕслиbrew doctorбольше не сообщает о доступе, выполнитеbrew update, затем повторите исходную установку конкретной формулы, напримерbrew install ИМЯ_ФОРМУЛЫпосле замены имени. При повторной ошибке сохраните путь, название операции и выводbrew --prefix,brew doctor, не публикуя закрытые данные. Когда префикс принадлежит другой учётной записи или есть ограничения MDM, остановитесь: это администрирование организации, а не повод рекурсивно захватывать права.
#Исправление прав
Проверьте brew --prefix, brew --cache и ls -ldeO для точного пути из ошибки. Не запускайте sudo chown -R $(whoami) $(brew --prefix)/* и не меняйте массово права каталогов. Если установка Homebrew принадлежит другому аккаунту, обратитесь к её владельцу; если испорчен исключительно ваш кэш, можно согласованно исправить владельца только нужного объекта.
#Типичные причины
Ранее запущенный sudo brew создал файлы root. Каталоги /usr/local/share/zsh и /usr/local/lib/pkgconfig могут принадлежать root. Проверьте: ls -ld /opt/homebrew /usr/local/Cellar. Не выполняйте установку от root, а при необходимости используйте sudo только для конкретных исправлений владельца.
#Если не помогло
Прочитайте brew doctor и исправляйте только относящиеся к ошибке предупреждения. Установка инструментов разработчика через xcode-select --install нужна лишь при их отсутствии или соответствующей диагностике. Полная переустановка Homebrew рискованна для пользовательских пакетов и не должна выполняться автоматически ради одного сообщения о правах.
whoamicommand -v brewbrew --prefixbrew --repositorybrew --cachebrew doctor# Замените путь на КОНКРЕТНЫЙ из сообщения Permission denied:ls -ldeO "ПОЛНЫЙ_ПУТЬ"#Как проверить результат
После исправления владельца конкретного каталога выполните brew doctor и brew update; не запускайте сразу brew upgrade для всех пакетов и не устанавливайте тестовые пакеты без необходимости. При успешной работе повторите исходное действие. Если ошибка осталась, сохраните сообщение с точным путём и обратитесь к назначенному владельцу установки.