9 votos

Cómo resolver los permisos errores en OS X Lion después de instalar Homebrew

Acabo de actualizar desde Snow Leopard a Lion y estoy tratando de sacar Homebrew instalado. Sin embargo, después de la instalación, ejecute brew doctor por las instrucciones de instalación, y ver una serie de errores que indican que el directorio /usr/local directorios no son modificables. Por ejemplo:

Error: /usr/local/share isn't writable.
This can happen if you "sudo make install" software that isn't managed
by Homebrew.

If a brew tries to write a file to this directory, the install will
fail during the link step.

You should probably `chown` /usr/local/share

Tengo estos para un montón de directorios:

You should probably `chown` /usr/local/include

You should probably `chown` /usr/local/share

You should probably `chown` /usr/local/share/man

No puedo entender por qué este error viene, como parece que yo soy parte de el grupo de Unix que tiene permisos de escritura en estos directorios:

Mini:~ felciano$ ls -ld /usr/local/share
drwxrwxr-x  4 root  admin  136 May 13 15:53 /usr/local/share
Mini:~ felciano$ whoami
felciano
Mini:~ felciano$ dscl . -read /Groups/admin GroupMembership
GroupMembership: root felciano
Mini:~ felciano$

Lo que me estoy perdiendo?

7voto

Ron Warholic Puntos 7479

EDIT: El problema es que ahora se fija en el Homebrew:

Si sigue experimentando el problema, la actualización de Homebrew como este:

brew update

Si desea saber cuál era el problema, he cumplido con mi respuesta original a continuación.


Ignorar la permisson problema por ahora

Estoy experimentando el mismo problema y en mi opinión el problema está en brew doctor más que en el y mi instalación.

Creo que usted debe ignorar el problema, en lugar de cambiar la propiedad de la /usr/local. Alternativamente, usted podría arreglar su local brew doctor script hasta que se publique una solución. Ver a continuación.

Yo no lo considero correcto hacer /usr/local de propiedad de un usuario específico. Puedo tener más de un usuario administrador en este equipo. Usted debe dejar a /usr/local propiedad root:admin como propietario y grupo.

Mi investigación

Para ti tengo un /usr/local que es perfectamente modificable por mi usuario que es también un miembro de la admin grupo:

$ ls -ld /usr/local/
drwxrwxr-x  14 root  admin  476 22 Jun 23:33 /usr/local/
$ whoami
mgd
$ dscl . -read /Groups/admin GroupMembership
GroupMembership: root mgd rgd

Vamos a probar que la dir es realmente escritura:

$ ls -l /usr/local/newfile
ls: /usr/local/newfile: No such file or directory
$ touch /usr/local/newfile
$ ls -l /usr/local/newfile
-rw-r--r--  1 mgd  admin  0 23 Jun 14:52 /usr/local/newfile

La investigación adicional en el brew doctorcódigo llevó a mi a la conclusión de que el uso de la ruby función Pathname.writable? está causando el problema. Considere la posibilidad de esta interactivo de Ruby sesión:

$ irb
>> require 'pathname'
=> true
>> Pathname('/usr/local').writable?
=> false

La función Pathname.writable? dice /usr/local no tiene permisos de escritura, aun cuando sabemos que es.

El uso de Pathname.writable_real? cambio da el resultado correcto – se dice que el dir se puede escribir:

>> Pathname('/usr/local').writable_real?
=> true

Esto debe ser corregido en /usr/local/Library/Homebrew/cmd/doctor.rb. Se puede fijar en su propia instalación, mientras que a la espera de una solución.

La diferencia entre las dos funciones son (de acuerdo con el Rubí docs aquí y aquí):

escritura?(file_name) → true o false: Devuelve true si el nombre de fichero es modificable por el identificador de usuario efectivo de este proceso.

writable_real?(file_name) → true o false: Devuelve true si el nombre de fichero es modificable por el real id de usuario de este proceso.

0voto

Chris Puntos 1

Creo que solo necesitas esto:

brew update

A continuación, intente brew doctor de nuevo.

Usted todavía podría tener errores acerca de las dependencias de que no estás usando (Java, en mi caso), lo cual está bien. Si usted tiene las Herramientas de Línea de Comandos para Xcode instalado en lugar de la completa instalación de Xcode usted también recibirá un mensaje de error diciendo que usted tiene una ruta no válida, pero a la derecha en el mensaje que será leído también que no hay ninguna ruta de acceso válida si se están utilizando las Herramientas de Línea de Comandos para Xcode, así que está bien así.

Para el beneficio de los demás: tenga en cuenta que debe haber iniciado la sesión como administrador cuando se hace esto para que funcione.

0voto

Ramon Puntos 46

He seguido una combinación de iolsmit y Phil M sugerencias: yo chowned estos directorios a mi nombre de usuario, luego corrió brew update de nuevo seguido por brew doctor. Este se deshizo de todos los mensajes de error y preparar las instalaciones de ahora parecen funcionar muy bien. Gracias a los dos!

0voto

SuperRoach Puntos 149

Pulgares arriba para @mgd la investigación y aclaración... es en el clavo!

Parece que un problema similar se planteó en github.com hace aproximadamente un año, pero nunca fue (?) resuelto, al menos no por el uso de writable_real? ... tal vez es hora de hacer un pull request?!? :-)

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X