Установка в ошибках 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
, потому что вы можете совершать много ошибок.