14 votes

Comment trouver la cause du changement de propriété de /usr/local de mon nom d'utilisateur à Root ?

J'utilise homebrew comme gestionnaire de paquets pour certaines applications de développement web. Pour garder brew update brew tous les deux jours et aussi brew doctor . Habituellement, c'est bien et brew me dit que je suis prêt à brasser.

De temps en temps, cependant, je reçois l'erreur suivante :

Attention : /usr/local/etc n'est pas accessible en écriture.

Cela peut se produire si vous "sudo make install" un logiciel qui n'est pas géré par par Homebrew. Si une formule tente d'écrire un fichier dans ce répertoire, l' install échouera lors de l'étape de liaison.

Vous devriez probablement chown /usr/local/etc

Avertissement : Le répertoire /usr/local n'est pas accessible en écriture. Même si ce répertoire était accessible en écriture lorsque vous avez installé Homebrew, d'autres d'autres logiciels peuvent modifier les permissions sur ce répertoire. Certaines versions du composant composant "InstantOn" d'Airfoil sont connues pour faire cela.

Vous devriez probablement changer la propriété et les permissions de /usr/local à votre compte d'utilisateur.

C'est assez facile de réinitialiser les permissions à mon nom d'utilisateur. Ensuite, brew semble bien fonctionner.

Mais quelle est la cause de ce phénomène ?

Y a-t-il un journal qui montre ce qui cause le changement des permissions ?

3 votes

Pas de journal mais notez que le fait que le répertoire /usr/local appartienne à rood est le standard Unix et que toute compilation dans ce répertoire s'y attendra. La solution est de ne pas mélanger un répertoire avec à la fois le gestionnaire de paquets (Homebrew) et la compilation standard Unix - Utilisez un autre répertoire pour l'un d'entre eux.

3 votes

L'ajout d'un logiciel au même emplacement que celui utilisé par un gestionnaire de paquets est une mauvaise idée, tout comme le fait de changer la propriété et les autorisations sur /usr/local . Mais si vous insistez, vous pourriez make install sans utiliser sudo pour les paquets que vous installez vous-même.

0 votes

@Mark J'ai également ce problème. Cela m'arrive de manière aléatoire, même si je n'ai rien installé depuis la dernière fois que j'ai eu ce problème.

-3voto

MichaelStoner Points 1143

Avez-vous utilisé Disk Utility sélectionnez Macintosh HD puis exécutez Verify Disk Permission y luego Repair Disk Permission si nécessaire, plutôt que de le faire manuellement ?

Maintenant, cela ne devrait pas résoudre votre problème, mais c'est un bon point de départ "connu" pour voir quand home-brew change les permissions. Il pourrait montrer le problème sous-jacent si vous êtes chanceux.

Aussi new update -v pour une sortie plus verbeuse, et les anciens journaux sont ici ~/Library/Logs/Homebrew selon Où s'enregistre le homebrew ?

2 votes

Disk Utility n'a pas voulu vérifier ou réparer les permissions sur /usr/local puisque ce répertoire n'existe pas sur une nouvelle installation de Yosemite.

0 votes

J'ai vérifié cette hypothèse entièrement sur Yosemite en créant un nouveau fichier /usr/local qui m'appartiennent, et qui courent DU . Il n'y a pas de /usr/local au sein de la DU journal. Et /usr/local m'appartient toujours.

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