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?
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/local
damit 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 git
Befehls vom Terminal? usr/bin/git
ist 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.
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.
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.
Cregox
/usr/local/Library/Homebrew/...
. Dann haben Sie diesen Ordner gelöscht, umfind
die Fehler zu "reparieren". Sie sollten die großartige Antwort von Herrn Ghoppe akzeptieren.