Wie behebt man das Gebräu nach dem OSX-Upgrade auf Yosemite?

Ich hatte ein Problem mit Homebrew. Ich habe auf Yosemite upgegradet. Nach dem Upgrade scheint Homebrew kaputt zu sein.

Ich würde jeden Brühbefehl ausführen und diesen Fehler erhalten

/usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory
/usr/local/bin/brew: line 26: /usr/local/Library/brew.rb: Undefined error: 0

Wie kann man es lösen?

Ich habe gerade von Mac OS X 10.8 auf 10.10 (Yosemite) aktualisiert und Homebrew funktioniert nach dem Upgrade einwandfrei. Entweder wurde dieses Problem behoben, oder mein Betriebssystem-Upgrade war anders als alle anderen, die hier gepostet haben.

Antworten (5)

Ich beschloss, dies nachzuschlagen und stellte fest, dass es ein Problem gibt . Das Problem ist geschlossen, aber es ist nicht möglich, es einfach auszuführen, brew updateda Sie immer noch denselben Fehler erhalten.

Hier ist also, was Sie tun müssen:

cd /usr/local/Library
git pull origin master

Falls Sie Änderungen im Verzeichnis (/usr/local/Library) haben, wird der Git-Pull einen Fehler ausgeben. In diesem Fall müssen Sie den Master-Zweig abrufen und zwangsweise als Master festlegen:

git fetch --all
git reset --hard origin/master

Dadurch wird Ihr Homebrew aktualisiert und Sie können Brew erneut verwenden.

Wenn Sie Homebrew als Nicht-Root-Benutzer installiert haben, müssen Sie cdanstelle /Users/yourusername/homebrew/Libraryvon /usr/local/Library.

Noch ein weiterer Grund, warum ich es liebe, einen Paketmanager zu haben, der auf Git basiert :)
Genau. Lieben Sie Software, die einfach von der Quelle läuft und durch Git-Pull aktualisiert werden kann
Aw Shucks, ich denke, wir sollten zum Microsoft Windows-Weg zurückkehren - und uns in den Strudel der Registrierung fallen lassen.
Seltsam, ich bekomme das fatal: Kein Git-Repository (oder eines der übergeordneten Verzeichnisse): .git
Das ist nicht richtig. Bist du sicher, dass der Pfad richtig ist?
Ich bekomme diesen Fehler:error: cannot open .git/FETCH_HEAD: Permission denied
Versuchensudo git pull origin master
@GabrielR. bekomme ich auch. Wie sind Sie damit zurechtgekommen?
Ein weiteres Problem, das behoben werden kann, indem Sie zu meiner örtlichen Bibliothek gehen. Danke!
Ich musste auch Git zurücksetzen: git reset --hard HEAD git clean -f -d git pull
Du bist der Mann!!!
Du bist der Ninja!!!
Wenn Sie eine alte Version von Brew haben, haben Sie möglicherweise bereits ein Git-Repo in /usr/local/Library. Bearbeiten Sie einfach brew.rb und ändern Sie "1.8" in "Current" in der ersten Zeile. Führen Sie dann einfach brew update erneut aus und es wird auf die neueste Version aktualisiert (das Git-Repo wird zu diesem Zeitpunkt erstellt).
Teilweise hat diese Lösung auch ein Problem nach dem Upgrade von Yosemite auf El Capitan behoben. Der Fehler: Could not restore untracked files from stash Error: Failure while executing: git stash pop --quiet. Machen Sie zuerst sudo chown -R $(whoami):admin /usr/localdiese Lösung und wenden Sie sie dann an.
Ich bin mir nicht sicher, ob noch jemand mit diesem Problem konfrontiert war, aber aus irgendeinem Grund befand sich das Git-Repository für Homebrew auf meinem System unter /Benutzer/Benutzername/Homebrew anstelle von /Benutzer/IhrBenutzername/Homebrew/Library (auch das Aktualisieren von brew.rb war eine schnelle Lösung auch).
Ich musste von /usr/local/Library eine Ebene höher gehen und auch geänderte Dateien entfernen: (Gefahr) git fetch origin master; git add --all . ; git reset --hard origin/master;Dann konnte ich die neuesten zusammenführen, wie Sie sagten: git pull origin master. Ich war besorgt darüber, dass sich das Git-Repo im Freigabeverzeichnis befindet. Aber ich denke, das ist der Grund, warum Homebrew gerne alle Ihre Installationen besitzt. Passen Sie auf, wenn Sie Sachen installiert haben, die nicht von Brew stammen.

Ich habe diese Lösung gefunden :

Dieser Link beschreibt es gut, aber falls der Link ausfällt, müssen Sie Folgendes tun: Geben Sie diese Befehle in Ihr Terminal ein:

cd /System/Library/Frameworks/Ruby.framework/Versions
sudo ln -s Current 1.8
brew update
sudo rm 1.8
Im Gegensatz zur akzeptierten Antwort hat dies tatsächlich funktioniert.
Dies ist das einzige, was bei mir am 10.10.3 funktioniert hat
Funktioniert auch für 10.10.4
Abbruchfehler: Fehler beim Ausführen von: git pull -q origin refs/heads/master:refs/remotes/origin/master
Das hat bei mir funktioniert, obwohl noch ein weiterer Schritt zu unternehmen war: stackoverflow.com/questions/26501126/…
@Elias Zamaria, nachdem ich die gleichen Schritte ausgeführt habe, erhalte ich diesen Fehler ln: 1.8: Vorgang erlaubt keine Idee

Version und Speicherort von Ruby haben sich mit der neuen Version von Mac OS X geändert.

Um dies allgemein zu beheben, bearbeiten Sie /usr/local/Library/brew.rb.

Ersetzen Sie in der ersten Zeile durch 1.8, Currentdh von:

#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -W0 

zu:

#!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0
Dies wird unterbrochen, brew updateda Sie jetzt über eine nicht festgeschriebene Änderung verfügen.
…aber dazu muss brew updateman den von mir vorgeschlagenen Fix anwenden . Ich habe brew updateihn bis jetzt nie benutzt, also hatte ich nicht einmal das Repo initialisiert. Kann mich nicht erinnern, wie ich es überhaupt installiert habe.

Wenn Sie das Ruby-Problem beheben und dann auf ein Problem stoßen, bei dem Ihnen mitgeteilt wird, dass das System denkt, dass Sie Tiger oder eine ältere Version ausführen, finden Sie hier die Lösung dafür

Ich habe zuerst die am besten bewertete Antwort versucht und bin dann auf ein anderes Problem gestoßen . Danach habe ich es irgendwie aufgegeben, es zu reparieren, da ich nur ein paar Pakete installiert hatte. Vielleicht sind andere auch in diesem Boot.

Obwohl dies alles hervorragende Antworten sind, war es für mich einfacher, Brew einfach neu zu installieren.

Zuerst habe ich die Anweisungen ausgeführt auf:

http://brew.sh/

was mich zur ersten Deinstallation verwies und eine Befehlszeile druckte. Ich habe diese Befehlszeile zum Deinstallieren ausgeführt, dann neu installiert, und alles war in Ordnung.

Ich möchte die spezifischen Befehle nicht drucken, da sie dazu neigen, sich ein wenig zu ändern, wenn das Gebräu die Installation der Dinge anpasst.