Brew doctor dit: "avertissement: /usr / local / include n'est pas inscriptible."
Brew docteur dit:
Avertissement: /usr / local / include n'est pas accessible en écriture. Cela peut arriver si vous "sudo make install" logiciel qui n'est pas géré par Homebrew.
Si un brew tente d'écrire un fichier d'en-tête dans ce répertoire, l'installation échoue lors de l'étape de liaison.
, Vous devriez probablement
chown
/usr/local/include
J'ai essayé différentes commandes pour résoudre cela, mais je suis toujours coincé ici.
Je cours homebrew sur 10.8.2
15 réponses
Prenez-en possession et tout ce qu'il contient.
Mac OS High Sierra ou plus récent: (ty à Kirk dans les commentaires ci-dessous)
$ sudo chown -R $(whoami) $(brew --prefix)/*
Versions précédentes de macos:
$ sudo chown -R $USER:admin /usr/local/include
, Puis faire un autre
$ brew doctor
Ce qui a fonctionné pour moi était aussi
sudo chmod g+w /usr/local
sudo chgrp staff /usr/local
Ce qui a fonctionné pour moi était
$ sudo chown -R yourname:admin /usr/local/bin
Le seul qui a travaillé pour moi sur El Capitan était:
sudo chown -R $(whoami) /usr/local
Pour High Sierra:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Ensuite, essayez vos commandes brew.
Vous pouvez alias la commande pour résoudre ce problème dans votre .bash_profile
et l'exécuter chaque fois que vous le rencontrez:
À la fin du fichier ~/.bash_profile
, Ajoutez:
alias fix_brew='sudo chown -R $USER /usr/local/'
Et maintenant, à l'intérieur de votre terminal, vous pouvez exécuter:
$ fix_brew
Cela a fonctionné pour moi sur macOS 10.12
sudo chown -R $(whoami) /usr/local
J'ai eu le problème de mise à jour homebrew avec l'erreur suivante:
/usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
sudo chown -R $(whoami) /usr/local
Si vous êtes sur High Sierra et rencontrez ce problème, suivez les étapes ci-dessous (Note: /usr/local ne peut pas être chown'D dans High Sierra):
sudo mkdir /usr/local/include
sudo chown -R $(whoami) $(brew --prefix)/*
Ensuite, essayez de lier avec brew link. Je rencontrais un problème similaire et aucune des solutions ci-dessus ne fonctionnait pour High Sierra. Espérons que cela aide quelqu'un.
Travailler pour moi
$ sudo chown -R $(whoami):admin /usr/local
$ cd /usr/local/Library && git stash && git clean -d -f
Pour certains, ce sera:
sudo chown -R JonJames:admin /usr/local/lib
Où "lib" est utilisé par opposition à "ben" ou "comprendre" ou "quoi que"
Le Homebrew Warning "devrait" expliquer ce qui n'est pas accessible en écriture et ensuite vous donner une syntaxe de commande pour follow, mais vous devrez utiliser le ":" par opposition à ce que l'avertissement mentionne qui n'est pas la syntaxe correcte??
Même erreur sur MacOS 10.13
/usr/local/include
et /usr/local/
/usr/lib
n'ont pas été créés. J'ai créé manuellement et brew link
a finalement travaillé.
Vous devez créer /usr / local / include et /usr/local/lib s'ils n'existent pas:
$ sudo mkdir -p /usr/local/include
$ sudo chown -R $USER:admin /usr/local/include
Ce qui a Fonctionné pour moi, tout en ayant j'ai plus de 1 utilisateur sur mon ordinateur.
Utilisation du terminal:
- Fonctionnement
brew doctor
- voir plusieurs
/usr/local/...
n'est pas une erreur inscriptible
- voir plusieurs
- désactivation de la Protection de L'intégrité du système Mac: https://apple.stackexchange.com/a/208481/55628
- exécutez
sudo chown -R $(whoami) /usr/local/*
brew doctor && brew upgrade && brew doctor
Exécution du Macbook Pro OSX High Sierra (version 10.13.3.)
Édition 1:
FYI-veuillez noter que cela provoque un problème avec L'exécution de MySQL sur votre MAC.
Pour pouvoir démarrer mon serveur local, j'ai dû exécuter:
sudo chown -R mysql:mysql /usr/local/mysql/data
Après avoir exécuté ceci, vous pouvez démarrer votre serveur MySQL local.
Vous devez obtenir le contrôle de entire /usr/local
pour ce faire, vous devez faire un chown
récursif sous /usr/local
sudo chown -R YOUR_USERNAME:admin /usr/local/
Cela s'est produit dans mon organisation après que tous nos utilisateurs ont été liés à active directory (en changeant efficacement l'UID de 50x à ######).
Maintenant, il s'agit simplement de changer la propriété de tous les fichiers où x appartenait à y.
Où 501 est mon ancien ID utilisateur numérique qui est toujours associé à tous les fichiers homebrew.
L'ancien id utilisateur peut être trouvé en utilisant ll /usr/local/Cellar
Maintenant mettre à jour la propriété
sudo find /usr/local -user 501 -exec chown -h $USER {} \;
De cette façon, nous évitons de changer le propriété sur les fichiers qui ne sont pas contrôlés par homebrew ou appartiennent à un autre utilisateur du système.