Установка в ошибках Homebrew

Попытка установить rvm и ruby ​​1.9.2

Я уже установил homebrew и git, но не смог получить полные обновления, потому что продолжал получать разрешения. Переустановил Snow Leopard и восстановил разрешения.

Теперь это происходит...

$brew установить wget

Ошибка: не удается записать в /usr/local/Cellar

Ответ 1

sudo chown -R $USER /usr/local

Вам придется отдавать себя в собственность /usr/local/, используя эту строку прямо там. Я должен был сделать это сам после использования рубинового лайнера в верхней части официальных документов для установки Homebrew. Работала для меня как шарм. Это должен быть единственный раз, когда вам понадобится sudo с Homebrew.

Я не уверен, делает ли рубиновый однострочный лайнер. Если да, то что-то еще в моей системе взяло под контроль /usr/local с тех пор.

Изменить: я полностью пропустил это, но @samvermette не ответил (см. ответы на мой ответ): если вы запустите эту команду выше и установить что-то через доморощенный, для которого требуются специальные разрешения пользователя, такие как mysql, обязательно верните эти разрешения (так как приведенная выше команда дает рекурсивное владение всем внутри /usr/local вам ($USER). mysql, это...

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

Ответ 2

У меня была эта проблема после обновления до Mavericks, и эта страница была лучшим результатом поиска при отправке сообщения об ошибке. Я продолжил поиск и нашел этот ответ на стек overflow.com. Короче говоря, это:

sudo chmod a+w /usr/local/Cellar

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

Я помещаю этот ответ здесь для всех, кто может сначала найти эту страницу, как я. Однако кредит должен идти на jdi.

Ответ 3

Вы можете разрешить только пользователям Admin писать в /usr/local/?

chgrp -R admin /usr/local
chmod -R g+w /usr/local
chgrp -R admin /Library/Caches/Homebrew
chmod -R g+w /Library/Caches/Homebrew

Поскольку каждый пользователь, входящий в группу Admin, сможет устанавливать новые зависимости.

Ответ 4

Я предлагаю убедиться, что текущий пользователь является членом группы, которая владеет /usr/local. По-моему, по умолчанию эта группа wheel. Чтобы стать членом этой группы:

$ sudo dscl . append /Groups/wheel GroupMembership $USER

Несмотря на что-то из неэлегантного молота, он имеет предполагаемый эффект - возможность доступа к элементам в /usr/local, которые предназначены только для использования (чтения/записи) с помощью повышенных элементов. Этот подход имеет преимущества от других выше, потому что он использует преимущества членства в группах, позволяя нескольким (авторизованным) пользователям в системе использовать доморощенного.

Ответ 5

удалить и снова установить HomeBrew, который выполнит трюк

Ответ 6

В High Sierra вам понадобится следующая команда: chown не будет работать:

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

Ссылка

https://github.com/Homebrew/brew/issues/3228

Ответ 7

Как вы установили Homebrew? Их официальные инструкции по установке включают запуск ruby ​​ script. Это должно заботиться о разрешениях для вас.

Если вы не хотите запускать script, есть раздел этой страницы, называемый "Установка в /usr/local для разработчиков", в котором объясняется изменение разрешений, необходимых для каталога/usr/local.

Ответ 8

Вы также можете предотвратить эту ошибку, если вы выполните команду с помощью sudo:

$ sudo brew install wget

Но позаботьтесь о том, чтобы использовать sudo, потому что вы можете совершать много ошибок.