Я использую homebrew
в качестве менеджера пакетов для определенного приложения веб-разработки. Чтобы быть brew
в курсе, я бегаю update brew
каждые пару дней, а также бегаю brew doctor
. Обычно это нормально и brew
говорит мне, что я готов заваривать.
Время от времени, однако, я получаю следующую ошибку:
Предупреждение: / usr / local / etc не доступен для записи.
Это может произойти, если вы используете программу sudo make install, которой не управляет Homebrew. Если формула пытается записать файл в этот каталог, установка не удастся выполнить во время шага ссылки.
Вы должны вероятно
chown
/ usr / local / etcПредупреждение: каталог / usr / local недоступен для записи. Даже если этот каталог был доступен для записи при установке Homebrew, другое программное обеспечение может изменить разрешения для этого каталога. Известно, что некоторые версии компонента InstantOn Airfoil делают это.
Вероятно, вам следует изменить владельца и права доступа к / usr / local для вашей учетной записи пользователя.
Достаточно просто сбросить разрешения обратно на мое имя пользователя. После, brew
кажется, все в порядке.
Но что является причиной этого?
Есть ли журнал, который показывает, что вызывает изменение разрешений?
источник
/usr/local
. Но если вы настаиваете, то можетеmake install
использоватьsudo
пакеты, которые вы устанавливаете сами./usr/local
?Ответы:
У меня была точно такая же проблема, и оказалось, что виновато автоматическое обновление Sophos. Я понял это, запустив:
sudo fs_usage | grep "usr/local"
Это заняло некоторое время, но в конце концов я увидел, что демон Sophos по имени «Installation» портился с разрешениями / usr / local.
Я все еще пытаюсь найти подходящее решение для такого поведения.
РЕДАКТИРОВАТЬ: Я думаю, что Sophos исправил эту проблему, см. Ссылку в комментариях к этому ответу. Кажется, это исправлено для меня по крайней мере!
источник
Оказывается, Filewave является виновником. Filewave - это программное обеспечение для управления системой, используемое нашей школой для продвижения обновлений программного обеспечения. Спасибо за вклад.
источник
У меня есть только грубая идея, как получить разрешение вора. Это не решение вашей проблемы, а скорее своего рода обходной путь.
Как насчет написания сторожевого таймера в Automator или с помощью Hazel (действия с папками) для просмотра этой конкретной папки, но вместо добавления функции, такой как Scale images, вы просто используете скрипт-оболочку, который выполняет несколько команд оболочки:
fuser <foldername>
.ps auxwwwwww | grep <process id>
) и, наконец,К сожалению, я не Automator sadhu, но я узнал от Google, что есть множество решений для подобной проблемы.
источник
Если вы используете Time Machine, вы можете найти приблизительное время изменения разрешений, просматривая
Backups.backupdb
в Терминале. Использоватьls -ld
в папках с метками времени, напримерКоторый покажет информацию о владельце и группе.
Получив дату, когда произошло изменение, вы можете выяснить, что еще могло измениться в вашей системе. Простой способ - использовать Файл Finder ›Найти и добавить
Last modified date
критерий. Другие хорошие инструменты естьfind
иmdfind
в Терминале.источник
Это побочный эффект обновления вашей системы; OS X, вероятно, выполняет некоторые "общие" разрешения на "восстановление" в процессе обновления, так как / usr / local размещается в папке, принадлежащей корню.
источник
Использовали ли вы
Disk Utility
select,Macintosh HD
затем runVerify Disk Permission
и затем,Repair Disk Permission
если необходимо, вместо того, чтобы делать это вручную?Теперь это не должно исправить вашу проблему, но это хорошая «известная» отправная точка, чтобы увидеть, когда home-brew меняет разрешения. Это может показать основную проблему, если вам повезет.
Также
new update -v
для более подробного вывода, плюс старые журналы здесь~/Library/Logs/Homebrew
в соответствии с Где журнал доморощенного?источник
Disk Utility
не будет проверять или восстанавливать разрешения,/usr/local
так как этот каталог не существует в новой установке Yosemite./usr/local
принадлежность мне и запустив ееDU
. Там нет ничего/usr/local
вDU
журнале. И/usr/local
до сих пор принадлежит мне.