Warum funktioniert meine Brühinstallation nicht?

Ich habe zuvor Brew installiert, aber es funktioniert jetzt nicht.

Wenn ich laufe brew, gibt es mir den Fehler-bash: brew: command not found

Also habe ich versucht, mit dem Code neu zu installieren

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Aber es gibt mir einen anderen:

Es scheint, dass Homebrew bereits installiert ist. Wenn Sie beabsichtigen, neu zu installieren, sollten Sie Folgendes tun, bevor Sie dieses Installationsprogramm erneut ausführen: rm -rf /usr/local/Cellar /usr/local/.git && brew cleanup

Wenn ich den Befehl verwende rm -rf /usr/local/Cellar /usr/local/.git && brew cleanup, gibt er den ersten Fehler zurück:-bash: brew: command not found

Was sollte ich jetzt tun?

Antworten (13)

Ich hatte das gleiche Problem – habe Brew installiert, benutzt, aber jetzt funktioniert es nicht, dh brewBefehl wird nicht mehr erkannt .

Der Kontext meines brew-nicht-mehr-erkannt-Problems ist etwas spezifischer: Ich verwende iTerm anstelle von Terminal, ich habe brew auf die übliche Weise am Standardort installiert, ich habe brew verwendet, um zsh zu installieren, und oh mein Gott . zsh , und an diesem Punkt funktionierte der Brew-Befehl nicht mehr.

Ich war nicht in der Lage, die Lösung für meine Teilmenge des Problems, dass das Gebräu nicht mehr erkannt wird, nirgendwo zu finden, also poste ich die Lösung für den Fall, dass jemand anderes diese Art von Problem hat, dass das Gebräu nicht mehr erkannt wird.

Das Hinzufügen zu meiner .zshrcLösung löste das Problem auf einem Computer mit Apple M1-CPU:

eval $(/opt/homebrew/bin/brew shellenv)

Beachten Sie, dass dies nicht dasselbe ist wie das Hinzufügen zur PATH-Variablen. Der Brühbefehl befindet sich tatsächlich an den Standardspeicherorten, die in anderen Lösungen aufgeführt sind. Es stellte sich heraus, dass es sich nicht um eine PATH-Variable handelte, die diese Teilmenge des Problems, dass das Gebräu nicht mehr erkannt wurde, verursachte.

Ich weiß nicht, ob es jedes Mal ausgeführt werden muss, wenn ich mein Terminal lade, aber dies ist der Befehl, den brew nach der Installation ausgeführt hat (direkt nach einem anderen Befehl), und der mein Problem behoben hat.
Ich verwende Apple Mac M1 Pro CPU. Das hat bei mir funktioniert. Danke
Ich hatte genau das gleiche Problem wie Matt, Brew wurde nach der Installation von oh-my-zsh nicht mehr erkannt. Die obige Lösung funktioniert, aber ich muss diesen Befehl jedes Mal ausführen, wenn ich das Terminal öffne. Gibt es eine Möglichkeit, es dauerhaft zu machen?
@cholo14 open -a textedit ~/.zshrcund fügen Sie den Befehl in einer eigenen Zeile oben in der Datei hinzu und speichern Sie die Datei. Wenn die Datei nicht existiert, erstellen Sie sie, indem Sie sie ausführentouch ~/.zshrc
Kann bestätigen, dass > eval "$(homebrew/bin/brew shellenv)" ausreicht, um mein Gebräu wieder zum Laufen zu bringen. Danke, dass du mich in die richtige Richtung weist!
Für diejenigen, die fishdas gleiche Snippet hinzufügen, damit .config/fish/config.fishes auf einem M1-Mac funktioniert fish. Danke für die Lösung 🙏
Denken Sie daran, dass Sie möglicherweise Ihr Terminalfenster erneut öffnen müssen, damit Änderungen am Pfad oder Änderungen, die von eval "$(/opt/homebrew/bin/brew shellenv)" vorgenommen wurden, erkannt werden.
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

Dieser Code funktioniert bei mir auf einem MacBook Pro M1.

kann bestätigen, dass dies der richtige Weg ist - ich tippe ein brew help shellenvund es heißtConsider adding evaluation of this command's output to your dotfiles (e.g. ~/.profile, ~/.bash_profile, or ~/.zprofile) with: eval "$(brew shellenv)"

„Befehl nicht gefunden“ zeigt an, dass sich die brewBinärdatei nicht in einem der Verzeichnisse befindet, die in Ihrer PATH-Umgebungsvariablen aufgeführt sind. Um Ihren aktuellen Pfad zu überprüfen, führen Sie echo $PATH. Standardmäßig wird Brew in /usr/local/bin. Um den Pfad dauerhaft festzulegen, sollten Sie Ihre ~/.bashrcDatei so bearbeiten, dass sie die Zeile export PATH="/usr/local/bin:$PATH".

Auf Apple Silicon-Rechnern ist brew standardmäßig der Installationspfad/opt/homebrew/bin

