Я использую Homebrew для управления установкой пакетов на Lion (на самом деле Lion Server, но это не должно иметь значения) .
Homebrew был установлен под одним пользователем. Теперь другой пользователь хотел бы добавить пакет, и Homebrew не рад:
$ brew update
fatal: Unable to create '/usr/local/.git/index.lock': Permission denied
Error: Failure while executing: git checkout -q master
Это считается плохим? Я думал, что одним из преимуществ использования /usr/local/
ваших установок является то, что вам не нужно sudo
. Но ясно, что мы делаем.
Все пользователи, которым необходимо изменить Homebrew, являются членами группы администраторов . Так что я мог бы, chmod -R g+w /usr/local/
но боялся, что это что-то испортит или создаст проблемы безопасности?!?
Совет?
$ ls -al /usr/local/.git/
total 432
drwxr-xr-x 14 ladmin admin 476 Feb 24 11:48 .
drwxrwxr-x 14 root admin 476 Feb 9 15:27 ..
-rw-r--r-- 1 ladmin admin 94 Feb 24 11:48 FETCH_HEAD
-rw-r--r-- 1 ladmin admin 23 Feb 24 11:48 HEAD
-rw-r--r-- 1 ladmin admin 41 Feb 9 15:28 ORIG_HEAD
drwxr-xr-x 2 ladmin admin 68 Feb 9 15:27 branches
-rw-r--r-- 1 ladmin admin 218 Feb 9 15:27 config
-rw-r--r-- 1 ladmin admin 73 Feb 9 15:27 description
drwxr-xr-x 12 ladmin admin 408 Feb 9 15:27 hooks
-rw-r--r-- 1 ladmin admin 200272 Feb 24 11:48 index
drwxr-xr-x 3 ladmin admin 102 Feb 9 15:27 info
drwxr-xr-x 4 ladmin admin 136 Feb 9 15:27 logs
drwxr-xr-x 4 ladmin admin 136 Feb 9 15:27 objects
drwxr-xr-x 5 ladmin admin 170 Feb 9 15:27 refs
источник
brew doctor
до сих пор жалуется, что, например/usr/local/include
, не для записи, хотя я вручную могу проверить, что я могу записать в файл здесь (например, с помощьюecho "hello" > /usr/local/include/testfile
). Я являюсь членом группы администраторов. Есть идеи по отладке?chmod -R g+w /Library/Caches/Homebrew
sudo chown -R $(whoami) $(brew --prefix)/*
вместо команд выше. Получил это отсюдаВы можете включить доморощенные разрешения для более чем одного пользователя через группу администраторов или через любую другую группу пользователей. Вот немного расширенный рецепт для настройки этого:
Группа должна администрировать локальный каталог установки homebrew. Поэтому назначьте / usr / local для группы администраторов (или вашей предпочтительной группы) и включите права на запись группы:
Группе также нужны разрешения для локального кэша формул и исходных файлов homebrew по адресу / Library / Caches / Homebrew :
Если вы столкнетесь с подобными проблемами с разрешениями при использовании homebrew из нескольких учетных записей, обратите внимание на неправильный путь и попробуйте тот же подход.
Лейф Hanack имеет в блоге на подобное решение , в котором он создает и настраивает специальную группу пользователей отвар для этой цели.
- Обновление 2015-08-20
Недавно я снова использовал этот ответ, чтобы настроить гостевую учетную запись с доморощенным доступом. Чтобы использовать Cask со второй учетной записи администратора, мне также пришлось выполнить следующие команды:
источник
Я просто собирался прокомментировать принятый ответ (но пока не имею репутации).
Как пользователь Caskroom.io , я бы также рекомендовал добавить:
поскольку cask, чрезвычайно полезное расширение для homebrew, помещает все свои файлы в
/opt/homebrew-cask
источник
/opt
я думаю , вы имеете в виду/usr/local
? Как/opt
не существует в последних установках OS X, даже после установки homebrew./usr/local
(или, точнее,$(brew --prefix)
из),/opt/homebrew-cask
поэтому этот ответ теперь является спорным, но был действительным, когда он был написан. См. « Перемещение по умолчанию», местоположение в казной комнате № 21603Вам нужно дать разрешение на путь. запустите это в командной строке, и вы будете в порядке. Это сработало для меня:
sudo chown -R $ USER / usr / local
источник
Я бы проголосовал за установление разрешения группы - и мне кажется, что это именно то, для чего оно существует, и не должно создавать проблем с безопасностью.
источник
sudo chmod -R g+w /usr/local/
?