Acabo de actualizar de Snow Leopard a Lion y estoy tratando de instalar Homebrew. Sin embargo, después de la instalación, ejecuto brew doctor
las instrucciones de instalación y veo una serie de errores que indican que los directorios / usr / local no se pueden escribir. 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
Obtengo 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é aparece este error, ya que parece que soy parte del grupo 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$
¿Qué me estoy perdiendo?
/usr/local
debería pertenecer a mí en su lugar cuando la máquina tiene múltiples usuarios administradores. Además, es posible para mí escribir en las ubicaciones de las quebrew doctor
se queja. ¿Alguna otra idea?Respuestas:
EDITAR: El problema ahora está solucionado en Homebrew:
Si aún experimenta el problema, actualice Homebrew de esta manera:
Si desea saber cuál fue el problema, he mantenido mi respuesta original a continuación.
Ignora el problema de permisson por ahora
Estoy experimentando exactamente el mismo problema y, en mi opinión, el problema está en
brew doctor
lugar de su instalación y la mía.Creo que debería ignorar el problema en lugar de cambiar la propiedad de
/usr/local
. Alternativamente, puede corregir subrew doctor
script local hasta que se publique una solución. Vea abajo.No considero correcto hacer que sea
/usr/local
propiedad de un usuario específico. Tengo más de un usuario administrador en esta máquina. Debe dejar/usr/local
propiedad deroot:admin
como propietario y grupo.Mi investigacion
Al igual que para ti, tengo un
/usr/local
usuario que puede escribir perfectamente y que también es miembro deladmin
grupo:Probemos que el directorio es realmente grabable:
La investigación adicional sobre el
brew doctor
código me llevó a la conclusión de que el uso de la función rubyPathname.writable?
está causando el problema. Considere esta sesión interactiva de Ruby:La función
Pathname.writable?
dice/usr/local
que no se puede escribir aunque sepamos que sí.En su
Pathname.writable_real?
lugar, el uso da el resultado correcto: dice que el directorio se puede escribir:Esto debería arreglarse
/usr/local/Library/Homebrew/cmd/doctor.rb
. Puede arreglarlo en su propia instalación mientras espera una solución.La diferencia entre las dos funciones es (según los documentos de Ruby aquí y aquí ):
escribible? (nombre_archivo) → verdadero o falso: Devuelve verdadero si el archivo nombrado es editable por la identificación de usuario efectiva de este proceso.
writable_real? (nombre_archivo) → verdadero o falso: Devuelve verdadero si el archivo nombrado es editable por el ID de usuario real de este proceso.
fuente
writable_real?
... ¿tal vez es hora de una solicitud de extracción? :-)Creo que solo necesitas esto:
brew update
Luego intente
brew doctor
nuevamente.Es posible que aún reciba errores sobre cualquier dependencia que no esté utilizando (Java en mi caso), lo cual está bien. Si tiene instaladas las Herramientas de línea de comandos para Xcode en lugar de la instalación completa de Xcode, también recibirá un mensaje de error que dice que tiene una ruta no válida, pero justo en el mensaje también leerá que no hay una ruta válida si simplemente usando las Herramientas de línea de comandos para Xcode, así que también está bien.
Para el beneficio de otros: tenga en cuenta que debe iniciar sesión como administrador al hacer esto para que funcione.
fuente
Seguí una combinación de las sugerencias de iolsmit y Phil M: elegí estos directorios a mi nombre de usuario, luego corrí
brew update
nuevamente seguido debrew doctor
. Esto eliminó todos los mensajes de error y las instalaciones de preparación ahora parecen funcionar bien. ¡Gracias a los dos!fuente
Pulgares para arriba para la investigación y aclaración de @mgd ... ¡es perfecto!
Parece que se planteó un problema similar en github.com hace aproximadamente un año, pero nunca se resolvió (¿correctamente?) , Al menos no mediante el uso
writable_real?
... ¿tal vez es hora de una solicitud de extracción? :-)fuente