¿Cómo puedo hacer que Homebrew funcione con Mavericks?

Había estado haciendo la mayor parte de mi desarrollo POSIX en algo que no era mi Mac después de actualizar de Mountain Lion a Mavericks, y cuando regresé, Homebrew no funcionaba a un nivel de prueba de humo. Todas las llamadas parecían tener una reacción alérgica a los caracteres utilizados para identificar si un archivo era un tar.gz:

bash-3.2# brew install git
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require': /usr/local/Library/Homebrew/extend/pathname.rb:262: invalid multibyte escape: /^\037\213/ (SyntaxError)
invalid multibyte escape: /^\037\235/
invalid multibyte escape: /^\xFD7zXZ\x00/
    from     /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
    from /usr/local/Library/Homebrew/global.rb:1:in `<top (required)>'
    from     /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
    from     /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
    from /usr/local/bin/brew:10:in `<main>'

Busqué el error y encontré a alguien haciendo una pregunta similar en copyquery.com; Reinstalé las herramientas de línea de comandos de OS X y luego intenté hacer una reinstalación limpia de Homebrew. Eso también falló:

...
==> Downloading and installing Homebrew...
remote: Counting objects: 162348, done.
remote: Compressing objects: 100% (45938/45938), done.
remote: Total 162348 (delta 115308), reused 162338 (delta 115300)
Receiving objects: 100% (162348/162348), 30.36 MiB | 3.31 MiB/s, done.
Resolving deltas: 100% (115308/115308), done.
From https://github.com/Homebrew/homebrew
 * [new branch]      master     -> origin/master
error: unable to unlink old 'Library/Homebrew/test/mach/a.out' (Permission denied)
error: git checkout-index: unable to create file Library/Homebrew/test/mach/fat.bundle (Permission denied)
error: unable to unlink old 'Library/Homebrew/test/mach/fat.dylib' (Permission denied)
error: git checkout-index: unable to create file Library/Homebrew/test/mach/i386.bundle (Permission denied)
error: unable to unlink old 'Library/Homebrew/test/mach/i386.dylib' (Permission denied)
error: git checkout-index: unable to create file Library/Homebrew/test/mach/x86_64.bundle (Permission denied)
error: unable to unlink old 'Library/Homebrew/test/mach/x86_64.dylib' (Permission denied)
Checking out files: 100% (3131/3131), done.
fatal: Could not reset index file to revision 'origin/master'.
Failed during: git reset --hard origin/master

Y Homebrew no quiere instalarse como root; se rescatará si está instalado como root.ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

Pregunté una vez antes si las cosas estaban tan mal como pensaba después de que el proyecto MacPorts mordiera sistemáticamente más de lo que podía masticar y se rompiera (como Gentoo, pero generalmente puede buscar mensajes de error y encontrar una solución de la comunidad Gentoo a las pocas horas de algo rompiéndose, ¡no así con lo que MacPorts estaba masticando! ). Me dijeron que la única razón por la que no era peor era que MacPorts, etc. estaban disponibles y ofrecían una mejor alternativa.

En este momento tengo una Mac con OS X 10.9 Mavericks, herramientas de línea de comandos instaladas y VMware Fusion con varias máquinas virtuales Linux limpias disponibles. Si quiero piratear Unixy (hacer funcionar el tutorial de AngularJS y luego modificar y piratear un juego en su lugar), ¿cuáles son mis opciones en vivo para un entorno de desarrollo que vale la pena considerar seriamente? Estaré triste si no puedo usar Mac OS X como el Unix de un hacker, pero si el camino crítico hacia la cordura del desarrollador incluye algo que no se ejecuta bajo Mavericks, estoy dispuesto a tragarme la ironía y trabajar con un Linux. ambiente.

Esto puede ser una pregunta subjetiva, pero dado Mavericks más cualquier Linux que quiera, ¿cuáles son mis opciones serias para jugar con un proyecto de software?

Gracias,

--

Cuando ejecuté "brew doctor", obtuve:

Warning: An outdated version of Git was detected in your PATH.
Git 1.7.10 or newer is required to perform checkouts over HTTPS from GitHub.
Please upgrade: brew upgrade git

  ^C

Inner Sanctum ~ $ brew upgrade git
Warning: It appears you have MacPorts or Fink installed.
Software installed with other package managers causes known problems for
Homebrew. If a formula fails to build, uninstall MacPorts/Fink and try again.
Error: git not installed

¿Sería útil instalar Git a través de un instalador nativo?

--EDITAR--

Intenté desinstalar Homebrew por completo siguiendo las instrucciones y volver a instalarlo, pero sale un error:

Inner Sanctum ~ $ rm -rf /usr/local/Cellar /usr/local/.git && brew cleanup

Inner Sanctum ~ $ sudo /usr/local/bin/uninstall-homebrew.sh 
brew update first!

