Я только что перешел с Snow Leopard на Lion и пытаюсь установить Homebrew. Однако после установки я выполняю brew doctor
инструкции по установке и вижу ряд ошибок, указывающих, что каталоги / usr / local недоступны для записи. Например:
Error: /usr/local/share isn't writable.
This can happen if you "sudo make install" software that isn't managed
by Homebrew.
If a brew tries to write a file to this directory, the install will
fail during the link step.
You should probably `chown` /usr/local/share
Я получаю это для нескольких каталогов:
You should probably `chown` /usr/local/include
You should probably `chown` /usr/local/share
You should probably `chown` /usr/local/share/man
Я не могу понять, почему возникает эта ошибка, так как кажется, что я являюсь частью группы Unix, у которой есть права на запись в эти каталоги:
Mini:~ felciano$ ls -ld /usr/local/share
drwxrwxr-x 4 root admin 136 May 13 15:53 /usr/local/share
Mini:~ felciano$ whoami
felciano
Mini:~ felciano$ dscl . -read /Groups/admin GroupMembership
GroupMembership: root felciano
Mini:~ felciano$
Что мне не хватает?
/usr/local
должен принадлежать мне, если на этой машине несколько администраторов. Кроме того, это возможно для меня, чтобы написать в местахbrew doctor
жаловаться. Есть еще идеи?Ответы:
РЕДАКТИРОВАТЬ: проблема теперь исправлена в Homebrew:
Если проблема не устранена, обновите Homebrew следующим образом:
Если вы хотите узнать, в чем проблема, я сохранил свой первоначальный ответ ниже.
Игнорировать вопрос о разрешении на данный момент
Я испытываю ту же самую проблему, и, по моему мнению, проблема
brew doctor
скорее в чем, чем в вашей и моей установке.Я думаю, что вы должны игнорировать проблему, а не менять владельца
/usr/local
. Кроме того, вы можете исправить свой локальныйbrew doctor
сценарий, пока не будет выпущено исправление. См. ниже.Я не считаю правильным
/usr/local
принадлежать конкретному пользователю. У меня более одного администратора на этой машине. Вы должны оставить в/usr/local
собственностиroot:admin
как владельца и группы.Мое расследование
Как и у вас, у меня есть
/usr/local
пользователь, который также является членом группы, и его можноadmin
записать:Давайте проверим, что каталог действительно доступен для записи:
Дальнейшее изучение
brew doctor
кода привело меня к выводу, что использование функции rubyPathname.writable?
вызывает проблему. Рассмотрим этот интерактивный сеанс Ruby:Функция
Pathname.writable?
говорит,/usr/local
что нельзя записать, хотя мы знаем, что это так.Использование
Pathname.writable_real?
вместо этого дает правильный результат - это говорит о том, что каталог доступен для записи:Это должно быть исправлено в
/usr/local/Library/Homebrew/cmd/doctor.rb
. Вы можете исправить это в своей собственной установке, ожидая исправления.Разница между этими двумя функциями (в соответствии с документами Ruby здесь и здесь ):
доступный для записи? (имя_файла) → true или false: возвращает true, если указанный файл доступен для записи по эффективному идентификатору пользователя этого процесса.
writable_real? (file_name) → true или false: возвращает true, если указанный файл доступен для записи по реальному идентификатору пользователя этого процесса.
источник
writable_real?
... может быть, пришло время для запроса на удаление?!? :-)Я считаю, что вам просто нужно это:
brew update
Тогда попробуйте еще
brew doctor
раз.Вы все еще можете получить ошибки о любых зависимостях, которые вы не используете (Java в моем случае), что нормально. Если у вас установлены инструменты командной строки для XCode вместо полной установки XCode, вы также получите сообщение об ошибке, в котором говорится, что у вас неверный путь, но прямо в сообщении вы также прочтете, что допустимого пути нет, если вы просто используя инструменты командной строки для XCode, так что все в порядке.
Для пользы других: имейте в виду, что вы должны войти в систему как администратор, чтобы сделать это для работы.
источник
Я последовал комбинации предложений iolsmit и Фила М: я добавил эти каталоги к своему имени пользователя, затем
brew update
снова побежал, а затемbrew doctor
. Это избавило от всех сообщений об ошибках, и установка brew теперь, кажется, работает хорошо. Спасибо вам обоим!источник
Большие пальцы за расследование и разъяснения @ mgd ... это место!
Похоже, что аналогичная проблема была поднята на github.com около года назад, но так и не была (должным образом?) Решена, по крайней мере, не с помощью
writable_real?
... может быть, пришло время для запроса на удаление?!? :-)источник