`brew link unbound` renvoie l'erreur` / usr / local / sbin n'est pas accessible en écriture`

0

J'essaye d'installer non lié en utilisant brew commander.

Voici la sortie pour brew install unbound:

Warning: unbound 1.6.7 is already installed, it's just not linked.
You can use `brew link unbound` to link this version.

Comme vous pouvez le voir, on m'a demandé d'utiliser brew link unbound faire un lien vers non lié 1.6.7.

Mais je n'ai pas réussi à faire le lien parce que j'ai eu l'erreur suivante:

Linking /usr/local/Cellar/unbound/1.6.7...
Error: Could not symlink sbin/unbound
/usr/local/sbin is not writable.

J'ai l'autre stackoverflow ici .

Et la réponse sudo chown -R $(whoami) /usr/local crée l'erreur suivante:

chown: /usr/local: Operation not permitted

J'utilise macOS High Sierra version 10.13.2. Et ma version homebrew est 1.4.3.

Comment puis-je résoudre ce problème?

Brian
la source
Veuillez ajouter dans votre QO la version de MacOS concernée par votre problème.
daniel Azuelos
Avez-vous essayé de courir en tant que sudo?
Praveen P

Réponses:

1

Par défaut, / usr / local / sbin n'existe pas. Le dossier devrait être créé en installant brew, le propriétaire / les autorisations sont définis sur $ (whoami): admin / 775. La plupart / tous les dossiers de / usr / local / appartiennent à l'utilisateur qui a installé brew - cela fait partie de l'installation et de la configuration par défaut.

Par ailleurs, un outil tiers peut avoir déjà été installé dans ce dossier (par exemple, AFAIR procéxp ou Smartmontools doivent y être installés). Ensuite, le propriétaire / les autorisations sont probablement définis sur root: wheel / 755 ou root: wheel / 775

Pour résoudre votre problème, vérifiez si / usr / local / sbin existe et ses autorisations de dossier.

La commande suivante crée ce dossier s'il n'existe pas et le rend accessible en écriture, mais ne change pas de propriétaire: groupe:

if [ ! -d /usr/local/sbin ]; then sudo mkdir /usr/local/sbin; fi && sudo chmod 777 /usr/local/sbin

Maintenant, vous pouvez créer un lien non lié:

brew link unbound

Vous pouvez défaire l’étape mondiale en écriture avec:

sudo chmod 775 /usr/local/sbin

N'oubliez pas d'ajouter le dossier à PATH de votre utilisateur dans ~ / .bash_profile ou à PATH du système dans / etc / path.


Si vous obtenez l'erreur:

Error: Could not symlink sbin/unbound
/usr/local/sbin is not writable.

l'utilisateur n'a pas l'autorisation d'écrire dans le dossier avec la commande réellement exécutée.

La commande sudo chown -R $(whoami) /usr/local changera le propriétaire de tous les sous-dossiers et leur contenu en $ (whoami) malgré l'erreur chown: /usr/local: Operation not permitted. La seule exception sera un élément protégé par SIP dans / usr / local /. Par défaut, aucun des fichiers et dossiers n'est protégé.

Le message d'erreur est donc erroné et vous avez probablement déjà réussi à entrer votre nom d'utilisateur. sudo chown -R ... commande et vous devriez avoir essayé de simplement lié non lié une fois de plus.

Vous pouvez vérifier les autorisations du dossier en entrant:

ls -lae /usr/local/sbin

Vous pouvez obtenir tous les éléments protégés dans les sous-répertoires de local en entrant:

ls -lae -R /usr/local | grep restricted
klanomath
la source