2012-03-21 5 views
38

У меня есть стандартный доморощенного установить внутри USR/местные/Homebrew установки разрешения проблема

Когда я пытаюсь:

Larson-2:~ larson$ brew install postgresql 
Error: Cannot write to /usr/local/Cellar 

И когда я использую Sudo:

Larson-2:~ larson$ sudo brew install postgresql 
Cowardly refusing to `sudo brew install' 

Что же я делать не так?

+0

Вы можете 'Судо заварить install' но вам нужно сначала изменить разрешений утилиты для варки, поэтому она принадлежит root. Это функция безопасности. – mxcl

+0

Похоже, что метод ниже изменяет разрешения утилиты для варки, верно? –

+0

Нет, это не так. – mxcl

ответ

119

Вы как-то ограниченные разрешения /usr/local/Cellar. Brew не любит устанавливать с sudo, поэтому он отказывается.

Проверьте права доступа:

ls -ld /usr/local/Cellar

открыть их для записи:

sudo chmod a+w /usr/local/Cellar

+1

Nice, я видел другие подходы, такие как изменение владельца/USR/местные/погребе для WHOAMI или Позволить группы писать на/USR/местные – orlybg

+6

После этого я получил 'Ошибка: Отказано в доступе -/Библиотека/Caches/Homebrew/Formula/... 'и решили с помощью' sudo chmod -R a + w/Library/Caches/Homebrew' – gfpacheco

+0

Спасибо @gfpacheco – Lukas

5

Я бы изменить права доступа группы:

$ chgrp -R admin /usr/local/Cellar 
$ chmod g+w /usr/local/Cellar 

предполагается, что ваш пользователь учетная запись находится в групповом объявлении минимум

9

Не используйте sudo при работе с brew (из соображений безопасности).

Вы должны просто настроить свои разрешения.

Так что я бы пойти еще дальше и изменить права доступа к:

sudo chgrp -R admin /usr/local /Library/Caches/Homebrew 
sudo chmod -R g+w /usr/local /Library/Caches/Homebrew 

, а затем применить определенную группу (или admin или staff) для пользователя, который должен быть разрешено использовать brew команду. Проверьте группы пользователей через: id -Gn).

Если есть дополнительные проблемы, запустите: brew doctor, чтобы узнать, что случилось.

1

Это также случается, если на вашем компьютере имеется несколько пользователей. Если это так, вам было бы лучше сменить пользователя, так как каждый другой подход заставил бы вас возиться с гораздо большим количеством файлов и папок, чем просто/usr/local/Cellar

Использовать su userWhoInstalledBrew.

0

Проблема может быть решена путем изменения владельца каталога файлов для текущего пользователя:

sudo chown -R $USER /usr/local 

Этот ответ взят из: https://github.com/Homebrew/homebrew/issues/17884

+0

Обновление для пользователей High Sierra, '/ usr/local' больше не может быть' chown'ed (см. [Здесь] (https://github.com/Homebrew/brew/issues/3228)). Пользователям High Sierra также придется переустанавливать Homebrew. –

Смежные вопросы