ja habe ich schon gemacht.
hast du deinen mac auch neu gestartet? dies ist nach Änderungen in bash/bashrc/bash_profile obligatorisch
@Alessiox nein, es ist nicht erforderlich, den Mac neu zu starten - Sie müssen nur ein neues Terminal starten und von dort aus ausführen (oder sogar in den meisten Fällen die Ressource ~/.bash_profile

Der Fehler bedeutet, dass die Umgebungsvariable auf Ihrem Mac -bash: brew: command not foundnicht gefunden wurde .brew

Die korrekte Umgebungskonfiguration in .bash_profileder Datei sollte wie folgt aussehen:

export PATH="/usr/local/bin:$PATH"

brewWenn Sie also die Umgebungsvariable nicht konfiguriert haben , brewist der richtige Schritt zum Konfigurieren der Umgebungsvariable auf Ihrem Mac:

  1. Fügen Sie die Umgebungsvariable zu Ihrem Mac hinzu, der richtige Befehl lautet:

    echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile
    
  2. Jetzt müssen wir die Änderungen aktivieren. Geben Sie diesen Befehl zum Aktivieren ein und versuchen Sie es drew doctorerneut:

    source .bash_profile
    

    Oder wenn Sie die Umgebung konfiguriert haben, können Sie diesen Befehl verwenden, um die Datei zu öffnen und zu überprüfen, ob die Umgebungskonfiguration korrekt ist:

    /usr/bin/open ~/.bash_profile
    

    und korrigieren Sie es dann auf den richtigen Text und speichern Sie es und beenden Sie es.

  3. Vergessen Sie nicht, Ihre Änderungen auch zu aktivieren. Immer noch dieser Befehl:

    source .bash_profile

Je nachdem, wo brewinstalliert wurde, müssen Sie möglicherweise export PATH="/usr/local/bin:$PATH"durch ersetzen export PATH=$PATH:/opt/homebrew/bin. Alle anderen Schritte sind gleich.

Wenn Ihre Shell zshund Ihr Mac M1-basiert sind, geben Sie nach der Installation diese beiden Befehle ein brew:

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

Der erste Befehl fügt hinzu:

  • eine erweiterte PATHVariable, die die Verzeichnisse enthält, in denen sich brewdie installierten Befehle und Befehle brewbefinden
  • mehrere Shell-Variablen, die von verwendet werdenbrew

zur .zprofileInitialisierungsdatei.

Der zweite Befehl fügt dieselben Variablen zur aktuellen Shell hinzu, sodass Sie mit der Verwendung beginnen können, brewohne .zprofile.

PS: Verwenden Sie für Intel-Macs /usr/localanstelle von /opt/homebrew.

PPS: Wenn Sie ausführen bash, verwenden Sie .bashrcanstelle von .zprofile.

Für die meisten Homebrew-Installationen und definitiv, als diese Frage geschrieben wurde, installiert Homebrew in /usr/local als eines seiner Hauptverkaufsargumente, sodass Sie den PATH in keinen Shell-Dateien bearbeiten müssen. Erst in den letzten Monaten wurde es gezwungen, einen Standard-Unix-Pfad zu verwenden, und Sie müssen den PATH bearbeiten
/opt/homebrewAuch dies setzt sowohl einen M1-Mac (Homebrew wird nur auf M1 installiert ) als auch die Verwendung von zshvoraus (was die moderne Standardeinstellung ist, aber nicht automatisch für Konten gilt, die vor dem Wechsel erstellt wurden). Können Sie die Antwort bearbeiten, um sie allgemeiner zu gestalten, und auch erklären, was die Befehle tatsächlich tun und wie sie das in der Frage beschriebene Problem lösen?

Wenn Ihre Shell zsh ist und Ihr Mac M1-basiert ist

Bearbeiten Sie .zshrc

nano .zshrc

hinzufügen

export PATH=/opt/homebrew/bin:$PATH

Beenden Sie das Terminal und öffnen Sie es erneut

Versuche es mit

brew
~/.bash_profileWenn Ihr Mac M1-basiert ist, können Sie die PATH-Variable mit Hinzufügen und Speichern bearbeiten export PATH=$PATH:/opt/homebrew/bin. Verlassen Sie das Terminal. Führen Sie nun den Brühbefehl aus
tnx, arbeite für mich!

Die FAQ hat einen Abschnitt dazu und ein spezielles Deinstallationsskript, beginnen Sie dort, um ein sauberes System zu erhalten, und installieren Sie es dann erneut.

https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/FAQ.md

Um Homebrew zu deinstallieren, fügen Sie den folgenden Befehl in eine Terminal-Eingabeaufforderung ein.

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall )"

Laden Sie das Deinstallationsskript herunter und führen Sie ./uninstall --help aus, um weitere Deinstallationsoptionen anzuzeigen.

