2012-03-21 2 views
38

j'ai un homebrew d'installation standard à l'intérieur du usr/local/Homebrew des autorisations d'installation problème

Lorsque je tente:

Larson-2:~ larson$ brew install postgresql 
Error: Cannot write to /usr/local/Cellar 

Et quand j'utilise sudo:

Larson-2:~ larson$ sudo brew install postgresql 
Cowardly refusing to `sudo brew install' 

Que suis-je mal faire?

+0

Vous pouvez 'brasser sudo install' mais vous devez d'abord changer la autorisations de l'utilitaire de brassage de sorte qu'il est détenu par root. C'est un dispositif de sécurité. – mxcl

+0

On dirait que la méthode ci-dessous change les permissions de l'utilitaire de brassage, ai-je raison? –

+0

Non, ce n'est pas le cas. – mxcl

Répondre

119

Vous avez en quelque sorte des autorisations limitées à /usr/local/Cellar. Brew n'aime pas installer avec sudo, c'est pourquoi il refuse.

Vérifiez les autorisations:

ls -ld /usr/local/Cellar

les ouvrir pour l'écriture:

sudo chmod a+w /usr/local/Cellar

+1

Nice, je l'ai vu d'autres approches telles que changer le propriétaire de/usr/local/Cave à whoami ou groupes permet d'écrire sur/usr/ – orlybg

+6

local après que je suis arrivé 'Erreur: Autorisation refusée -/Bibliothèque/Caches/Homebrew/Formula/... 'et résolus avec' sudo chmod -R a + w/Bibliothèque/Caches/Homebrew' – gfpacheco

+0

Merci @gfpacheco – Lukas

5

Je change les permissions du groupe:

$ chgrp -R admin /usr/local/Cellar 
$ chmod g+w /usr/local/Cellar 

en supposant que votre utilisateur le compte est dans l'annonce de groupe min.

9

N'utilisez pas sudo lorsque vous travaillez avec brew (pour des raisons de sécurité).

Vous devez simplement configurer vos autorisations.

donc j'aller encore plus loin et modifier les autorisations:

sudo chgrp -R admin /usr/local /Library/Caches/Homebrew 
sudo chmod -R g+w /usr/local /Library/Caches/Homebrew 

et appliquer ensuite le groupe spécifique (soit admin ou staff) à l'utilisateur qui doit être autorisé à utiliser la commande brew. Vérifiez les groupes de votre utilisateur via: id -Gn).

S'il y a d'autres problèmes, exécutez: brew doctor pour voir ce qui ne va pas.

1

Cela se produit également si vous avez plusieurs utilisateurs sur votre ordinateur. Si tel est le cas, il est préférable de changer d'utilisateur car toute autre approche vous amènerait avec beaucoup plus de fichiers et de dossiers que simplement/usr/local/Cellar

Utilisez su userWhoInstalledBrew.

0

Le problème peut être résolu en changeant le propriétaire du répertoire à l'utilisateur actuel:

sudo chown -R $USER /usr/local 

Cette réponse est tirée de: https://github.com/Homebrew/homebrew/issues/17884

+0

Mise à jour pour les utilisateurs de High Sierra, '/ usr/local' ne peut plus être' chown'ed (voir [ici] (https://github.com/Homebrew/brew/issues/3228)). Les utilisateurs de High Sierra peuvent aussi devoir réinstaller Homebrew. –