web-dev-qa-db-fra.com

ne peut pas chown/usr/local pour l'homebrew dans Mac OS X 10.13 High Sierra

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

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

mais dans High Sierra, cela donne

chown: /usr/local: Operation not permitted

Quelle est la solution?

89
Dan

Le problème continuait à se produire ... après avoir approfondi, j'ai constaté que la désinstallation puis la réinstallation de Homebrew permettaient de résoudre ce problème.

Désinstallez 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)"
163
Uri Meirav

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

8
Aayush Gautam

Je viens d'exécuter ceci et tout est pris en charge sur High Sierra:

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

6
Ravi OpenSource

Le problème persiste toujours dans la dernière version de MacOS, c'est-à-dire Mojave. La désinstallation et la réinstallation de Homebrew ne résolvent pas le problème d’autorisation de répertoire. En fait, cela n’a aucun rapport avec l’installation de Homebrew! 

Lorsque nous faisons brew install python, il verse simplement brasser python puis essaie de créer un lien symbolique sous/usr/local dir pour lequel brew n’a pas l’autorisation. Et lorsque nous essayons d’exécuter Sudo chown -R $(whoami) /usr/local, cela ne fonctionne pas car il nécessite des privilèges supplémentaires que les utilisateurs Mac ordinaires (c’est-à-dire votre nom d’utilisateur) n’ont pas. Mais comme @Reza l'a mentionné dans sa réponse answer , tout répertoire situé en dessous peut être modifié. émettez simplement la commande suivante:

Sudo chown -R $(whoami) /usr/local/*
3
Abu Shumon

Essayez de désactiver 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 sous le système de récupération et exécuter la commande csrutil (1) à partir du terminal.

Démarrez sur le système de récupération en redémarrant votre ordinateur et en maintenant les touches Commande et R enfoncées au démarrage . Lancez Terminal depuis le menu Utilitaires . Entrez la commande suivante: $ csrutil enable

Après l'activation ou la désactivation de la protection de l'intégrité du système sur une machine, un redémarrage est requis.

3
Elle Mundy

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 dans .zshrc 

alors cela devrait fonctionner, ce problème résolu dans mon mac par cette voie.

1
zyqbit

Celui-ci a fonctionné de Apple stackexchange

$ cd /usr/local
$ Sudo chown -R <your-username>:<your-group-name> *

nom du groupe généralement staff et n'oubliez pas le *

1
Ahmed Younes

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

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

J'ai OSX High Sierra

0
ayush pathak

Assurez-vous de ne pas définir de verrou sur le dossier de départ ou sur un dossier auquel une installation a besoin d'accéder.

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

0
Daniel