'brew link unbound' devuelve '/ usr / local / sbin no se puede escribir' error

0

Estoy intentando instalar sin enlazar con el comando brew .

Aquí está la salida para 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.

Como puede ver, me pidieron que use brew link unbound para vincular a 1.6.7 sin enlazar.

Pero no pude vincularlo porque recibí el siguiente error:

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

Tengo el otro stackoverflow aquí .

Y la respuesta sudo chown -R $(whoami) /usr/local crea el siguiente error:

chown: /usr/local: Operation not permitted

Estoy usando macOS High Sierra versión 10.13.2. Y mi versión casera es 1.4.3.

¿Cómo puedo resolver este problema?

    
pregunta Brian 15.01.2018 - 10:32

1 respuesta

1

Por defecto / usr / local / sbin no existe. La carpeta se debe crear instalando brew, el propietario / los permisos se configuran en $ (whoami): admin / 775. La mayoría / todas las carpetas en / usr / local / son propiedad del usuario que instaló brew, eso es parte de la instalación y configuración predeterminadas.

Por otra parte, es posible que se haya instalado alguna herramienta de terceros en esta carpeta anteriormente (por ejemplo, AFAIR procexp o Smartmontools tiene que ser instalado allí. Entonces, los permisos / propietario probablemente estén configurados como root: wheel / 755 o root: wheel / 775

Para resolver su problema, verifique si / usr / local / sbin existe y sus permisos de carpeta.

El siguiente comando crea esta carpeta si no existe y hace que se pueda escribir en todo el mundo, pero no cambia de propietario: grupo:

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

Ahora puedes enlazar sin unir:

brew link unbound

Puedes deshacer el paso de escritura del mundo con:

sudo chmod 775 /usr/local/sbin

No olvide agregar la carpeta al PATH de su usuario en ~ / .bash_profile o el PATH del sistema en / etc / paths.

Si aparece el error:

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

el usuario no tiene permisos para escribir en la carpeta con el comando realmente ejecutado.

El comando sudo chown -R $(whoami) /usr/local cambiará el propietario de todas las subcarpetas y su contenido a $ (whoami) a pesar del error chown: /usr/local: Operation not permitted . La única excepción será un elemento protegido por SIP en / usr / local /. Sin embargo, de forma predeterminada, ninguno de los archivos y carpetas está protegido.

Por lo tanto, el mensaje de error es erróneo y probablemente ya haya tenido éxito al ingresar su comando sudo chown -R ... y debería haber intentado simplemente vincular sin consolidar una vez más.

Puede verificar los permisos de la carpeta ingresando:

ls -lae /usr/local/sbin

Puede obtener todos los elementos protegidos en los subdirectorios de local ingresando:

ls -lae -R /usr/local | grep restricted
    
respondido por el klanomath 15.01.2018 - 23:30

Lea otras preguntas en las etiquetas