J'utilise homebrew
comme gestionnaire de packages pour certaines applications de développement Web. Pour rester brew
à jour, je cours update brew
tous les deux jours et je cours également brew doctor
. Habituellement, c'est très bien et brew
me dit que je suis prêt à brasser.
De temps en temps, cependant, j'obtiens l'erreur suivante:
Avertissement: / 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 Homebrew. Si une formule tente d'écrire un fichier dans ce répertoire, l'installation échouera pendant l'étape de liaison.
Vous devriez probablement
chown
/ usr / local / etcAvertissement: 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 logiciels peuvent modifier les autorisations sur ce répertoire. Certaines versions du composant "InstantOn" d'Airfoil sont connues pour ce faire.
Vous devriez probablement changer la propriété et les autorisations de / usr / local sur votre compte d'utilisateur.
Il est assez facile de réinitialiser les autorisations sur mon nom d'utilisateur. Ensuite, brew
ça va bien.
Mais qu'est-ce qui fait que cela arrive?
Existe-t-il un journal qui indique ce qui provoque la modification des autorisations?
la source
/usr/local
. Mais si vous insistez, vous pouvezmake install
sans utilisersudo
de packages que vous installez vous-même./usr/local
?Réponses:
J'ai eu exactement le même problème, et il se trouve que la mise à jour automatique de Sophos était à blâmer. J'ai compris cela en exécutant:
sudo fs_usage | grep "usr/local"
Cela a pris un certain temps, mais j'ai finalement vu le démon "Installation" de Sophos qui jouait avec les autorisations de / usr / local.
J'essaie toujours de trouver un moyen de contourner ce problème.
EDIT: Je crois que Sophos a résolu ce problème, voir le lien dans les commentaires de cette réponse. Il semble au moins être corrigé pour moi!
la source
Il s'avère que Filewave est le coupable. Filewave est un logiciel de gestion de système utilisé par notre école pour pousser les mises à jour logicielles. Merci pour la contribution.
la source
J'ai juste une idée approximative de comment obtenir le voleur de permission. Ce n'est pas une solution à votre problème, mais plutôt une sorte de solution de contournement.
Que diriez-vous d'écrire un chien de garde dans Automator ou avec Hazel (actions de dossier) pour regarder ce dossier particulier, mais au lieu d'ajouter une fonction comme Scale images, vous utilisez simplement un script shell qui exécute plusieurs commandes shell:
fuser <foldername>
.ps auxwwwwww | grep <process id>
) et enfinMalheureusement, je ne suis pas un sadhu Automator, mais j'ai découvert par Google qu'il existe de nombreuses solutions pour un problème aussi similaire.
la source
Si vous utilisez Time Machine, vous pouvez trouver l'heure approximative à laquelle les autorisations ont changé en explorant
Backups.backupdb
dans Terminal. Utilisationls -ld
dans les dossiers horodatés, par exempleQui affichera les informations sur le propriétaire et le groupe.
Une fois que vous avez la date à laquelle le changement s'est produit, vous pouvez rechercher ce qui aurait pu changer ensuite sur votre système. Une technique simple consiste à utiliser le fichier du Finder ›Rechercher et ajouter un
Last modified date
critère. D'autres bons outils sontfind
etmdfind
dans Terminal.la source
Il s'agit d'un effet secondaire de la mise à jour de votre système; OS X effectue probablement des "réparations" d'autorisations générales au cours du processus de mise à jour car / usr / local est imbriqué dans un dossier appartenant à la racine.
la source
Avez-vous utilisé
Disk Utility
selectMacintosh HD
puis runVerify Disk Permission
et ensuiteRepair 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 le brassage à domicile modifie les autorisations. Cela pourrait révéler le problème sous-jacent si vous avez de la chance.
Aussi
new update -v
pour une sortie plus verbeuse, plus les anciens journaux sont ici~/Library/Logs/Homebrew
selon Où se connecte homebrew?la source
Disk Utility
ne vérifierait pas ou ne réparerait pas les autorisations/usr/local
car ce répertoire n'existe pas sur une nouvelle installation de Yosemite./usr/local
appartenance à moi et en courantDU
. Il n'y en a pas/usr/local
dans leDU
journal. Et/usr/local
m'appartient toujours.