Brew врач говорит: "Предупреждение:/usr/local/include не доступно для записи".

Brew врач говорит:

Предупреждение:/usr/local/include не доступно для записи. Это может произойти, если вы используете программное обеспечение "sudo make install", которое не управляется Homebrew.

Если brew пытается записать заголовочный файл в этот каталог, установите произойдет сбой во время этапа ссылки.

Вероятно, вы должны chown/usr/local/include

Я пробовал разные команды, чтобы решить эту проблему, но я все еще застрял здесь.

Я запускаю homebrew на 10.8.2

Ответ 1

Возьми на себя ответственность за все это.

Mac OS High Sierra или новее: (связывайтесь с Кирком в комментариях ниже)

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

Предыдущие версии macos:

$ sudo chown -R $USER:admin /usr/local/include

Тогда сделай другой

$ brew doctor

Ответ 2

То, что сработало для меня, тоже было

sudo chmod g+w /usr/local
sudo chgrp staff /usr/local

Ответ 3

Что сработало для меня, было

$ sudo chown -R yourname:admin /usr/local/bin

Ответ 4

Единственный, кто работал у меня на El Capitan, был:

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

Ответ 5

Для Высокой Сьерры:

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

Затем попробуйте свои команды заваривать.

Выпуск № 3285

Ответ 6

Если вы находитесь в Высшей Сьерре и столкнулись с этой проблемой, выполните следующие действия (Примечание: /usr/local не может быть chown'd в Высшей Сьерре):

sudo mkdir /usr/local/include
sudo chown -R $(whoami) $(brew --prefix)/*

Тогда попробуйте связать с brew link. Я столкнулся с подобной проблемой, и ни одно из вышеприведенных решений не сработало для High Sierra. Надеюсь, это кому-нибудь поможет.

Ответ 7

Вы можете использовать команду для исправления этой проблемы в своем .bash_profile и запускать ее каждый раз, когда вы сталкиваетесь с ней:

В конце файла ~/.bash_profile добавьте:

alias fix_brew='sudo chown -R $USER /usr/local/'

И теперь внутри вашего терминала вы можете запустить:

$ fix_brew

Ответ 8

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

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

У меня была проблема с обновлением homebrew со следующей ошибкой:

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

Ответ 9

Работайте для меня

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

$ cd /usr/local/Library && git stash && git clean -d -f

Ответ 10

Для некоторых это будет:

sudo chown -R JonJames:admin /usr/local/lib

где используется "lib", а не "bin" или "include" или "whatever else"

The Homebrew Предупреждение "должно" объяснить, что конкретно не доступно для записи, а затем дать вам синтаксис команды для последующего использования, однако вам нужно будет использовать ":", в отличие от того, что предупреждает, на самом деле не правильный синтаксис??

Ответ 11

Такая же ошибка в MacOS 10.13

/usr/local/include и /usr/local/ /usr/lib не были созданы. Я вручную создал и brew link, наконец, работал.

Ответ 12

Что сработало для меня, хотя у меня более 1 пользователя на моем компьютере.

Используя терминал:

  • Бегущий brew doctor
    • Просмотр нескольких /usr/local/... не допускает записи ошибок
  • Отключение защиты целостности системы Mac: https://apple.stackexchange.com/a/208481/55628
  • Запустите следующее
  • sudo chown -R $(whoami)/usr/local/*
  • brew doctor && brew upgrade && brew doctor

Работает Macbook Pro OSX High Sierra (версия 10.13.3.)

РЕДАКТИРОВАТЬ 1:

К вашему сведению - пожалуйста, имейте в виду, что это вызывает проблему с запуском MySQL на вашем MAC.

Чтобы иметь возможность запустить мой локальный сервер, мне нужно было выполнить:

sudo chown -R mysql:mysql /usr/local/mysql/data

После этого вы можете запустить свой локальный сервер MySQL.

Ответ 13

Вам нужно создать /usr/local/include и /usr/local/lib, если они не существуют:

$ sudo mkdir -p /usr/local/include
$ sudo chown -R $USER:admin /usr/local/include

Ответ 14

Вам нужно получить контроль над целым /usr/local, чтобы сделать это, чтобы сделать рекурсивный chown под /usr/local

sudo chown -R YOUR_USERNAME:admin /usr/local/

Ответ 15

sudo mkdir -p /usr/local/include /usr/local/lib /usr/local/sbin

sudo chown -R $(whoami) /usr/local/include /usr/local/lib /usr/local/sbin

Это создаст все необходимые каталоги и даст ему правильное владение.

После выполнения этих команд проверьте: brew doctor

Это работает для Мохаве.

Ответ 16

У меня это произошло в моей организации после того, как все наши пользователи были привязаны к активному каталогу (эффективно меняя UID с 50x на ######).

Теперь это просто случай изменения права собственности на все файлы, принадлежащие x на y.

Где 501 - мой старый цифровой идентификатор пользователя, который все еще связан со всеми домашними файлами.

Старый идентификатор пользователя можно найти с помощью ll /usr/local/Cellar

Теперь обновите право собственности sudo find /usr/local -user 501 -exec chown -h $USER {} \;

Таким образом мы избегаем изменения права собственности на файлы, которые не контролируются доморощенным или принадлежат к другому пользователю системы.

Ответ 17

Перейдите в каталог /bin и введите:

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

Ответ 18

Я просто хочу повторить скромный комментарий sam9046 как альтернативное и потенциально гораздо более простое решение, которое сработало в моем случае: удалить и снова установить homebrew с нуля. Команды sudo не требуются.

Вы также можете просмотреть/изменить скрипт удаления по этой ссылке выше, если вам нужно убедиться, что он не повлияет на ваши ранее установленные пакеты. В моем случае это была просто моя домашняя машина, поэтому я просто начал все сначала.

Ответ 19

Сначала вам нужно создать каталог:

sudo mkdir /usr/local/include

Во-вторых:

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

Ответ 20

sudo mkdir -p/usr/local/include/usr/local/lib/usr/local/sbin

sudo chown -R $(whoami)/usr/local/include/usr/local/lib/usr/local/sbin

Это создаст все необходимые каталоги и установит правильные разрешения.

После выполнения этой команды выполните команду: brew doctor для проверки.

Это работает на Мохаве.

Ответ 21

Что сработало для меня (выпуск № 3285):

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