Inner Sanctum ~ $ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
==> This script will install:
/usr/local/bin/brew
/usr/local/Library/...
/usr/local/share/man/man1/brew.1

Press RETURN to continue or any other key to abort
==> /usr/bin/sudo /bin/chmod g+rwx /Library/Caches/Homebrew
==> Downloading and installing Homebrew...
remote: Counting objects: 162492, done.
remote: Compressing objects: 100% (45968/45968), done.
remote: Total 162492 (delta 115424), reused 162478 (delta 115414)
Receiving objects: 100% (162492/162492), 30.32 MiB | 736.00 KiB/s, done.
Resolving deltas: 100% (115424/115424), done.
From https://github.com/Homebrew/homebrew
 * [new branch]      master     -> origin/master
error: unable to unlink old 'Library/Homebrew/test/mach/a.out' (Permission denied)
error: unable to create file Library/Homebrew/test/mach/fat.bundle (Permission denied)
error: unable to unlink old 'Library/Homebrew/test/mach/fat.dylib' (Permission denied)
error: unable to create file Library/Homebrew/test/mach/i386.bundle (Permission denied)
error: unable to unlink old 'Library/Homebrew/test/mach/i386.dylib' (Permission denied)
error: unable to create file Library/Homebrew/test/mach/x86_64.bundle (Permission denied)
error: unable to unlink old 'Library/Homebrew/test/mach/x86_64.dylib' (Permission denied)
Checking out files: 100% (3132/3132), done.
fatal: Could not reset index file to revision 'origin/master'.
Failed during: git reset --hard origin/master

Probé un par de variantes, y para todo menos una ejecución, probé el intento de instalar brew y obtuve errores como el error de permiso denegado anterior. Actualmente he hecho find / -name Homebrew, y eliminé todo, y ejecuté el comando curl, etc. desde /, en caso de que funcione mejor para que Library sea de hecho /Library. Ahora funcionó. No estoy seguro de qué cambio funcionó. ¿Qué cambio hizo que funcionara?

"¿Qué cambio hizo que funcionara?". La respuesta está dentro de tu pregunta. Tuviste errores relacionados con permisos incorrectos en /usr/local/Library/Homebrew/.... Luego eliminó esa carpeta por find"arreglar" los errores. Deberías aceptar la impresionante respuesta del Sr. Ghoppe.

Respuestas (2)

Veo algunos problemas de lo que publicaste.

error: no se puede desvincular la antigua 'Library/Homebrew/test/mach/a.out' (Permiso denegado)

Me parece que tiene un problema de permisos tal vez de la instalación anterior sobrante de Homebrew. Debe eliminar todos los rastros de la instalación anterior antes de volver a instalar.

Y Homebrew no quiere instalarse como root

¿Por qué demonios querrías instalar homebrew como root? El objetivo del proyecto es mantener homebrew /usr/localpara que no necesite sudo .

Advertencia: parece que tiene instalado MacPorts o Fink. El software instalado con otros administradores de paquetes causa problemas conocidos para Homebrew.

También debe asegurarse de que MacPorts esté desinstalado y que haya desinstalado Fink . Podrían causar problemas con el software instalado por homebrew.

Advertencia: se detectó una versión desactualizada de Git en su RUTA. Se requiere Git 1.7.10 o posterior para realizar pagos a través de HTTPS desde GitHub.

Esto me indica que todavía tiene una versión anterior de Git en su RUTA, probablemente instalada con otro administrador de paquetes. OS X Mavericks viene con Git versión 1.8.5.1

¿ Cuál es el resultado del whereis gitcomando desde la Terminal? usr/bin/gites la instalación OS X de Git.

Siga las guías para eliminar completamente las instalaciones anteriores de MacPorts o Fink y asegúrese de que los directorios antiguos se eliminen de su variable PATH.

PD.

Estaré triste si no puedo usar Mac OS X como el Unix de un hacker

Eso también me entristecería. :(

Encuentro homebrew invaluable y fácil de trabajar. En resumen, parece que solo tiene un software antiguo instalado (y quizás directorios extraños en su RUTA) y necesita borrarlo, verificar sus permisos y reinstalar homebrew desde cero.

Para eliminar todos los rastros, considere este script más nuevo (al que se hace referencia en el enlace "oficial" allí): gist.github.com/SteveBenner/11254428

Recomendaría comenzar desde

brew doctor

que debería señalarle problemas potenciales y decirle cómo abordarlos.

La pregunta hace esto y muestra el resultado: ¿qué opciones diferentes debería haber hecho?
@Mark op lo hizo después del consejo, editó la pregunta y eso dio lugar a la formidable respuesta de ghoppe. Este fue un consejo muy válido, incluso si no se actualizó adecuadamente en respuesta. Recibió un mal voto negativo allí por quien sea.