Error: Permission denied @ dir_s_mkdir - /usr/local/Cellar
#Где живёт Homebrew
На Apple Silicon Homebrew устанавливается в /opt/homebrew, на Intel — в /usr/local. Каталог должен принадлежать вашему пользователю, поэтому brew никогда не запускается через sudo. Ошибка прав появляется, когда владелец каталога сменился на root (из-за запуска с sudo, миграции, копирования), либо когда пользователь не входит в нужную группу.
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Ранее использовали sudo brewФайлы принадлежат root. | ls -l показывает владельца root. | Верните владельца командой chown. |
| Каталог принадлежит другому пользователюНа Mac несколько учётных записей. | Владелец — другой пользователь. | Используйте одну учётную запись для Homebrew или установите его в домашний каталог. |
Apple Silicon: путь /usr/localМиграция с Intel. | brew находит старый каталог. | Переустановите Homebrew в /opt/homebrew и мигрируйте пакеты. |
| Cask просит парольПрограмме нужны права установки. | Запрос sudo при brew install --cask. | Это нормально для драйверов и пакетов .pkg. |
| Защита целостности системыSIP блокирует запись. | Ошибка в системных каталогах. | Не пишите в /usr/bin; Homebrew использует /opt/homebrew или /usr/local. |
| Нет места или диск только для чтенияНеверная файловая система. | Read-only file system. | Проверьте диск и права. |
#Порядок исправления
- Не используйте sudo с brewHomebrew на macOS устанавливается для обычной учётной записи: в Терминале (Finder → «Программы» → «Утилиты») запускайте
brew install ...безsudo. Если ошибка уже есть, запишите точный путь послеPermission denied: это может быть каталог установки Homebrew, ваш кэш, конкретный файл или сторонняя программа. Не меняйте права на всю папку Homebrew до выяснения, какой объект недоступен. - Проверьте путь установкиВ терминале выполните
brew --prefixиuname -m. Для Apple Silicon штатный префикс часто/opt/homebrew, для Intel/usr/local, но фактический путь берите из вывода команды. Затем выполнитеbrew configи сохраните строки Homebrew prefix и текущего пользователя; при нестандартной или общей установке процедура исправления прав должна учитывать администратора этого Mac. - Посмотрите владельцаДля проблемного пути выполните
ls -ldeO "$(brew --prefix)"иls -ldeO "$(brew --prefix)/Cellar"(если каталог существует). В выводе сравните владельца, группу, ACL и флаги. Проверьте собственное имя командойid -un. Если права некорректны из-за прежней установки под root, сначала выясните, кто должен владеть ИМЕННО ЭТИМИ каталогами; массовоеchown -Rможет нарушить совместную установку. - Верните праваНе используйте
sudo chown -R "$(whoami)" "$(brew --prefix)"/*как универсальное средство. После подтверждения повреждения прав администратор может исправить владельца одного конкретного каталога, указанного в ошибке, через Finder → «Свойства» → «Общий доступ и права доступа» или адресную командуchownпо документации Homebrew. До этого сохраните сведения о владельцах и убедитесь, что каталог не используется другими пользователями. - Исправьте права записи для группы
chmod -R u+wна весь префикс меняет множество файлов и может создать проблему безопасности. Если доступ запрещён для одного каталога Homebrew, проверьте ACL (ls -le) и сначала устраните первопричину. Настройка Homebrew должна соответствовать официальным рекомендациям для вашей архитектуры и версии macOS. После адресного исправления повторите установку только исходного пакета. - Запустите диагностикуЗапустите
brew doctorбезsudo. Прочитайте предупреждения о нестандартных владельцах, префиксах и компонентах Xcode; если программа предлагает действия с правами администратора, оцените их отдельно. ЗаписьYour system is ready to brewсвидетельствует об отсутствии найденных типовых проблем, но не гарантирует исправность всех сторонних пакетов. Снова попробуйте первоначальную команду установки. - Обновите
brew updateобновляет сведения о формулах, аbrew upgradeможет обновить ВСЕ установленные пакеты и затронуть работающие приложения. Сначала выполните толькоbrew updateпри работающем префиксе и оцените вывод.brew upgradeзапускайте отдельно после проверки совместимости и резервного копирования, а не как обязательный шаг для исправленияPermission denied. Если ошибка сохраняется, сохраните путь и вывод для поддержки. - Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
#Типичные случаи
Если после всех исправлений ошибки остаются, выполните brew doctor, исправьте предупреждения по одному и повторите установку пакета с подробным выводом: brew install -v имя. Это покажет, на каком каталоге происходит отказ.