не вдається 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.