web-dev-qa-db-fra.com

Le médecin Brew a déclaré: "Avertissement:/usr/local/include n'est pas accessible en écriture."

Brew docteur dit: 

Attention:/usr/local/include n'est pas accessible en écriture. Cela peut arriver si vous utilisez un logiciel "Sudo make install" qui n'est pas géré par Homebrew.

Si une bière essaie d'écrire un fichier d'en-tête dans ce répertoire, installez échouera pendant l'étape de lien.

Vous devriez probablement chown/usr/local/include

J'ai essayé différentes commandes pour résoudre ce problème, mais je suis toujours coincé ici.

Je lance homebrew le 10.8.2

319
gaggina

En prendre possession et tout ce qu’il contient.

Mac OS High Sierra ou plus récent: (merci à 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

Alors fais un autre

$ brew doctor
602
jrwren

Ce qui a fonctionné pour moi aussi

Sudo chmod g+w /usr/local
Sudo chgrp staff /usr/local
106
Durul Dalkanat

Ce qui a fonctionné pour moi était 

$ Sudo chown -R yourname:admin /usr/local/bin
37
Ana Isabel

Le seul qui a fonctionné pour moi sur El Capitan était:

Sudo chown -R $(whoami) /usr/local
35
Husky

Pour High Sierra:

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

Ensuite, essayez vos commandes d'infusion.

Numéro # 3285

16
sayaMahi

Si vous vous trouvez sur High Sierra et que vous rencontrez ce problème, suivez les étapes ci-dessous ( Remarque: vous ne pouvez pas afficher/usr/local dans High Sierra ):

Sudo mkdir /usr/local/include
Sudo chown -R $(whoami) $(brew --prefix)/*

Ensuite, essayez de lier avec lien de brassage. Je rencontrais un problème similaire et aucune des solutions ci-dessus ne fonctionnait pour High Sierra. J'espère que ça aide quelqu'un.

13
Pro

Vous pouvez aliaser 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, dans votre terminal, vous pouvez exécuter: 

$ fix_brew
12
karlingen

Pour certains, ça va être: 

Sudo chown -R JonJames:admin /usr/local/lib

où "lib" est utilisé par opposition à "bin" ou "include" ou "autre chose"

Le Homebrew Warning "devrait" expliquer ce qui n’est pas en écriture, puis vous donner une syntaxe de commande à suivre. Toutefois, vous devrez utiliser le ":" par opposition à ce que Warning mentionne, ce qui n’est pas la syntaxe correcte ? 

7
Jonathan James

Travaille pour moi

$ Sudo chown -R $(whoami):admin /usr/local

$ cd /usr/local/Library && git stash && git clean -d -f

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 fonctionné.

5
Miguel

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
3
waldencoder

Vous devez maîtriser l'intégralité de /usr/local pour pouvoir effectuer une chown récursive sous /usr/local

Sudo chown -R YOUR_USERNAME:admin /usr/local/

2
Null-Hypothesis

Vous devez d’abord créer le répertoire:

Sudo mkdir /usr/local/include

Seconde:

Sudo chown -R $(whoami) $(brew --prefix)/*
2
gugapc

Allez dans le répertoire/bin et tapez:

chown -R $ (whoami): admin/usr/local/bin

1
Yusuf

Je veux simplement faire écho au commentaire modeste de sam9046 comme solution alternative et potentiellement beaucoup plus simple qui a fonctionné dans mon cas: uninstall et install homebrew à nouveau. Aucune commande Sudo requise.

Vous pouvez également parcourir/modifier le script de désinstallation à partir du lien ci-dessus si vous devez vous assurer qu'il n'affectera pas vos packages précédemment installés. Dans mon cas, c'était juste ma machine à la maison, alors je viens de recommencer.

1
adamkski
Sudo mkdir -p /usr/local/include /usr/local/lib /usr/local/sbin

Sudo chown -R $(whoami) /usr/local/include /usr/local/lib /usr/local/sbin

Cela créera tous les répertoires requis et lui donnera la propriété correcte.

Après avoir exécuté ces commandes, vérifiez avec: brew doctor

Cela fonctionne pour Mojave.

1
Sven

C'est ce qui s'est produit dans mon organisation après que tous nos utilisateurs aient été liés à Active Directory (modification effective de l'UID de 50x à ######).

Il s’agit maintenant simplement de changer la propriété de tous les fichiers appartenant à x en y.

Où 501 est mon ancien identifiant d'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, mettez à jour la propriété Sudo find /usr/local -user 501 -exec chown -h $USER {} \;

De cette manière, nous évitons de modifier la propriété des fichiers non contrôlés par homebrew ou appartenant à un autre utilisateur du système.

1
Tarun