2011-01-01 3 views
23

Я установил последнюю версию Homebrew на OS X 10.6.5
Выполнение любой команды создает это предупреждение:Запуск заварить генерирует предупреждения

/usr/local/Library/Homebrew/global.rb:34 предупреждение: Небезопасный мир, доступный для записи dir/usr/local/bin в PATH, режим 040777

Почему я получаю это предупреждение? и как исправить?

ответ

25

Во-первых, есть две команды пива, которые полезны при отладке проблем. К ним относятся:

$ brew doctor 
$ brew missing 

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

$ chmod 755 /usr/local/bin 

Если вы получите сообщение об ошибке при попытке сделать это, это может означать, что ваш/USR/локальный каталог (и подкаталоги) принадлежат неверному пользователю. Если это так, я бы рассмотрел удаление вашего/usr/local directory и reinstalling Homebrew correctly. Кроме того, вы можете переопределить ошибку, предваряя последнюю команду с Судо и введите пароль администратора:

$ sudo chmod 755 /usr/local/bin 
+3

Я согласен с Асмус, что удаление '/ USR/local' плохая рекомендация. –

+1

Когда вы впервые начинаете с Homebrew, вам нужно начать с чистого '/ usr/local'. Тот факт, что разрешения в '/ usr/local' были установлены неправильно, является признаком того, что Homebrew был установлен неправильно в первую очередь. Начиная с нуля, это не так плохо. –

7

Это функция безопасности, рубин, вы можете изменить права доступа на каталог/USR/местные/бен, чтобы получить от этого:

sudo chmod go-w /usr/local/bin 

и введите свой пароль в командной строке.

Вы делаете не необходимости изменения права собственности и ни должен удалить/USR/местные, как Райан предложил (что может потребовать от вас, чтобы восстановить все you've проделанное до сих пор), каталог находится в собственности корня и это это обычный способ.

+0

С помощью Homebrew директория '/ usr/local' ** не принадлежит ** root. В этом весь смысл. Начиная с нуля, это не плохо в этом сценарии, потому что очевидно, что установка Homebrew уже была испорчена каким-то образом или чем-то. Другими словами, очень вероятно, что другие переменные (например, неуместные libs) находятся на месте, что приведет к дальнейшим болям в будущем. –

+1

Homebrew - это не единственное, что находится в/usr/local /, если вы должны были установить, например. MacTex, там будет больше, чем гигабайт пакетов TeXLife, и вы, конечно же, не захотите их повторно устанавливать только потому, что Homebrew не работает. Как бы ни звучала убеждающая идея Homebrews о собственном/usr/local, я предпочитаю обычный способ: доступным для всей системы приложениям принадлежит root. – Asmus

88

У меня была такая же проблема, и как раз установил его с этими 3 командами, грубо взятыми из Homebrew сценария установки:

sudo chgrp -R admin /usr/local 
sudo chmod -R g+rwx /usr/local 
sudo chmod -R o-w /usr/local 
+2

Помог мне, когда какая-то другая программа (InstantOn Airfoil) испортила разрешения.В дополнение к этому мне пришлось очистить git repo, живущие в '/ usr/local', запустив' cd/usr/local && git reset --hard && git clean -d -f' – snod

+1

спасибо, предупреждение не было ! – Vito