Оновлення пивоваріння в Ель-Капітані


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рекомендації, враховуючи, що Ель-Капітан щойно вийшов, це правильний спосіб продовжити тут? Чому цей крок необхідний і які можливі небажані наслідки виконання цієї команди?

Якщо це допомагає, я знайшов два питання про Ель-Капітан у brew: 40837 та 41665, але рішення цієї проблеми було не відразу зрозумілим. Що я можу зробити, щоб продовжувати brewнадійно використовувати в El Capitan?


2
Добре ви зробили, як пропонується повідомлення, змінити право власності на /usr/local?
користувач3439894

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

4
Введення тексту sudo chown -Rдає мені воллі. Не має значення, які інші параметри. У мене більше, ніж Homebrew /usr/local, і це не очевидно безпечна команда. Через Time Machine я підтвердив, що встановлює El Capitan chowned, виключно /usr/local, а не підкаталоги. Таким чином, мені вдалося піти, роблячи нерекурсивну реверсію, тобто sudo chown $(whoami):admin /usr/local. YMMV.
дуозмо

@duozmo має рацію. -RВ sudo chown -Rдійсно важких передав. Це рівнозначно Brew, який претендує на домен у цілому/usr/local
HairOfTheDog

Відповіді:


31

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

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

і це спрацювало.


1
+1 Також мені потрібно було скинути дозволи користувача, як описано. Більше жодних проблем після цієї маленької підправки - домашня мова та мої пакунки були дуже надійними 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

Нам більше не потрібно ламати голову з цього приводу. Я ризикнув порадою і змінив запропонований дозвіл. Потім, після оновлення до останньої домашньої мови я отримав це заспокійливе повідомлення:

Homebrew більше не має права власності на / usr / local. Якщо ви хочете, ви можете повернути / usr / local до власності за замовчуванням за допомогою: sudo chown root: wheel / usr / local


То як вирішити це питання?
Раджеш Маурія

@RajeshMaurya використовувати розчин karolus
JannieT

8

Згідно з вищезазначеними питаннями безпеки, діалогове вікно дає вказівки щодо скидання після успішного оновлення варіння. Після бігу

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
Alex Trott

1
chown: / usr / local /: Операція заборонена
Rajesh Maurya

Додати, sudoпотім введіть пароль рівня кореня
Брайан Шпірінг

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

0

Я виправляю це за допомогою цієї команди sudo chown -R admin /usr/local.


-1

будь ласка, подивіться на SIP з:

csrutil status

захист цілісності системи фіксується на "enable", при цьому останній атрибут Apple "обмежений":

csrutil 

3
Як це вирішує проблему, викладену у запитанні?
nohillside

-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»’

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


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