impossible de chown / usr / local pour homebrew dans Mac OS X 10.13 High Sierra

118

Homebrew a besoin d'autorisations dans / usr / local et comme personne d'autre n'utilise mon ordinateur portable, je l'ai toujours fait simplement

sudo chown -R $(whoami) $(brew --prefix)

mais dans High Sierra, cela donne

chown: /usr/local: Operation not permitted

Quelle est la solution?

Dan
la source
Résolu avec: sudo chown -R "$ USER": admin / usr / local / *
Marcelo Campusano

Réponses:

218

Le problème a continué à se produire ... après avoir creusé plus profondément, j'ai trouvé que seule la désinstallation de Homebrew, puis sa réinstallation, résolvait ce problème.

Désinstaller Homebrew:

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

Puis réinstallez-le:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Uri Meirav
la source
4
c'était le seul moyen de réparer mon homebrew après la mise à niveau "High" Sierra. mon erreur était: gh4x-mbpr:~ gh4x$ brew link git Linking /usr/local/Cellar/git/2.15.0... Error: Permission denied @ dir_s_mkdir - /usr/local/lib et n'a sudo chown -R $(whoami) $(brew --prefix)/* pas aidé ...
gh4x
Incroyable. Échec la première fois, le script de désinstallation a échoué, la deuxième installation a fonctionné.
GreenAsJade
Vous voudrez peut-être d'abord enregistrer la sortie de brew listdans un fichier, pour avoir un enregistrement des packages installés.
Giles Gardam
1
Aucun des autres correctifs de l'homebrew Mojave ne fonctionnerait sur mon système. La désinstallation / réinstallation a parfaitement fonctionné.
pkamb
2
Fonctionne aussi avec Catalina
Gefilte Fish
52

Malheureusement, vous ne pouvez plus manger /usr/localdans High Sierra. Une solution de contournement consiste à sudo mkdir /usr/local/includeet /usr/local/Frameworkss'ils n'existent pas, et

sudo chown -R $(whoami) $(brew --prefix)/*

Merci à ilovezfs pour cette solution de contournement simple et pour l'incroyable homebrew!

Dan
la source
9
Ne fonctionne toujours pas. $ brew update Erreur: le répertoire / usr / local n'est pas accessible en écriture.
Laurence Cope
Essayez de désinstaller et de réinstaller Homebrew: stackoverflow.com/questions/46459152/…
ruggershawn
comme je l'ai commenté ailleurs, la désinstallation supprime TOUS vos paquets de bière.
jaydel
$(brew --prefix)devrait évaluer /usr/local/, je crois.
Jordan Stewart
33

Vous ne pouvez pas modifier l'autorisation pour /usr/locallui-même, mais vous pouvez modifier la bonne autorisation pour les dossiers en dessous, donc cela a corrigé le
sudo chown -R $(whoami) /usr/local/*

Reza Farshi
la source
1
Obtenir le même problème encore
Laurence Cope
2
Fonctionnant sur MacOS High Sierra. Travaillé. Merci.
Prince Odame
2
A travaillé pour moi sur: macOS High Sierra 10.13.6
Gail Parsloe
8

J'ai suivi cela mais le problème persiste.
J'ai donc réinstallé l' homebrew sans désinstaller le précédent. Ça marche maintenant!
(Je ne sais pas comment)

Aayush Gautam
la source
3
Je recommande de désinstaller complètement Homebrew, puis de l'installer à nouveau.
k1r8r0wn
Plusieurs installations ont fonctionné, je n'ai pas été en mesure de le réparer jusqu'à ce que je désinstallé.
cbowns
la désinstallation va tout gâcher. J'ai des tonnes de paquets installés et je devrai les réinstaller et les réinstaller. Malheureusement, tout cela fonctionnait auparavant parce que J'AI ces paquets.
jaydel
3

Essayez de désactiver la protection de l'intégrité du système . De la documentation:

La protection de l'intégrité du système peut être configurée à l'aide de la commande csrutil (1).

Vous pouvez vérifier si la protection de l'intégrité du système est actuellement activée sur votre système en exécutant la commande suivante dans le terminal:

$ csrutil status
System Integrity Protection status: enabled.

Pour activer ou désactiver la protection de l'intégrité du système, vous devez démarrer sur Recovery OS et exécuter la commande csrutil (1) à partir du terminal.

Démarrez avec Recovery OS en redémarrant votre ordinateur et en maintenant les touches Commande et R enfoncées au démarrage. Lancez Terminal à partir du menu Utilitaires. Entrez la commande suivante: $ csrutil enable

Après avoir activé ou désactivé la protection de l'intégrité du système sur une machine, un redémarrage est nécessaire.

Elle Mundy
la source
Bien que cela puisse théoriquement répondre à la question, il serait préférable d'inclure ici les parties essentielles de la réponse et de fournir le lien pour référence.
Jake Symons
3
C'est un peu comme retirer la protection de votre scie circulaire à table. Cela fonctionne, et cela peut parfois être nécessaire, mais c'est plus sûr si vous n'êtes pas obligé de le faire. Se définir comme le propriétaire de / usr / local pour faire fonctionner l'homebrew a toujours semblé être un hack de toute façon.
Caleb
3
Ceci est fortement déconseillé! C'est extrêmement dangereux à moins que l'utilisateur ne fasse pas ce qu'il / elle fait.
Abu Shumon
@oligofren: D: D: D allez mec. Détendez-vous, ce n'est pas un word in contextconcours d' anglais . : D: D Drapeau pour avertir l'utilisateur. Mais bon, vous prenez les mots pour moi alors: p: p
Abu Shumon
1

si vous utilisez zsh parce que vous venez de bash, vous devrez peut-être changer votre $ PATH. vous devriez ajouter export PATH=$HOME/bin:/usr/local/bin:$PATH .zshrc

alors cela devrait fonctionner, ce problème est résolu dans mon mac de cette façon.

zyqbit
la source
1

Je suis également sur 10.13 High Sierra. J'ai essayé les suggestions précédentes; rien n'a fonctionné. Finalement, j'ai essayé d'installer d' abord les outils de ligne de commande :

xcode-select --install

puis (ré) exécuté la commande brew install:

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

et cela a finalement fonctionné.

Ed Mechem
la source
0

Assurez-vous que vous n'avez pas de verrou sur le dossier de départ ou sur tout dossier auquel une installation doit accéder.

Même si les autorisations et la propriété sont correctement définies et que vous êtes actuellement connecté avec un utilisateur correct / ou un utilisateur racine, cela ne vous permettra pas de créer de nouveaux dossiers ou répertoires.

Daniel
la source
0

Je n'avais pas le dossier / user / local / Frameworks, donc cela l'a corrigé pour moi

sudo mkdir -p /usr/local/Frameworks
sudo chown -R $(whoami) /usr/local/Frameworks

J'ai OSX High Sierra

ap00724
la source
0

c'est Kaushik. J'utilise MacBook Pro macOS Catalina 10.15.4. J'ai créé un nouveau compte administrateur mais brew a généré une erreur. Par conséquent, j'ai suivi une étape de ce post. ce qui a fonctionné est:

sudo chown -R $ (whoami) $ (brassage - préfixe) / *

koushik v
la source