Обновление варева в Эль-Капитане


38

Я только что обновился до El Capitan, и при попытке обновления brewя получил следующую ошибку:

$ brew update
Error: The /usr/local directory is not writable.
Even if this directory was writable when you installed Homebrew, other
software may change permissions on this directory. Some versions of the
"InstantOn" component of Airfoil are known to do this.

You should probably change the ownership and permissions of /usr/local
back to your user account.
  sudo chown -R $(whoami):admin /usr/local

Прежде чем приступить к chownрекомендации, учитывая, что El Capitan только что вышел, это правильный путь? Почему этот шаг необходим, и каковы возможные нежелательные последствия выполнения этой команды?

В случае, если это поможет, я обнаружил две проблемы с El Capitan brew: 40837 и 41665, но решение этой проблемы не было сразу ясным. Что я могу сделать, чтобы продолжать brewнадежно использовать в El Capitan?


2
Хорошо, вы сделали, как предлагается сообщение, сменить владельца /usr/local?
user3439894

Это поднимает отличный вопрос для случая, когда несколько пользователей (или один пользователь с несколькими учетными записями, имеющими разные профили) на одном компьютере.
Уолт Стоунбернер

4
Печатание sudo chown -Rдает мне воли. Не имеет значения, каковы другие параметры. У меня больше, чем у Homebrew /usr/local, и это явно не безопасная команда. Через Time Machine я подтвердил, что устанавливал только El Capitan chowned, /usr/localа не подкаталоги. Я был , таким образом , в состоянии уйти с делать нерекурсивные реверсии, то есть sudo chown $(whoami):admin /usr/local. YMMV.
duozmo

@duozmo прав. -RВ sudo chown -Rдействительно тяжелых передал. Это равносильно тому, что Brew претендует на домен в целом/usr/local
HairOfTheDog

Ответы:


31

Я имею в виду, они дают вам решение прямо там. У меня была такая же проблема, и я просто побежал:

  sudo chown -R $(whoami):admin /usr/local

и это сработало.


1
+1 Мне также нужно было сбросить разрешения моего пользователя, как описано. Больше никаких проблем после этого небольшого изменения - homebrew и мои пакеты были очень надежными 10.11.
bmike

22
Это на самом деле не отвечает на вопрос: можно предположить, что Apple заблокировала / usr / local по причине и что это исправление НЕ подходит для El Capitan. Я сейчас гуглю, чтобы посмотреть, даст ли Apple какое-то руководство. Вопрос в том, что «... учитывая, что« Эль-Капитан »только что вышел, это правильный путь?»
Майкл Уэлч

1
@MichaelWelch Ответ был опубликован до этого редактирования.
DisplayName

1
Извините @DisplayName Я должен был посмотреть на отметки времени.
Майкл Уэлч

2
Это правильный ответ. См. Github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/… - я побежал $ brew doctorи обнаружил, что flacзависимость отсутствует. После того, как $ brew install flacмне пришлось упорно работать $ brew updateеще пару раз.
Андо

9

Нам больше не нужно ломать голову об этом. Я рискнул советом и сделал предлагаемое изменение разрешения. Затем, при обновлении до последнего доморощенного, я получил это обнадеживающее сообщение:

Доморощенный больше не должен владеть / usr / local. Если вы хотите, вы можете вернуть / usr / local к владельцу по умолчанию с помощью: sudo chown root: wheel / usr / local


Так как решить эту проблему?
Раджеш Маурья

@RajeshMaurya использовать решение от Karolus
JannieT

8

В соответствии с некоторыми из приведенных выше вопросов безопасности в диалоговом окне содержатся инструкции по сбросу после успешного обновления brew. После запуска

sudo chown -R $(whoami) /usr/local

А потом

brew update

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

sudo chown root:wheel /usr/local

После того, как это будет выполнено, это должно устранить любые проблемы безопасности с MacOS 10.12


chown: / usr / local: операция не разрешена
Раджеш Маурья

6

Данное решение не сработало для меня:

sudo chown -R $(whoami):admin /usr/local

Этот вариант работал для меня:

sudo chown -R $USER /usr/local/


1
sudo chown -R $ USER / usr / local / работал для меня в последней версии macOS
Алекс Тротт

1
chown: / usr / local /: Операция не разрешена
Раджеш Маурья

добавьте, sudoзатем введите пароль корневого уровня
Brian Spiering

1
Все еще chown: / usr / local /: Операция не разрешена, даже если я ввожу пароль root.
2myCharlie

0

Я исправляю это с помощью этой команды sudo chown -R admin /usr/local.


-1

пожалуйста, посмотрите на SIP с:

csrutil status

защита целостности системы установлена ​​на «enable», а последний атрибут Apple ограничен:

csrutil 

3
Как это решает проблему, указанную в вопросе?
холме

-1

Это сработало для меня.

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

1
Оба эти решения не работают для меня. Он по-прежнему показывает: chown: / usr / local: операция не разрешена
2myCharlie

-2

защита целостности системы должна быть отключена. Вы можете сделать это с этим.

sudo nvram boot-args="rootless=0";osascript -e 'tell app "loginwindow" to «event aevtrrst»’

Это отключает защиту целостности системы во всей системе. Я считаю, что вы также можете сделать это из режима восстановления. Вы все равно должны вводить свой пароль root при работе с sudo, но вы не заблокированы SIP. Вы также не открываете каталоги по неосторожности, пытаясь установить права доступа.


3
Нет необходимости отключать SIP для смены владельца ниже /usr/local.
холме
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.