Доморощенный не будет связывать Git

11

Когда я установил git или обновил git через него, brewя не смог связать его brew link git. Если я попытаюсь, sudo brew link gitя получу:

трусливый отказ судо заварить ссылку

Это говорит о том, что я должен проверить разрешения на:

/usr/local/share/gitk/lib
/usr/local/share/git-gui/lib
/usr/local/share/git-core/templates
/usr/local/share/git-core/templates/hooks
/usr/local/share/git-core

Я chmodотредактировал все до 777, но я не уверен, что это хорошо.

Теперь я могу связать Git. Должен ли я изменить разрешение на что-то менее разрешительное?

Янник Шалл
источник

Ответы:

5

Разрешения 777 здесь не обязательно плохие - вы, вероятно, никогда не столкнетесь с проблемами с разрешениями, и я бы сказал, что это не серьезная проблема безопасности.

В любом случае, «нормальные» разрешения для /usr/local/shareэтого Homebrew должны быть (рекурсивно) 755, таким образом rwxr-xr-x.

chmod -R 755 /usr/local/share

По крайней мере, brewне нужно разрешение sudo, чтобы что-то там делать. Только /usr/localпринадлежит root, но доступен для записи для staffгруппы, в которой должен быть ваш пользователь.

Чтобы исправить существующие установки Homebrew, ознакомьтесь с этой сущностью , которая представляет собой скрипт, который попытается исправить ваши /usr/localразрешения.


Например, вот список каталогов одной из моих (нормальных) установок Homebrew ghostscript, за исключением единственного исключения, которое требовало sudo brew link:

aeneas:local werner$ ls -la /usr/local/share/
total 40
drwxr-xr-x  11 werner  staff  374 Mar  5 14:53 .
drwxrwxr-x  14 werner  staff  476 Feb 28 12:51 ..
drwxr-xr-x   6 werner  staff  204 Mar  5 14:54 aclocal
drwxr-xr-x   8 werner  staff  272 Mar  5 14:53 doc
lrwxr-xr-x   1 werner  staff   34 Feb  8 12:26 ffmpeg -> ../Cellar/ffmpeg/0.10/share/ffmpeg
drwxr-xr-x   4 werner  wheel  136 Apr 16  2010 ghostscript
lrwxr-xr-x   1 werner  staff   36 Mar  5 14:53 git-core -> ../Cellar/git/1.7.9.2/share/git-core
lrwxr-xr-x   1 werner  staff   35 Mar  5 14:53 git-gui -> ../Cellar/git/1.7.9.2/share/git-gui
lrwxr-xr-x   1 werner  staff   32 Mar  5 14:53 gitk -> ../Cellar/git/1.7.9.2/share/gitk
lrwxr-xr-x   1 werner  staff   34 Mar  5 14:53 gitweb -> ../Cellar/git/1.7.9.2/share/gitweb
drwxr-xr-x   9 werner  staff  306 Mar  5 14:53 man
slhck
источник
Для дополнительных шагов диагностики, запустите brew doctor.
slhck
К сожалению, доктор Brew не дает никакой полезной информации в этом случае. Упомянутая сущность исправила подобную проблему для меня, спасибо :)
TheDeadSerious
как только я установил brew, мне больше не нужно было использовать sudo для чего-либо. Возможно, в какой-то момент у вас есть что-то, чего у вас не должно быть, если у вас нет разрешений или прав собственности?
Дстар
@dstarh Это обычно проблема. В эти дни Homebrew не должен ничего делать, когда sudoиспользуется.
slhck
Почему Homebrew не позволяет нам использовать sudo? Мы продолжаем возиться с нашими разрешениями, чтобы связать вещи, когда это должно просто позволить нам, sudo brew link [package]как это делает apt-get. Я просто копирую библиотеки из подвала каждый раз, когда хочу что-то обновить, а не пытаться с этим справиться.
Судо
0

Я еще не пробовал суть, но попытался chmod 775на папку. Поскольку это принадлежит root:wheelему, не может быть изменено. Я ссылался на японский сайт.

sudo chown yourusername:admin -R /usr/local/share/ghostscript
brew link ghostscript
brew doctor

тогда это работает для меня выше.

Джимми М.Г. Лим
источник