Homebrew: не может symlink,/usr/local/bin не доступен для записи

При установке tig, HomeBrew отображает следующие проблемы при установке зависимости:

Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/a2x
/usr/local/bin is not writable.

You can try again using:
  brew link asciidoc

Ответ 2

Вместо того, чтобы запускать какую-либо конкретную команду, я бы рекомендовал запустить brew doctor и серьезно относиться ко всем предупреждениям. Могут возникнуть другие проблемы, которые вы застряли, и в этом вопросе не может быть зафиксировано.

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

Ответ 3

Другие ответы правильны, насколько они подходят, но они не отвечают, почему эта проблема может возникнуть, и как решить эту причину.

Причина

В этой проблеме могут быть две причины:

  • Установка homebrew выполнялась с пользователем, отличным от того, который вы используете. Homebrew ожидает, что только пользователь, который его первоначально установил, когда-либо захочет использовать его.
  • Вы установили какое-то программное обеспечение, которое записывает в /usr/local без использования brew. Это причина brew doctor предлагает, если вы запустите его.

Решение

Многопользовательский доморощенный

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

Подробные инструкции можно найти онлайн, но быстрый ответ таков:

  • Создать группу с именем brew:

    • Открыть настройки системы
    • Нажмите "Учетные записи"
    • Нажмите "+" (при необходимости сначала разблокируйте)
    • В разделе Новая учетная запись выберите группу
    • введите brew
    • Нажмите "Создать группу"
  • Выберите группу brew и добавьте к ней учетные записи пользователей, которые вы хотите использовать brew.
  • изменить принадлежность группы /usr/local folder: sudo chgrp -R brew /usr/local
  • изменить разрешения для добавления записи в /usr/local в виде группы: sudo chmod -R g+w /usr/local
  • изменить группу каталогов кэша homebrew: sudo chgrp -R brew /Library/Caches/Homebrew
  • изменить разрешения на доступ к каталогу homebrew: sudo chmod -R g+w /Library/Caches/Homebrew

Однопользовательский доморощенный

Если вы не пытаетесь использовать более одного пользователя с Homebrew, то решение, предоставленное другими ответами, основанное на предложениях brew doctor, возможно, достаточно:

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

sudo chown -R $(whoami) /Library/Caches/Homebrew

Проверка

После этих шагов brew doctor должен сообщить об успешном завершении любым пользователем в группе brew, предположив, что вы вышли из системы и снова вошли, чтобы применить новые членства в группах (если вы прошли многопользовательский маршрут). Если вы только что скорректировали ситуацию для одного пользователя homebrew, то выходить из системы и обратно не должны быть необходимы, поскольку ни одно из членов вашей группы не изменилось.

Ответ 4

Я нашел для своей конкретной настройки следующие команды:

brew doctor

И тогда это показало мне, где были мои ошибки, а затем эта немного другая команда из комментария выше.

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

Ответ 5

Для меня решение заключалось в запуске brew update.

Итак, сделайте это первым.

Это может быть обычной практикой для людей, знакомых с доморощенным, но я не из тех людей.

Изменить: я обнаружил, что мне нужно обновить, запустив brew doctor, как было предложено @kinnth ответом на этот же вопрос.

Общий рабочий процесс устранения неполадок может выглядеть следующим образом:  1. запустите brew update  2. Если это не поможет запустить brew doctor и следовать его указаниям  3. Если это не помогает проверить переполнение стека

Ответ 7

Это связано с тем, что текущему пользователю не разрешено писать в этом пути. Таким образом, для изменения r/w (чтение/запись) разрешений вы можете использовать 1. терминал или 2. Графическое окно "Получить информацию".

1. Использование терминала

Google, как использовать команды chmod/chown (изменить режим/изменить владельца) с терминала

2. Использование графического "Получить информацию"

Вы можете щелкнуть правой кнопкой мыши по папке/файлу, для которого вы хотите изменить права доступа, затем откройте Получить информацию, которая покажет вам окно, как внизу, внизу которого вы можете легко изменить r/w разрешения: введите описание изображения здесь

Не забудьте изменить разрешение на "только чтение" после вашей временной работы, если возможно

Ответ 8

Если вы перейдете в папку в finder, щелкните правой кнопкой мыши и выберите "Получить информацию", вы можете перейти в раздел "Общий доступ и разрешения" для папки и разрешить "Чтение и запись" на "все"

Это то, что я делаю, чтобы сделать символические ссылки с этой ошибкой. Кроме того, brew представляется reset разрешениям в папке также, как будто вы ничего не изменили