Könnte sein, dass Sie einfach nie heruntergeladen haben. Ich habe diesen Fehler gemacht. Ich dachte, ich hätte richtig heruntergeladen, aber herausgefunden, dass ich etwas anderes getroffen habe und dann zurückkehre, wenn es heißt: "Drücken Sie die Eingabetaste, um fortzufahren, oder eine andere Taste, um abzubrechen".

Nein, weil das OP sagt, er bekommt den Fehler „Es scheint, dass Homebrew bereits installiert ist.“

Ich habe meinen Schwanz mit dem Fehler " Befehl nicht gefunden " verfolgt. Ich dachte, ein Upgrade auf Catalina hätte meine Homebrew-Installation beschädigt ( das Upgrade von OSX erfordert ein Upgrade von MacPorts ).

Halb kaputt:

Ich überprüfte meinen Pfad und /usr/local/binwar dort und eines ls -aldieser Verzeichnisse listete die installierten Homebrew-Pakete auf. Warum war Homebrew immer noch nicht glücklich?!?!? Ich habe einen anderen Homebrew-Befehl ausprobiert und dieser Befehl SUCCEEDED . Homebrew war also halb kaputt: Einige Dinge funktionieren, andere nicht. Drat.

Lösung:

Der Befehl, der den Fehlerbefehl ausspuckte, wurde nicht gefunden , was Zugriff mtrerfordert sudo. Obwohl die Homebrew-Dokumentation und jede andere Antwort, die ich zu diesem Fehler gefunden habe, Sie auffordern, /usr/local/binIhrem Pfad hinzuzufügen, sudoleben ausführbare Dateien, die Zugriff benötigen, im Pfad:

/usr/local/sbin

Fügen Sie dies hinzu:

/etc/paths

Und die Dinge werden wie erwartet funktionieren.

Das habe ich unter Ubuntu 20 gemacht:

echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"'>> ~/.bashrc

im Gegensatz zu dem, was die Brew-Dokumentation vorschlägt:

==> Nächste Schritte: Führen Sie diese beiden Befehle in Ihrem Terminal aus, um Homebrew zu Ihrem PATH hinzuzufügen:

echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> /home/user/.profile

eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"

Es scheint, dass .profile nicht gelesen wird, wenn .bashrc vorhanden ist.

Falsch. .profile wird nicht gelesen, wenn .bash_profile existiert. .bashrc wird von allen interaktiven Bash-Sitzungen gelesen, siehe Bash-Dokumentation gnu.org/software/bash/manual/bash.html#Bash-Startup-Files
@mmmmmm Dies wird auch in ".profile" erwähnt, aber ".bash_profile" ist nicht da und wird trotzdem nicht zuerst gelesen. Der Punkt ist, dass diese Lösung funktioniert.
Einverstanden, dass es funktioniert, aber der Grund ist falsch - um zu überprüfen, wie Sie Bash starten

Die einfache Antwort hier ist: Sie müssen die Ausgabe der Installation lesen.

Nachdem Sie den Brühbefehl ausgeführt haben, wird er Sie anleiten, was als nächstes zu tun ist.

In meinem Fall wurde mir gesagt, dass ich die folgenden 2 Befehle ausführen soll, um das Gebräu im PATH verfügbar zu machen

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/moelwekil/.zprofile    
eval "$(/opt/homebrew/bin/brew shellenv)"

Der folgende Befehl funktioniert nicht, wenn Sie unter Proxy sind.

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Verwenden Sie stattdessen Folgendes -

ruby -e "$(curl -x http://DOMAIN%5cUSER_NAME:PASSWORD@PROXY:PORT -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Beachten Sie, dass wir %5c anstelle von "\" verwenden müssen. Wenn Ihr Passwort Sonderzeichen enthält, ersetzen Sie es durch Unicode, z. B. für @ verwenden Sie %40. Verweisen Sie auf diese Unicodes

Ersetzen Sie den obigen Befehl durch Ihre eigenen Parameter

DOMÄNE - Ihre Domäne

USER_NAME - Ihr Benutzername

PASSWORT - Passwort

PROXY - 10.10.10.10

HAFEN - 8080

sudo ln -s /opt/homebrew/bin/brew /usr/local/bin/brew

Diese Zeile bindet Homebrew von /optmit , sodass Sie den Befehl überall /usr/localverwenden können . brewDas ist das einzige, was mir geholfen hat.

Quelle

Was bewirkt das, wie löst es das in der Frage beschriebene Problem?
So wie es derzeit geschrieben steht, ist Ihre Antwort unklar. Bitte bearbeiten Sie, um zusätzliche Details hinzuzufügen, die anderen helfen zu verstehen, wie dies die gestellte Frage beantwortet. Weitere Informationen zum Verfassen guter Antworten finden Sie in der Hilfe .
Wäre es dann nicht einfacher, etwas hinzuzufügen /opt/homebrew/bin, PATHmit dem zusätzlichen Vorteil, dass jeder über Homebrew installierte Befehl auch funktioniert?
@nohillside Ich weiß nicht, Bruder. Nichts anderes hat funktioniert, also habe ich die Lösung geteilt. Verstehst du?:))