не вдається chown / usr / local для домашньої мови в Mac OS X 10.13 High Sierra


118

Homebrew потребує дозволів у / usr / local, і оскільки ніхто не використовує мій ноутбук, я завжди просто робив це

sudo chown -R $(whoami) $(brew --prefix)

але у Високій Сьєррі це дає

chown: /usr/local: Operation not permitted

Що таке виправлення?


Вирішено: sudo chown -R "$ USER": admin / usr / local / *
— Marcelo

Відповіді:


218

Проблема продовжувалась виникати ... Після копання глибше я виявив, що лише видалення Homebrew та повторна інсталяція вирішили цю проблему.

Видалити домашню мову:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

Потім знову встановіть його:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

4
це був єдиний спосіб виправити домашню мову після оновлення Sierra. моя помилка була: gh4x-mbpr:~ gh4x$ brew link git Linking /usr/local/Cellar/git/2.15.0... Error: Permission denied @ dir_s_mkdir - /usr/local/lib і не sudo chown -R $(whoami) $(brew --prefix)/* допомогли ...
— gh4x

Неймовірно. Помилка першого разу, не вдалося видалити сценарій, спрацювала друга установка.
— GreenAsJade

Ви можете спочатку зберегти вихід brew listу файл, щоб записати, які пакунки були встановлені.
— Giles Gardam

1
Жоден з інших виправлень домашнього мовлення Mojave не працював у моїй системі. Видалення / перевстановлення працювало чудово.
— пкемб

2
Працює також з Каталіною
— Гефільт Риба

52

На жаль, ви більше не можете вдихатися /usr/localу Високій Сьєррі. Щоб обійти проблему, sudo mkdir /usr/local/includeі /usr/local/Frameworksякщо вони не існують, і

sudo chown -R $(whoami) $(brew --prefix)/*

Дякуємо ilovezfs за цей простий спосіб вирішення та за дивовижну домашню гаму!


9
Ще не працює. $ brew update Помилка: Каталог / usr / local не піддається запису.
— Лоуренс Коуп

Спробуйте видалити і повторно встановити Homebrew: stackoverflow.com/questions/46459152 / ...
— ruggershawn

як я прокоментував в іншому місці, видалення видаляє ВСІ ваші варені пакети.
— jaydel

$(brew --prefix)слід оцінювати /usr/local/, я вважаю.
— Джордан Стюарт

33

Ви не можете змінити дозвіл для /usr/localсебе, але ви можете змінити правильний дозвіл для папок під ним, так що це виправлено
sudo chown -R $(whoami) /usr/local/*


1
Отримайте таку саму проблему
— Laurence Cope

2
Працює на MacOS High Sierra. Працювали. Дякую.
— Принц Одам

2
Працював для мене на: macOS High Sierra 10.13.6
— Gail Parsloe

8

Я дотримувався цього, але проблема все ще зберігається.
Отже, я перевстановив домашню мову, не видаляючи попередню. Це працює зараз!
(Я не знаю як)


3
Я рекомендую повністю видалити Homebrew і знову встановити його.
— k1r8r0wn

Декілька встановлених дійсно працювали, я не зміг її виправити, поки не видалив.
— cbowns

видалення все викрутить. У мене встановлено багато пакетів, і мені доведеться пройти і встановити їх заново. На жаль, це все працювало раніше, тому що я мав ці пакунки.
— jaydel


3

Спробуйте відключити захист цілісності системи . З документації:

Захист цілісності системи можна налаштувати за допомогою команди csrutil (1).

Ви можете перевірити, чи в даний час у вашій системі увімкнено захист цілісності системи, виконавши таку команду в Терміналі:

$ csrutil status
System Integrity Protection status: enabled.

Щоб увімкнути або вимкнути захист цілісності системи, потрібно завантажитися в ОС відновлення і запустити команду csrutil (1) з терміналу.

Завантажте ОС для відновлення, перезавантаживши машину та утримуючи клавіші Command і R при запуску. Запустіть термінал у меню Утиліти. Введіть таку команду: $ csrutil enable

Після ввімкнення або відключення захисту системної цілісності на машині потрібна перезавантаження.


Хоча це теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки.
— Джейк Симонс

3
Це трохи схоже на зняття варти з вашої настільної пилки. Це працює, і може знадобитися іноді, але безпечніше, якщо вам цього не потрібно робити. Поставити себе як власника / usr / local зробити так, щоб робота з домашніми мовами завжди виглядала як злом.
— Калеб

3
Це вкрай не рекомендує! Це надзвичайно небезпечно, якщо користувач не робить того, що робить.
— Абу Шумон

@oligofren: D: D: D давай людину. Розслабтеся, це не англійський word in contextконкурс. : D: D Позначити попередження користувача. Але добре, тоді ви підбираєте для мене формулювання: p: p
— Абу Шумон

1

якщо ви використовуєте zsh, тому що ви прийшли з bash, можливо, доведеться змінити $ PATH. ви повинні додати export PATH=$HOME/bin:/usr/local/bin:$PATH .zshrc

тоді це повинно працювати, ця проблема вирішена в моєму mac таким чином.


1

Я також на 10.13 Високій Сьєррі. Я спробував попередні пропозиції; нічого не працювало. Зрештою я спробував спочатку встановити інструменти командного рядка :

xcode-select --install

а потім (повторно) запустив команду встановлення пива:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

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


0

Переконайтесь, що у вас немає встановленого блокування в домашній папці або до будь-якої папки, до якої потрібен доступ для встановлення.

Навіть якщо дозволи та права власності встановлені правильно і ви ввійшли в систему з правильним користувачем / або Root користувачем, це не дозволить вам створювати нові папки чи каталоги.


0

У мене не було папки / user / local / Frameworks, тому це було виправлено для мене

sudo mkdir -p /usr/local/Frameworks
sudo chown -R $(whoami) /usr/local/Frameworks

У мене OSX High Sierra


0

це Каушик. Я використовую MacBook Pro macOS Catalina 10.15.4. Я створив новий обліковий запис адміністратора, але заварювання було помилкою. Отже, я стежив за кроком з цієї посади. що працювало, це:

sudo chown -R $ (whoami) $ (варити - префікс) / *

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