Je viens de passer de Snow Leopard à Lion et j'essaie d'installer Homebrew. Cependant, après l'installation, je lance brew doctor
selon les instructions d' installation et je vois une série d'erreurs indiquant que les répertoires / usr / local ne sont pas accessibles en écriture. Par exemple:
Error: /usr/local/share isn't writable.
This can happen if you "sudo make install" software that isn't managed
by Homebrew.
If a brew tries to write a file to this directory, the install will
fail during the link step.
You should probably `chown` /usr/local/share
Je les reçois pour un tas de répertoires:
You should probably `chown` /usr/local/include
You should probably `chown` /usr/local/share
You should probably `chown` /usr/local/share/man
Je ne peux pas comprendre pourquoi cette erreur se produit, car il semble que je fais partie du groupe Unix qui a des autorisations d'écriture sur ces répertoires:
Mini:~ felciano$ ls -ld /usr/local/share
drwxrwxr-x 4 root admin 136 May 13 15:53 /usr/local/share
Mini:~ felciano$ whoami
felciano
Mini:~ felciano$ dscl . -read /Groups/admin GroupMembership
GroupMembership: root felciano
Mini:~ felciano$
Qu'est-ce que je rate?
/usr/local
devrait appartenir à moi au lieu lorsque cette machine a plusieurs utilisateurs admin. De plus, il est possible pour moi d'écrire sur les sitesbrew doctor
se plaignant. D'autres idées?Réponses:
EDIT: Le problème est maintenant résolu dans Homebrew:
Si vous rencontrez toujours le problème, mettez à jour Homebrew comme ceci:
Si vous voulez savoir quel était le problème, j'ai gardé ma réponse originale ci-dessous.
Ignorez le problème du permisson pour l'instant
Je rencontre exactement le même problème et, à mon avis, le problème se situe
brew doctor
plutôt que dans votre et mon installation.Je pense que vous devriez ignorer le problème plutôt que de changer la propriété de
/usr/local
. Alternativement, vous pouvez corriger votrebrew doctor
script local jusqu'à ce qu'un correctif soit publié. Voir ci-dessous.Je ne considère pas correct de faire
/usr/local
appartenir à un utilisateur spécifique. J'ai plus d'un utilisateur administrateur sur cette machine. Vous devez laisser la/usr/local
propriété de enroot:admin
tant que propriétaire et groupe.Mon enquête
Comme pour vous, j'en ai un
/usr/local
qui est parfaitement accessible en écriture par mon utilisateur qui est également membre duadmin
groupe:Testons que le dir est vraiment accessible en écriture:
Une enquête plus approfondie sur le
brew doctor
code m'a conduit à conclure que l'utilisation de la fonction rubisPathname.writable?
est à l'origine du problème. Considérez cette session Ruby interactive:La fonction
Pathname.writable?
dit qu'elle/usr/local
n'est pas accessible en écriture même si nous savons qu'elle l'est.Utiliser à la
Pathname.writable_real?
place donne le résultat correct - il dit que le répertoire est accessible en écriture:Cela devrait être corrigé
/usr/local/Library/Homebrew/cmd/doctor.rb
. Vous pouvez le corriger dans votre propre installation en attendant un correctif.La différence entre les deux fonctions est (selon les documents Ruby ici et ici ):
(nom_fichier) → vrai ou faux: renvoie vrai si le fichier nommé est accessible en écriture par l'ID utilisateur effectif de ce processus.
writable_real? (nom_fichier) → true ou false: renvoie vrai si le fichier nommé est accessible en écriture par l'ID utilisateur réel de ce processus.
la source
writable_real?
... peut-être qu'il est temps de faire une demande de tirage?!? :-)Je crois que vous en avez juste besoin:
brew update
Réessayez
brew doctor
ensuite.Vous pouvez toujours obtenir des erreurs sur les dépendances que vous n'utilisez pas (Java dans mon cas), ce qui est correct. Si vous avez installé les outils de ligne de commande pour Xcode au lieu de l'installation complète de Xcode, vous obtiendrez également un message d'erreur indiquant que vous avez un chemin non valide, mais dans le message, vous lirez également qu'il n'y a pas de chemin valide si vous êtes en utilisant simplement les outils de ligne de commande pour Xcode, donc ça va aussi.
Pour le bénéfice des autres: Gardez à l'esprit que vous devez être connecté en tant qu'administrateur pour que cela fonctionne.
la source
J'ai suivi une combinaison des suggestions d'iolsmit et de Phil M: j'ai chowné ces répertoires à mon nom d'utilisateur, puis j'ai couru à
brew update
nouveau suivi debrew doctor
. Cela s'est débarrassé de tous les messages d'erreur et les installations de brassage semblent maintenant fonctionner correctement. Merci à vous deux!la source
Bravo pour l'enquête et la clarification de @ mgd ... c'est parfait!
Il semble qu'un problème similaire ait été soulevé sur github.com il y a environ un an, mais n'a jamais été (correctement?) Résolu, du moins pas en utilisant
writable_real?
... peut-être qu'il est temps de faire une demande de tirage?!? :-)la source