54 votes

Comment rendre les fichiers de `/usr/local` inscriptibles pour Homebrew ?

J'ai essayé de faire fonctionner homebrew correctement, mais il semble que tout ce qui est à l'intérieur /usr/local n'est pas inscriptible, et tout s'écroule.

Il continue à me dire de récursivement chown /usr/local et j'ai essayé. Opération refusée, alors j'ai fait un sudo. Cela a semblé fonctionner, mais avec un silence sinistre qui, d'après ce que j'ai entendu, est considéré comme poli sous Unix. Malheureusement, toutes les tentatives successives de brew update rencontrent la même cacophonie d'erreurs.

J'ai réexécuté la commande avec -v et il semble que l'opération ne soit pas autorisée pour quoi que ce soit à l'intérieur.

Bien que la réponse soit probablement "apprendre UNIX", j'essaie juste de me conformer à certaines exigences professionnelles ici pour un tutoriel sur Ruby, donc c'est un peu plus que ce que je suis actuellement.

brew doctor :

Warning: /usr/local/Frameworks isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/Frameworks
Warning: /usr/local/Cellar isn't writable.
You should `chown` /usr/local/Cellar
Warning: /usr/local/etc isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/etc
Warning: /usr/local/include isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/include
Warning: /usr/local/lib isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/lib
Warning: /usr/local/lib/pkgconfig isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/lib/pkgconfig
Warning: /usr/local/opt isn't writable.
You should `chown` /usr/local/opt
Warning: /usr/local/share isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/share
Warning: Some directories in /usr/local/share/man aren't writable.
This can happen if you "sudo make install" software that isn't managed
by Homebrew. If a brew tries to add locale information to one of these
directories, then the install will fail during the link step.
You should probably `chown` them:

    /usr/local/share/man
    /usr/local/share/man/man1
    /usr/local/share/man/man3
    /usr/local/share/man/man5
    /usr/local/share/man/man7
    /usr/local/share/man/man8
Warning: /usr/local/var isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/var

0 votes

Fait brew doctor vous a dit quelque chose d'utile ? Postez le résultat ici.

0 votes

@IanC. C'est une longue liste de tout ce qui est lié à la brasserie et qui n'est pas accessible en écriture. Y a-t-il un utilitaire pastebin pour stackexchange ? Il y a un beaucoup d'elle.

0 votes

Eh bien, c'est étrange. Il y en a beaucoup moins maintenant qu'avant.

49voto

jherran Points 12554

Cela devrait être résolu en changeant les perms sur ce répertoire de la manière suivante :

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

Si vous ne connaissez pas votre groupe, tapez simplement id -g .

0 votes

La partie importante est le -R pour le rendre récursif. Et vous devez probablement faire le chown en utilisant sudo . Pour le groupe d'utilisateurs, j'utilise généralement staff sur OS X.

0 votes

Intéressant. Pourquoi l'utilisation du groupe est-elle si différente de celle de l'utilisateur ?

0 votes

Cela a résolu le premier problème, mais j'en ai maintenant un autre. Je pose une question différente pour ça, non ? Cette fois, Brew se plaint d'un git .lock.

28voto

shsteimer Points 8749

Vous devez utiliser sudo pour exécuter la commande avec des privilèges élevés, comme ceci :

sudo chown -R `whoami` /usr/local

0 votes

Je l'ai fait. "Opération refusée, donc j'ai fait un sudo."

1 votes

Pour les utilisateurs de coquilles de poisson, ce sera sudo chown -R (whoami) /usr/local

2 votes

Ceci doit être fait sur les fichiers/dossiers à l'intérieur de /usr/local mais pas sur ce répertoire en lui-même, par exemple sudo chown -R `whoami` /usr/local/*

17voto

Kong Points 171

J'ai été confronté à ce problème hier avec MacOS 10.13.4 et j'ai essayé de sudo chgrp -R admin /usr/local o sudo chown -R <your-username>:<your-group-name> /usr/local qui obtiennent Operation not permitted même si l'on utilise sudo

Donc j'ai essayé de juste chgrp pour Homebrew dans le dossier relatif au admin (Mon utilisateur est dans admin (en fonction de l'utilisateur que vous utilisez, il se peut que vous deviez changer de groupe) et accorder le droit d'accès à l'espace de travail. admin l'accès en écriture du groupe à ces dossiers en utilisant ces commandes

sudo chgrp -R admin /usr/local/Homebrew/
sudo chmod -R g+w /usr/local/Homebrew/
sudo chgrp -R admin /usr/local/var/homebrew/
sudo chmod -R g+w /usr/local/var/homebrew/

Après avoir exécuté ces commandes, je suis en mesure d'installer un nouveau paquet sans aucun problème. Si vous rencontrez à nouveau un problème de permission, essayez d'exécuter les deux premières commandes en remplaçant le nom du dossier par celui pour lequel vous rencontrez un problème de permission.

J'espère que cela aidera les autres utilisateurs de MacOS 10.13.

Remarque : Même si le changement de propriétaire pour /usr/local ou de changer le groupe de /usr/local et accorder l'accès à votre groupe peut fonctionner, mais vous ne devez JAMAIS le faire car vous modifiez également l'autre dossier sans rapport. Modifier le(s) dossier(s) dont vous avez besoin est beaucoup plus sûr.

2 votes

Cela a marché pour moi, merci !

14voto

supertodda Points 222

La réponse de Reza dans cette question a fonctionné pour moi :

sudo chown -R $(whoami) /usr/local/*

Vous ne pouvez pas changer les permissions pour /usr/local lui-même, mais vous pouvez changer les permissions pour les dossiers situés en dessous.

0 votes

Cela a fonctionné pour Catalina 10.15.7. Merci !

0 votes

Fonctionne sur Big Sur 11.4, merci !

2voto

thomas55 Points 221

Pour résoudre les problèmes de permissions sur les répertoires, nous pouvons exécuter la commande suivante :

brew prune

0 votes

brew prune a été remplacé par et est maintenant exécuté en tant que partie de brew cleanup

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X