Un autre processus Homebrew actif est déjà en cours

88

Quand j'essaye de faire ça:

brew install node

Je reçois ce message:

 /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

Une idée sur la façon de résoudre ce problème?

Akaliza
la source

Réponses:

205

Si la réponse ci-dessus ne résout pas votre problème, essayez de supprimer les verrous de processus homebrew avec cette commande:

rm -rf /usr/local/var/homebrew/locks
omikes
la source
1
pourquoi ne pas rester en sécurité avec for file in ls * lock ; do mv $file $file.old; done?
isomorphismes
1
MERCI c'était parfait!
lizziepika
Ce n'est pas conseillé. L'erreur est dans les mauvaises autorisations; les locksfichiers avaient un but et leur suppression n'est pas l'option la plus sûre.
Kamafeather
1
J'ai spécifié d'essayer ceci si l'autre réponse ne fonctionnait pas; Je faisais référence à la solution de @ kalibrain. Je devais faire les deux.
omikes
47

Comme ce fil le suggère à un moment donné, mon problème était d'exécuter la commande brew avec les privilèges sudo pour la première fois. Cela amène brew à essayer d'accéder aux fichiers et dossiers privilégiés et cela échoue. Si c'est le cas pour vous, exécutez ces commandes et réessayez d'installer node.

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

brew cleanup

kalibrain
la source
Oui, le problème est survenu après avoir déplacé des fichiers pour une sauvegarde, puis les avoir restaurés. Le propriétaire des fichiers a été défini sur un GID inconnu; la restauration avec a chownramené toutes les fonctionnalités sans erreurs.
Kamafeather
Assurez-vous également que les autorisations sont fixes, avec ls -la /usr/local/. Si ce n'est pas le cas, essayez d'ajouter un astérisque pour impliquer tous les sous-fichiers (comme sudo chown -R "$USER":admin /usr/local/*).
Kamafeather
21

fermez simplement le terminal et rouvrez-en un autre

chenxuZhu
la source
12

Tapez simplement ce qui suit dans votre terminal:

brew cleanup

Cela devrait résoudre tous les problèmes. Suivez la commande avec:

brew doctor

Terminé.

Zakariah Siyaji
la source
9

Dans mon cas sur OSX, j'ai interrompu l'installation du nœud, puis j'essaie de redémarrer l'installation du nœud, j'ai donc l'erreur mentionnée dans la question.
J'ai essayé les étapes ci-dessous à partir d'autres réponses:

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

brew cleanup

et

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

mais ce message réapparaît - alors ne sais pas si les étapes ci-dessus ont aidé.

Ensuite, j'ai fermé l'onglet du terminal et dans un nouveau a couru

brew install -v node

Il a fallu 11 minutes pour terminer l'installation du nœud avec succès

Pbaranski
la source
1
sur macOS est plus sûr à faire sudo chown -R "$USER":admin /usr/local/*. Sans les astérisques, je n'ai pas obtenu une extension correcte et la plupart des sous-fichiers / dossiers n'ont pas été touchés par la commande.
Kamafeather
3

Modifier l'autorisation de fichier évitera cette erreur:

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

Pour les problèmes d'autorisation avec l'installation ou la mise à jour de homebrew:

Modifier le paramètre d'autorisation de votre homebrew

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

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

Ensuite, lancez l'installation ou la mise à jour homebrew

Emilie Y
la source
Changer les autorisations pour /usr/local/Homebrewet /usr/local/var/homebrewc'est exactement ce qui m'a aidé
brigadir
0

Je ne sais pas ce qui se passait. Mon seul terminal actif attendait une entrée, aucun travail ne fonctionnant en arrière-plan. Je venais d'essayer d'exécuter une installation RVM qui a échoué et m'a demandé de mettre à jour Homebrew mais cela était censé être terminé car le terminal attendait une entrée. Après plusieurs appels de commande répétés et quelques minutes plus tard, j'ai arrêté de recevoir le message.

Ceci est sur Mac OSX 10.13.6 avec 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
la source