Lors de l'installation tig
, HomeBrew
affiche les problèmes suivants lors de l'installation d'une dépendance:
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/a2x
/usr/local/bin is not writable.
You can try again using:
brew link asciidoc
Réponses:
Suite à la réponse d'Alex, j'ai pu résoudre ce problème; semble que ce soit un problème non spécifique aux packages en cours d'installation mais des autorisations des
homebrew
dossiers.Pour certains packages, vous devrez peut-être également effectuer cette opération
/usr/local/share
ou/usr/local/opt
:la source
sudo chown -R
Whoami ne serait-il pas:admin /usr/local/bin
équivalent à la commande dans la réponse, sans qu'il soit nécessaire de le remplaceryourusename
par votre nom d'utilisateur réel?usr/local/opt
. Cela a fonctionné après cela./usr/local/bin
(et de mes amis) semblent revenir àdrwxr-xr-x+
etroot wheel
tous les jours. Je dois reconfigurer les perms à chaque fois que je le souhaitebrew install
. Je suppose que le système d'exploitation réinitialise les perms pour me protéger? Comment puis-je l'arrêter? (J'ai essayéchflags uchg …
mais cela empêche l'installation de l'infusion.)Plutôt que d'exécuter une commande particulière, je recommanderais d'exécuter
brew doctor
et de prendre tous les avertissements au sérieux. Il peut y avoir d'autres problèmes auxquels vous vous retrouvez qui ne peuvent pas être capturés dans cette question.De plus, à mesure que l'infusion est mise à jour avec le temps, des commandes particulières peuvent ou non rester valides.
brew doctor
, cependant, vous garantira un dépannage à jour.la source
brew doctor
ne résoudra pas le problème, il ne fera que vous en parler, et lorsque vous suivez les conseils d'un médecin, Brew dit qu'il ne peut pas le faire. Ce n'est pas une solutionLes autres réponses sont correctes, dans la mesure où elles vont, mais elles ne répondent pas pourquoi ce problème pourrait se produire et comment traiter cette cause racine.
Cause
Il existe deux causes possibles à ce problème:
brew doctor
suggérée, si vous l'exécutez.Solution
Multiuser Homebrew
Si vous avez plusieurs comptes d'utilisateurs et que vous souhaitez que plusieurs d'entre eux puissent utiliser brew, vous devez exécuter quelques étapes, sinon vous devrez constamment changer la propriété de la structure du fichier Homebrew chaque fois que vous changez d'utilisateur, et ce n'est pas une bonne idée.
Des instructions détaillées peuvent être trouvées en ligne , mais la réponse rapide est la suivante:
Créez un groupe nommé brew:
sudo chgrp -R brew /usr/local
sudo chmod -R g+w /usr/local
sudo chgrp -R brew /Library/Caches/Homebrew
sudo chmod -R g+w /Library/Caches/Homebrew
Homebrew mono-utilisateur
Si vous n'essayez pas d'utiliser plus d'un utilisateur avec Homebrew, la solution fournie par les autres réponses, basée sur les suggestions de,
brew doctor
est probablement suffisante:sudo chown -R $(whoami) /usr/local
sudo chown -R $(whoami) /Library/Caches/Homebrew
Vérification
Après ces étapes, vous devez
brew doctor
signaler le succès de tout utilisateur du groupe de brassage , en supposant que vous vous êtes déconnecté et reconnecté pour appliquer les nouvelles appartenances au groupe (si vous avez choisi la route multi-utilisateur). Si vous venez de corriger des choses pour l'homebrew mono-utilisateur, la déconnexion et la reconnexion ne devraient pas être nécessaires car aucune des appartenances à votre groupe n'a changé.la source
/usr/local/bin
groupe inscriptible, en particulier. dans un environnement multi-utilisateurs. Est-ce vraiment la manière "officielle" de brasser?Pour ceux qui recherchent ce
/usr/local/sbin
n'est pas une erreur d'écriture:MISE À JOUR: Cela pourrait être
/usr/local/someOtherFolderName
par exemple/usr/local/include
. Il vous suffit de créer ce dossier avec:sudo mkdir someOtherFolderName
Créez d'abord le
sbin
dossier, notez que cela nécessite dessudo
privilègescd /usr/local
sudo mkdir sbin
sudo chown -R $(whoami) $(brew --prefix)/*
brew link yourPackageName
la source
PATH=$PATH:/usr/local/sbin
J'ai trouvé pour ma configuration particulière que les commandes suivantes fonctionnaient
Et puis cela m'a montré où étaient mes erreurs, puis cette commande légèrement différente du commentaire ci-dessus.
la source
brew doctor
brew doctor
est bon.J'ai trouvé le même problème, nous pouvons le résoudre en trois étapes: -
Étape 1
Étape 2
Étape 3
Si vous rencontrez toujours un problème de liaison, disons pour
mysql
, écrivez simplementCela fonctionnera.
la source
Pour ceux qui rencontrent ce problème (accordé 4 ans après la publication de ce message) lors de l'exécution de Mac OS High Sierra - les étapes décrites ici ont résolu le problème pour moi. Décrit essentiellement la désinstallation et la réinstallation de l'infusion.
https://medium.com/@mrkdsgn/brew-error-on-macos-high-sierra-check-you-have-permission-to-write-to-usr-local-e8bd1c6a22d4
Après avoir exécuté ces étapes, a
brew link
fonctionné comme un charme!la source
Pour moi, la solution était de courir
brew update
.Alors, FAITES D'ABORD.
Cela pourrait être une pratique normale pour les personnes familières avec les homebrews, mais je ne suis pas de ces personnes.
Edit: j'ai découvert que je devais mettre à jour en exécutant
brew doctor
comme suggéré par la réponse de @ kinnth à cette même question.Un flux de travail de dépannage général pourrait ressembler à ceci: 1. exécuter
brew update
2. si cela n'aide pas à s'exécuterbrew doctor
et suivre ses instructions 3. si cela n'aide pas à vérifier le débordement de la pilela source
En faisant un nœud de lien de brassage, j'ai également eu les problèmes suivants:
Erreur: le lien symbolique n'a pas pu inclure / node / usr / local / include n'est pas accessible en écriture.
Liaison /usr/local/Cellar/node/9.3.0 ... Erreur: autorisation refusée @ dir_s_mkdir - / usr / local / lib
Pour résoudre ce qui précède, allez dans / usr / local / et vérifiez la disponibilité des dossiers «include» et «lib», si ces dossiers ne sont pas disponibles, créez-les manuellement.
Et exécutez à nouveau le nœud d'installation de brew
la source
En effet, l'utilisateur actuel n'est pas autorisé à écrire dans ce chemin. Ainsi, pour modifier les autorisations r / w (lecture / écriture), vous pouvez soit utiliser 1. terminal, soit 2. Fenêtre graphique "Get Info".
1. Utilisation du terminal
Google comment utiliser les commandes chmod / chown (changement de mode / changement de propriétaire) à partir du terminal
2. Utilisation graphique de «Get Info»
Vous pouvez cliquer avec le bouton droit sur le dossier / fichier dont vous souhaitez modifier les autorisations, puis ouvrir Obtenir des informations qui vous montrera une fenêtre comme ci-dessous au bas de laquelle vous pouvez facilement modifier les autorisations r / w:
N'oubliez pas de modifier l'autorisation en "lecture seule" après votre travail temporaire, si possible
la source
J'ai trouvé les informations suivantes pertinentes pour les utilisateurs de Sophos Anti-Virus:
https://stackoverflow.com/a/32981184
https://community.sophos.com/products/free-antivirus-tools-for-desktops/f/17/t/10029
En bref, Sophos modifie les autorisations de certains répertoires / usr / local. Sophos a corrigé cela et le correctif est inclus avec la version 9.4.1.
la source
Mon problème était
chown
n'a pas aidé, mais j'ai suivi lesbrew doctor
conseils de course et cet avertissement m'a aidé:Après
brew prune
tout a bien fonctionné!la source
Pour ceux qui ne sont pas familiers:
la source
Si vous allez dans le dossier du Finder, faites un clic droit et sélectionnez "Obtenir des informations", vous pouvez aller dans la section "Partage et autorisations" pour le dossier et autoriser "Lecture et écriture" à "tout le monde"
C'est ce que je fais pour que les liens symboliques passent avec cette erreur. L'infusion semble également réinitialiser les autorisations sur le dossier également comme si vous n'aviez rien modifié
la source
Si vous avez déjà un répertoire
/usr/local
pour le package que vous installez, vous pouvez essayer de supprimer ce répertoire.Dans mon cas, j'avais précédemment installé le package que j'essayais d'installer sans utiliser d'infusion, puis l'avais désinstallé. Il restait un répertoire
/usr/local/<my_package>/
de cette installation précédente. J'ai supprimé ce dossier (sudo rm -rf /usr/local/<my_package>/
) et après cela, l'étape de lien de brassage a réussi.la source