J'ai un Mac qui est partagé entre deux ingénieurs. Les deux ont des comptes d'utilisateurs distincts. Les deux doivent exécuter brew update
et brew install...
parfois.
Comment puis-je configurer cela sans obtenir des erreurs comme: /usr/local must be writable!
?
Oui, je pourrais avoir UserA
reprendre les autorisations de /usr/local
à chaque fois qu'il veut utiliser brew (et la même chose avec UserB
), mais cela semble être un problème inutile.
Hombrew installe des packages dans /usr/local
, vous ne pouvez rien y faire sans casser la plupart des packages qu'il installe. Ajoutez des autorisations de lecture et d'écriture pour tous les utilisateurs comme ceci:
Sudo chmod -R +rw /usr/local
Soyez conscient du fait qu'il s'agit d'un dossier système, tous les utilisateurs partageront la même installation d'infusion. Un utilisateur peut supprimer les packages que d'autres ont installés, etc. Assurez-vous donc de coordonner pour éviter les problèmes.
Vous pouvez également modifier les autorisations de groupe en administrateur ou en un autre groupe dans lequel vos deux utilisateurs se trouvent:
chgrp -R admin /usr/local
chmod -R g+w /usr/local
Source d'origine: https://Gist.github.com/jaibeee/9a4ea6aa9d428bc77925
MISE À JOUR:
Dans macOS High Sierra, vous ne pouvez pas modifier le propriétaire, le groupe ou les autorisations de /usr/local
. Vous devez donc modifier le groupe et les autorisations des sous-dossiers:
chgrp -R admin /usr/local/*
chmod -R g+w /usr/local/*
[~ # ~] mise à jour [~ # ~] Septembre 2018, High Sierra 10.13.6
brew
se trouvent dans le groupe admin Nécessite un accès/des privilèges pour utiliser la commande Sudo
echo $(brew --prefix)
echo $(groups $(whoami))
Sudo dseditgroup -o edit -a $(whoami) -t user admin
Sudo chgrp -R admin $(brew --prefix)
Sudo chmod -R g+rwX $(brew --prefix)
ls -lah $(brew --prefix)
Ceci est une version modifiée de la réponse de ser4815162342 , qui n'a pas fonctionné pour moi hors de la boîte.
brew-usergroup
. Ajoutez tous les utilisateurs qui travaillent avec brew au groupe (comme dans la capture d'écran ci-jointe à partir d'un macOS allemand).Dans le terminal, procédez comme suit:
echo $(brew --prefix)
echo $(groups $(whoami))
Sudo dseditgroup -o edit -a $(whoami) -t user brew-usergroup
Sudo chgrp -R brew-usergroup $(brew --prefix)/*
Sudo chmod -R g+rwX $(brew --prefix)/*
ls -lah $(brew --prefix)
Notez que cela ne modifie plus les droits des dossiers d'infusion (comme dans les autres réponses), il modifie les sous-dossiers/fichiers des dossiers d'infusion. brew install
devrait maintenant fonctionner correctement sans erreurs.
Ce qui précède fonctionne bien, mais si vous souhaitez que les nouveaux fichiers héritent automatiquement de ces autorisations, définissez une ACL qui sera héritée (sinon, seul l'utilisateur qui verse une bouteille peut la supprimer). Trucs trouvés pour le faire ici: https://Gist.github.com/nelstrom/498864
Comme root
s'exécute une fois (en supposant que tous les utilisateurs du groupe "admin" devraient avoir accès):
cd /usr/local
chmod -R +a "group:admin allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" *
chgrp -R admin *
chmod -R g+rwX *
ls -lae .
le -e
sur ls
affiche les ACL.
Chaque réponse qui tente de pirater les autorisations ou Sudo est fausse. N'utilisez pas Sudo et ne partagez pas une seule installation d'infusion entre les comptes d'utilisateurs.
La bonne réponse est de ne pas utiliser plus d'une installation d'infusion "normale" sur une machine et pour tous les autres utilisateurs d'installer une version locale de l'infusion. Cela peut être fait en développant une archive tar dans un répertoire appartenant à votre utilisateur et en incluant son répertoire bin à l'avant de votre PATH. Alternativement, on peut faire une extraction git de deux dépôts source.
Pour l'approche git, vous aurez besoin de homebrew-core et brew .
Choisir arbitrairement mon répertoire personnel pour les vérifier:
cd $ HOME; git clone [email protected]: Homebrew/homebrew-core.git; git clone [email protected]: Homebrew/brew.git
puis changez ensuite votre CHEMIN pour préférer notre nouveau répertoire de bacs de brassage.
export PATH = $ HOME/brew/bin: $ PATH
Puisqu'il s'agit d'une nouvelle installation, vous devez installer tous les packages de brassage souhaités (à nouveau).
La meilleure solution consiste à ajouter un enregistrement sudoers pour permettre à l'utilisateur non privilégié "joe" d'exécuter n'importe quelle commande liée à "brew" en tant qu'administrateur.
Créez un fichier sur /etc/sudoers.d/joe avec le contenu suivant:
joe ALL=(administrator) NOPASSWD: /usr/local/bin/brew
Ensuite, vous pouvez exécuter une infusion comme ceci:
Sudo -Hu administrator brew install <smth>