Ein weiterer aktiver Homebrew-Prozess ist bereits im Gange

89

Wenn ich das versuche:

brew install node

Ich bekomme diese Nachricht:

 /usr/local/Homebrew/Library/Homebrew/utils/lock.sh: line 19: /usr/local/var/homebrew/locks/update: Permission denied
-e:1:in `initialize': Bad file descriptor (Errno::EBADF)
    from -e:1:in `new'
    from -e:1:in `<main>'
Error: Another active Homebrew process is already in progress.
Please wait for it to finish or terminate it to continue.
Error: Permission denied - /usr/local/var/homebrew/locks/node.brewing

Irgendeine Idee, wie man das löst?

Akaliza
quelle

Antworten:

209

Wenn die obige Antwort Ihr Problem nicht behebt, entfernen Sie die Homebrew-Prozesssperren mit diesem Befehl:

rm -rf /usr/local/var/homebrew/locks
Omikes
quelle
1
Warum nicht mit for file in ls * lock sicherer bleiben ; do mv $file $file.old; done?
Isomorphismen
1
DANKE das war perfekt!
lizziepika
Dies ist nicht ratsam. Der Fehler liegt in den falschen Berechtigungen. Die locksDateien hatten einen Zweck und das Löschen ist nicht die sicherste Option.
Kamafeather
1
Ich habe angegeben, dies zu versuchen, wenn die andere Antwort nicht funktioniert hat. Ich bezog mich auf die Lösung von @ kalibrain. Ich musste beides tun.
Omikes
47

Wie dieser Thread irgendwann andeutet, bestand mein Problem darin, den Befehl Brew zum ersten Mal mit Sudo-Berechtigungen auszuführen. Dies führt dazu, dass Brew versucht, auf privilegierte Dateien und Ordner zuzugreifen, und dies schlägt fehl. Wenn dies bei Ihnen der Fall ist, führen Sie diese Befehle aus und versuchen Sie erneut, den Knoten zu installieren.

sudo chown -R "$USER":admin /usr/local

brew cleanup

Kalibrain
quelle
Ja, das Problem trat auf, nachdem Dateien für eine Sicherung verschoben und anschließend wiederhergestellt wurden. Der Dateieigentümer wurde auf eine unbekannte GID festgelegt. Das Wiederherstellen mit chownbrachte alle Funktionen ohne Fehler zurück.
Kamafeather
Stellen Sie außerdem sicher, dass die Berechtigungen mit festgelegt sind ls -la /usr/local/. Wenn dies nicht der Fall ist, versuchen Sie, ein Sternchen hinzuzufügen, um alle Unterdateien (wie sudo chown -R "$USER":admin /usr/local/*) zu implizieren .
Kamafeather
22

Schließen Sie einfach das Terminal und öffnen Sie ein anderes erneut

chenxuZhu
quelle
Dies funktioniert möglicherweise nur in einigen Fällen. Der Grund dafür ist, dass beim Schließen des Terminals die auf dem /usr/local/var/homebrew/locksPfad erstellte Sperre möglicherweise nicht entfernt werden kann . Daher sehen Sie beim nächsten Start brew updateden Fehler, der in dieser Frage angegeben ist
Eranga Heshan
14

Geben Sie einfach Folgendes in Ihr Terminal ein:

brew cleanup

Dies sollte alle Probleme beseitigen. Folgen Sie dem Befehl mit:

brew doctor

Alles erledigt.

Zakariah Siyaji
quelle
9

In meinem Fall unter OSX habe ich die Knoteninstallation unterbrochen und dann versucht, die Installation des Knotens erneut zu starten, damit der in der Frage erwähnte Fehler angezeigt wird.
Ich habe unten Schritte aus anderen Antworten versucht:

sudo chown -R "$USER":admin /usr/local

brew cleanup

und

rm -rf /usr/local/var/homebrew/locks

Diese Meldung wird jedoch erneut angezeigt. Sie wissen also nicht, ob die oben genannten Schritte hilfreich waren.

Dann habe ich die Terminal-Registerkarte geschlossen und in neuem lief

brew install -v node

Es dauerte 11 Minuten, bis die Knoteninstallation erfolgreich abgeschlossen war

pbaranski
quelle
1
unter macOS ist sicherer zu tun sudo chown -R "$USER":admin /usr/local/*. Ohne die Sternchen habe ich keine korrekte Erweiterung erhalten und die meisten Unterdateien / -ordner wurden vom Befehl nicht berührt.
Kamafeather
3

Durch Ändern der Dateiberechtigung wird dieser Fehler vermieden:

sudo chown <your-username>:admin /usr/local/Homebrew/Library/Homebrew/utils/lock.sh

Bei Berechtigungsproblemen bei der Installation oder Aktualisierung von Homebrew:

Ändern Sie Ihre Homebrew-Berechtigungseinstellung

sudo chown -R <your-username>:admin /usr/local/Homebrew

sudo chown -R <your-username>:admin /usr/local/var/homebrew

Führen Sie dann die Homebrew-Installation oder das Update aus

Emilie Y.
quelle
Das Ändern der Berechtigungen für /usr/local/Homebrewund /usr/local/var/homebrewgenau das hat mir geholfen
Brigadir
0

Ich weiß nicht, was los war. Mein einziges aktives Terminal wartete auf Eingabe, im Hintergrund wurden keine Jobs ausgeführt. Ich hatte gerade versucht, eine fehlgeschlagene RVM-Installation auszuführen, und mich gebeten, Homebrew zu aktualisieren, aber das sollte abgeschlossen sein, da das Terminal auf die Eingabe wartete. Nach mehreren wiederholten Befehlsaufrufen und ein paar Minuten später erhielt ich keine Nachricht mehr.

Dies ist unter Mac OSX 10.13.6 mit iTerm2.

⋊> brew --version
Homebrew 2.1.4
Homebrew/homebrew-core (git revision 97b15a; last commit 2019-06-07)
Homebrew/homebrew-cask (git revision 2a010; last commit 2019-06-07)
Pysis
quelle