Estoy usando Homebrew para administrar las instalaciones de paquetes en Lion (Lion Server en realidad, pero esto no debería importar) .
Homebrew se instaló bajo un usuario. Ahora a un usuario diferente le gustaría agregar un paquete y Homebrew no está contento:
$ brew update
fatal: Unable to create '/usr/local/.git/index.lock': Permission denied
Error: Failure while executing: git checkout -q master
¿Se considera esto malo? Pensé que una de las ventajas de usar /usr/local/
para sus instalaciones era que no necesita sudo
. Pero claramente lo hacemos.
Todos los usuarios que tendrían que modificar Homebrew son miembros del grupo de administración . Entonces, ¿podría chmod -R g+w /usr/local/
temer que esto moleste algo o cree problemas de seguridad?
¿Consejo?
$ 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
fuente
brew doctor
todavía se queja de que, por ejemplo,/usr/local/include
no se puede escribir a pesar de que manualmente puedo verificar que puedo escribir en un archivo aquí (por ejemplo, usandoecho "hello" > /usr/local/include/testfile
). Soy miembro del grupo de administración. ¿Alguna idea para depurar?chmod -R g+w /Library/Caches/Homebrew
sudo chown -R $(whoami) $(brew --prefix)/*
lugar de los comandos anteriores. Lo tengo desde aquíPuede habilitar los permisos de homebrew para más de un usuario a través del grupo de administración o de cualquier otro grupo de usuarios. Aquí hay una receta ligeramente ampliada para configurar esto:
El grupo necesita administrar el directorio local de instalación de homebrew. Asigne / usr / local al grupo de administración (o su grupo preferido) y habilite los permisos de escritura grupal:
El grupo también necesita permisos para el caché local de fórmulas y archivos fuente de homebrew en / Library / Caches / Homebrew :
Si tiene más problemas de permisos similares mientras usa homebrew de varias cuentas, tenga en cuenta la ruta ofensiva y considere intentar el mismo enfoque.
Leif Hanack ha publicado en el blog una solución similar , donde crea y configura un brebaje de grupo de usuarios dedicado para tal fin.
- Actualización 2015-08-20
Recientemente utilicé esta respuesta nuevamente para configurar una cuenta de invitado con acceso homebrew. Para usar Cask desde la segunda cuenta de administrador, también tuve que ejecutar los siguientes comandos:
fuente
Solo iba a comentar la respuesta aceptada (pero todavía no tengo la reputación de eso).
Como usuario de Caskroom.io , también recomendaría agregar:
dado que cask, una extensión extremadamente útil para homebrew, pone todos sus archivos en
/opt/homebrew-cask
fuente
/opt
que supongo que quieres decir/usr/local
? Como/opt
no existe en las instalaciones recientes de OS X, incluso después de una instalación homebrew./usr/local
(o más exactamente$(brew --prefix)
), por/opt/homebrew-cask
lo que esta respuesta ahora es discutible, pero era válida cuando se escribió. Consulte Mover la ubicación predeterminada del caskroom # 21603Necesitas dar permiso a la ruta. ejecute esto en la línea de comando y estará bien para ir. A mí me funcionó:
sudo chown -R $ USUARIO / usr / local
fuente
Yo votaría por establecer el permiso de grupo, y para mí parece que eso es justo para lo que está allí y no debería crear un problema de seguridad.
fuente
sudo chmod -R g+w /usr/local/
?