homebrew - name - longitud title
Homebrew: no se pudo enlazar, no se puede escribir en/usr/local/bin (13)
Al instalar tig
, HomeBrew
muestra los siguientes problemas al instalar una dependencia:
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/a2x
/usr/local/bin is not writable.
You can try again using:
brew link asciidoc
Para aquellos que están buscando /usr/local/sbin
no se puede escribir el error:
ACTUALIZACIÓN: podría ser /usr/local/someOtherFolderName
por ejemplo, /usr/local/include
. Solo necesitas crear esa carpeta con:
-
sudo mkdir someOtherFolderName
Primero cree la carpeta sbin
, tenga en cuenta que esto requiere privilegios de sudo
cd /usr/local
sudo mkdir sbin
sudo chown -R $(whoami) $(brew --prefix)/*
brew link yourPackageName
Después de la respuesta de Alex, pude resolver este problema; Parece que este es un problema no específico de los paquetes que se instalan, sino de los permisos de las carpetas de homebrew
.
sudo chown -R `whoami`:admin /usr/local/bin
Para algunos paquetes, es posible que también deba hacer esto a /usr/local/share
o /usr/local/opt
:
sudo chown -R `whoami`:admin /usr/local/share
sudo chown -R `whoami`:admin /usr/local/opt
En lugar de ejecutar cualquier comando en particular, recomendaría ejecutar brew doctor
y tomarse todas las advertencias con seriedad. Puede haber otros problemas en los que se quede atascado y es posible que no se capture en esta pregunta.
Además, a medida que brew se actualiza con el tiempo, los comandos particulares pueden o no seguir siendo válidos. brew doctor
, sin embargo, se asegurará de que esté al día con la solución de problemas.
Encontré el mismo problema, podemos resolverlo en tres pasos:
Paso 1
sudo chown -R $(whoami) $(brew --prefix)/*
Paso 2
brew doctor
Paso 3
brew prune
Si todavía tiene algún problema de vinculación, digamos para mysql
, simplemente escriba
brew link mysql
Esto funcionará.
Esto se debe a que el usuario actual no tiene permiso para escribir en esa ruta. Por lo tanto, para cambiar los permisos r / w (lectura / escritura) puede usar 1. terminal, o 2. Ventana gráfica "Obtener información".
1. Usando la Terminal
Google cómo usar los comandos chmod / chown (cambiar modo / cambiar propietario) desde la terminal
2. Usando el gráfico ''Obtener información''
Puede hacer clic con el botón derecho en la carpeta / archivo del que desea cambiar los permisos, luego abrir Obtener información que le mostrará una ventana como la siguiente, en la parte inferior de la cual puede cambiar fácilmente los permisos r / w:
Recuerde volver a cambiar el permiso a "solo lectura" después de su trabajo temporal, si es posible
He encontrado lo siguiente relevante para los usuarios de Sophos Anti-Virus:
https://.com/a/32981184
https://community.sophos.com/products/free-antivirus-tools-for-desktops/f/17/t/10029
En resumen, Sophos está cambiando los permisos de ciertos directorios / usr / local. Sophos ha parcheado esto y la solución se incluye con la versión 9.4.1.
He encontrado para mi configuración particular los siguientes comandos trabajaron
brew doctor
Y luego eso me mostró dónde estaban mis errores, y luego este comando ligeramente diferente del comentario anterior.
sudo chown -R $(whoami) /usr/local/opt
Las otras respuestas son correctas, pero no responden por qué podría estar ocurriendo este problema y cómo abordar esa causa raíz.
Porque
Hay dos causas posibles para este problema:
- La instalación de homebrew se realizó con un usuario distinto al que está utilizando actualmente. Homebrew espera que solo el usuario que lo instaló originalmente quiera usarlo.
- Instaló algún software que escribe en / usr / local sin usar brew. Esta es la causa que sugiere
brew doctor
, si la ejecutas.
Solución
Multiusuario Homebrew
Si tiene varias cuentas de usuario y desea que más de una de ellas pueda usar brew, debe ejecutar algunos pasos; de lo contrario, tendrá que cambiar constantemente la propiedad de la estructura de archivos de Homebrew cada vez que cambie de usuario. y eso no es una gran idea
Las instrucciones detalladas se pueden encontrar en online , pero la respuesta rápida es esta:
Crea un grupo llamado brew:
- Preferencias de sistema abierto
- Haga clic en Cuentas
- Haz clic en el "+" (desbloquea primero si es necesario)
- En Nueva cuenta, seleccione Grupo.
- entrar en brew
- Haga clic en Crear grupo
- Seleccione el grupo de preparación y agregue las cuentas de usuario que desea utilizar elaborar.
- cambie la propiedad del grupo de carpetas / usr / local:
sudo chgrp -R brew /usr/local
- cambie los permisos para agregar escritura a / usr / local como grupo:
sudo chmod -R g+w /usr/local
- cambiar el grupo de directorio de caché de homebrew:
sudo chgrp -R brew /Library/Caches/Homebrew
- cambie los permisos del directorio de caché de homebrew:
sudo chmod -R g+w /Library/Caches/Homebrew
Homebrew de un solo usuario
Si no está tratando de usar más de un usuario con Homebrew, entonces la solución proporcionada por las otras respuestas, basada en las sugerencias de brew doctor
es probablemente suficiente:
sudo chown -R $(whoami) /usr/local
sudo chown -R $(whoami) /Library/Caches/Homebrew
Verificación
Después de estos pasos, brew doctor
debe informar el éxito de cualquier usuario en el grupo de elaboración , suponiendo que haya cerrado la sesión y vuelva a iniciar la sesión para aplicar las nuevas membresías de grupo (si se realizó la ruta de multiusuario). Si solo corrigió cosas para el usuario casero de un solo usuario, cerrar la sesión y volver a iniciarla no debería ser necesario ya que ninguna de las membresías de su grupo ha cambiado.
Mi problema fue
Error: Could not symlink share/man/man7/ABORT.7
/usr/local/share/man/man7 is not writable.
chown
no ayudó, pero seguí los consejos de brew doctor
y esta advertencia me ayudó:
Warning: Broken symlinks were found. Remove them with `brew prune`:
/usr/local/share/man/man3/*
Después de la brew prune
todo funcionó bien!
Mientras hacía el nodo de brew link Además, también tuve los siguientes problemas:
Error: No se pudo escribir el enlace simbólico include / node / usr / local / include.
Enlace de /usr/local/Cellar/node/9.3.0 ... Error: Permiso denegado @ dir_s_mkdir - / usr / local / lib
Para resolver lo anterior, solo vaya a / usr / local / y verifique la disponibilidad de las carpetas ''include'' y ''lib'', si esas carpetas no están disponibles, simplemente créelas manualmente.
Y ejecuta brew install node de nuevo.
Para aquellos que se encuentren con este problema (otorgado 4 años después de que se publicara esta publicación) mientras ejecutaba Mac OS High Sierra, los pasos que se describen a continuación solucionaron el problema para mí. Esencialmente solo describe la desinstalación y reinstalación de brew.
Después de ejecutar esos pasos, ¡ brew link
funcionó a la perfección!
Para mi la solución fue ejecutar brew update
.
Por lo tanto, haz esto primero.
Esta podría ser una práctica normal para las personas familiarizadas con Homebrew, pero no soy una de esas personas.
Edición: descubrí que necesitaba actualizar ejecutando brew doctor
según lo sugerido por la respuesta de @ kinnth a esta misma pregunta.
Un flujo de trabajo de solución de problemas general podría tener este aspecto: 1. ejecutar brew update
2. si eso no ayuda a ejecutar brew doctor
y seguir sus instrucciones 3. si eso no ayuda a controlar el desbordamiento de la pila
Si va a la carpeta en el buscador, haga clic con el botón derecho y seleccione "Obtener información", puede ir a la sección "Compartir y permisos" de la carpeta y permitir "Leer y escribir" para "todos"
Esto es lo que hago para hacer pasar los enlaces simbólicos con este error. También brew parece restablecer los permisos en la carpeta también como si no hubieras alterado nada