Wie kann ich Homebrew unter Mavericks zum Laufen bringen?

Ich hatte nach dem Upgrade von Mountain Lion auf Mavericks den größten Teil meiner POSIX-Entwicklung auf etwas anderem als meinem Mac durchgeführt, und als ich zurückkam, funktionierte Homebrew nicht auf Rauchtestniveau. Alle Aufrufe schienen allergisch auf Zeichen zu reagieren, die verwendet wurden, um zu identifizieren, ob eine Datei eine tar.gz war:

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>'

Ich habe nach dem Fehler gesucht und jemanden gefunden, der eine ähnliche Frage auf copyquery.com gestellt hat; Ich habe die OS X-Befehlszeilentools neu installiert und dann versucht, eine saubere Neuinstallation von Homebrew durchzuführen. Auch das ist gescheitert:

...
==> 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

Und Homebrew will nicht als root installiert werden; es stürzt ab, wenn es als root installiert ist.ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

Ich habe schon einmal gefragt, ob die Dinge so schlimm sind, wie ich dachte, nachdem das MacPorts-Projekt systematisch mehr abgebissen hat, als es kauen konnte, und kaputt gegangen ist (wie Gentoo, aber Sie können normalerweise innerhalb von Stunden nach Fehlermeldungen suchen und eine Gentoo-Community-Lösung finden). brechen - nicht so mit dem, was MacPorts kaute! ). Mir wurde gesagt, dass der einzige Grund, warum es nicht schlechter war, darin bestand, dass MacPorts usw. verfügbar waren und eine bessere Alternative darstellten.

Im Moment habe ich einen Mac mit OS X 10.9 Mavericks, installierten Befehlszeilentools und VMware Fusion mit mehreren verfügbaren sauberen virtuellen Linux-Maschinen. Wenn ich Unixy-Hacking machen möchte ( das AngularJS-Tutorial zum Laufen bringen und dann ein Spiel basteln und hacken möchte), was sind meine Live-Optionen für eine ernsthaft in Betracht zu ziehende Entwicklungsumgebung? Ich wäre traurig, wenn ich Mac OS X nicht als Hacker-Unix verwenden kann, aber wenn der kritische Weg zur geistigen Gesundheit eines Entwicklers etwas beinhaltet, das nicht unter Mavericks läuft, bin ich bereit, die Ironie zu schlucken und mit einem Linux zu arbeiten Umfeld.

Dies mag eine subjektive Frage sein, aber angesichts von Mavericks plus beliebigem Linux, was sind meine ernsthaften Optionen, um an einem Softwareprojekt herumzubasteln?

Danke,

--

Als ich "Braudoktor" ausführte, bekam ich:

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

Würde es helfen, Git über ein natives Installationsprogramm zu installieren?

--BEARBEITEN--

Ich habe versucht, Homebrew gemäß den Anweisungen vollständig zu deinstallieren und neu zu installieren, aber es tritt ein Fehler auf:

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

Ich habe ein paar Varianten ausprobiert, und für alles außer einem Versuch habe ich versucht, brew zu installieren, was zu Fehlern wie dem oben genannten Fehler "Berechtigung verweigert" führt. Ich habe derzeit find / -name Homebrew durchgeführt und alles gelöscht und den Befehl curl etc. von / ausgeführt, falls es besser funktioniert, wenn die Bibliothek tatsächlich /Library ist. Jetzt hat es funktioniert. Ich bin mir nicht sicher, welche Änderung funktioniert hat. Welche Änderung hat es zum Laufen gebracht?

"Welche Änderung hat dazu geführt, dass es funktioniert?". Die Antwort liegt in Ihrer Frage. Sie hatten Fehler im Zusammenhang mit ungültigen Berechtigungen bei /usr/local/Library/Homebrew/.... Dann haben Sie diesen Ordner gelöscht, um finddie Fehler zu "reparieren". Sie sollten die großartige Antwort von Herrn Ghoppe akzeptieren.

Antworten (2)

Ich sehe ein paar Probleme aus dem, was Sie gepostet haben.

Fehler: altes 'Library/Homebrew/test/mach/a.out' kann nicht entfernt werden (Zugriff verweigert)

Es scheint mir, dass Sie ein Berechtigungsproblem haben, vielleicht von der übrig gebliebenen vorherigen Installation von Homebrew. Sie sollten alle Spuren der vorherigen Installation entfernen, bevor Sie neu installieren.

Und Homebrew will nicht als root installiert werden

Warum um alles in der Welt willst du Homebrew als Root installieren? Der ganze Sinn des Projekts besteht darin, Homebrew beizubehalten, /usr/localdamit Sie sudo nicht benötigen .

Warnung: Anscheinend haben Sie MacPorts oder Fink installiert. Mit anderen Paketmanagern installierte Software verursacht bekannte Probleme für Homebrew.

Sie sollten auch sicherstellen, dass MacPorts deinstalliert ist und dass Sie Fink deinstalliert haben . Sie könnten Probleme mit von Homebrew installierter Software verursachen.

Warnung: In Ihrem PATH wurde eine veraltete Version von Git erkannt. Git 1.7.10 oder neuer ist erforderlich, um Checkouts über HTTPS von GitHub durchzuführen.

Dies deutet für mich darauf hin, dass Sie in Ihrem PATH noch eine alte Version von Git haben, die wahrscheinlich mit einem anderen Paketmanager installiert wurde. OS X Mavericks wird mit der Git-Version 1.8.5.1 ausgeliefert

Was ist das Ergebnis des whereis gitBefehls vom Terminal? usr/bin/gitist die OS X-Installation von Git.

Befolgen Sie die Anleitungen, um frühere MacPorts- oder Fink-Installationen vollständig zu entfernen und sicherzustellen, dass die alten Verzeichnisse aus Ihrer PATH-Variablen entfernt werden.

PS.

Ich werde traurig sein, wenn ich Mac OS X nicht als Hacker-Unix verwenden kann

Das würde mich auch traurig machen. :(

Ich finde Homebrew von unschätzbarem Wert und einfach zu handhaben. Zusammenfassend scheint es, dass Sie nur alte Software installiert haben (und vielleicht fremde Verzeichnisse in Ihrem PATH) und diese löschen, Ihre Berechtigungen überprüfen und Homebrew von Grund auf neu installieren müssen.

Betrachten Sie zum Entfernen aller Spuren dieses neuere Skript (auf das dort über den "offiziellen" Link verwiesen wird): gist.github.com/SteveBenner/11254428

Ich würde empfehlen, von zu beginnen

brew doctor

die Sie auf potenzielle Probleme hinweisen und Ihnen sagen soll, wie Sie diese lösen können.

Die Frage tut dies und zeigt die Ausgabe - welche verschiedenen Optionen hätte er tun sollen?
@Mark op hat es nach dem Rat gemacht, die Frage bearbeitet und das ergab die sehr beeindruckende Antwort von ghoppe. Dies war ein sehr gültiger Ratschlag, auch wenn er als Antwort nicht richtig aktualisiert wurde. Es wurde dort von wem auch immer schlecht abgelehnt.