Durante la instalación tig, HomeBrewmuestra 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

Respuestas:
Después de la respuesta de Alex pude resolver este problema; Parece que se trata de un problema no específico de los paquetes que se instalan, sino de los permisos de las
homebrewcarpetas.Para algunos paquetes, también puede necesitar hacer esto
/usr/local/shareo/usr/local/opt:fuente
sudo chown -Rwhoami:admin /usr/local/binequivalente al comando en la respuesta, sin la necesidad de reemplazarloyourusenamecon su nombre de usuario real?usr/local/optrecursivamente. Funcionó después de eso./usr/local/bin(y amigos) parecen revertir adrwxr-xr-x+yroot wheeltodos los días. Debo volver a configurar los permisos cada vez que quierabrew install. ¿Asumo que el sistema operativo está restableciendo los permisos para protegerme? ¿Cómo puedo hacer que pare? (Lo he intentadochflags uchg …pero eso evita que se instale brew)En lugar de ejecutar cualquier comando en particular, recomendaría ejecutar
brew doctory tomar en serio todas las advertencias. Puede haber otros problemas en los que se quede atascado y que no se puedan capturar en esta pregunta.Además, a medida que brew se actualiza con el tiempo, determinados comandos pueden o no seguir siendo válidos.
brew doctor, sin embargo, se asegurará de que tenga una solución de problemas actualizada.fuente
brew doctorno solucionará el problema, solo le informará al respecto, y cuando sigue el consejo del médico, brew dice que no puede hacerlo. Eso no es una soluciónLas otras respuestas son correctas, hasta donde llegan, pero no responden por qué este problema podría estar ocurriendo y cómo abordar esa causa raíz.
Porque
Hay dos causas posibles para este problema:
brew doctorsugiere, si lo ejecutas.Solución
Homebrew multiusuario
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 esa no es una gran idea.
Las instrucciones detalladas se pueden encontrar en línea , pero la respuesta rápida es esta:
Crea un grupo llamado brew:
sudo chgrp -R brew /usr/localsudo chmod -R g+w /usr/localsudo chgrp -R brew /Library/Caches/Homebrewsudo chmod -R g+w /Library/Caches/HomebrewUsuario único Homebrew
Si no está intentando usar más de un usuario con Homebrew, entonces la solución provista por las otras respuestas, basada en las sugerencias de,
brew doctorprobablemente sea suficiente:sudo chown -R $(whoami) /usr/localsudo chown -R $(whoami) /Library/Caches/HomebrewVerificación
Después de estos pasos,
brew doctordebe informar el éxito de cualquier usuario en el grupo de café , suponiendo que haya cerrado la sesión y vuelva a ingresar para aplicar las nuevas membresías del grupo (si siguió la ruta multiusuario). Si solo corrigió las cosas para homebrew de un solo usuario, no debería ser necesario cerrar sesión y volver a iniciarla, ya que ninguna de las membresías de su grupo ha cambiado.fuente
/usr/local/binde escritura grupal, especialmente. en un entorno multiusuario ¿Es esta realmente la forma de elaboración "oficial"?Para aquellos que están buscando
/usr/local/sbinno hay error de escritura:ACTUALIZACIÓN: podría ser,
/usr/local/someOtherFolderNamepor ejemplo/usr/local/include. Solo necesita crear esa carpeta con:sudo mkdir someOtherFolderNamePrimero cree la
sbincarpeta, tenga en cuenta que esto requieresudoprivilegioscd /usr/localsudo mkdir sbinsudo chown -R $(whoami) $(brew --prefix)/*brew link yourPackageNamefuente
PATH=$PATH:/usr/local/sbinEncontré para mi configuración particular que los siguientes comandos funcionaron
Y luego eso me mostró dónde estaban mis errores, y luego este comando ligeramente diferente del comentario anterior.
fuente
brew doctorbrew doctores bueno.Encontré el mismo problema, podemos resolverlo en tres pasos:
Paso 1
Paso 2
Paso 3
Si aún tiene algún problema de vinculación, digamos
mysql, solo escribaEsto funcionará
fuente
Para aquellos que se encuentran con este problema (otorgado 4 años después de que se realizó esta publicación) mientras ejecutaban Mac OS High Sierra, los pasos descritos aquí me resolvieron el problema. Esencialmente solo describe la desinstalación y reinstalación de brew.
https://medium.com/@mrkdsgn/brew-error-on-macos-high-sierra-check-you-have-permission-to-write-to-usr-local-e8bd1c6a22d4
Después de ejecutar esos pasos,
brew linkfuncionó como un encanto!fuente
Para mí la solución era correr
brew update.Entonces, HAGA ESTO PRIMERO.
Esta podría ser una práctica normal para personas familiarizadas con homebrew, pero no soy una de esas personas.
Editar: descubrí que necesitaba actualizar ejecutando
brew doctorsegún lo sugerido por la respuesta de @ kinnth a esta misma pregunta.Un flujo de trabajo de resolución de problemas general podría verse así: 1. ejecutar
brew update2. si eso no ayuda a ejecutarbrew doctory seguir sus instrucciones 3. si eso no ayuda a verificar el desbordamiento de la pilafuente
Al hacer brew link node Además, también obtuve los siguientes problemas:
Error: No se pudo escribir el enlace simbólico include / node / usr / local / include no se puede escribir.
Vinculación /usr/local/Cellar/node/9.3.0 ... Error: Permiso denegado @ dir_s_mkdir - / usr / local / lib
Para resolver lo anterior simplemente vaya a / usr / local / y verifique la disponibilidad de las carpetas 'incluir' y 'lib', si esas carpetas no están disponibles, simplemente créelas manualmente.
Y ejecute brew install node nuevamente
fuente
Esto se debe a que el usuario actual no tiene permiso para escribir en esa ruta. Entonces, para cambiar los permisos r / w (lectura / escritura) puede usar 1. terminal o 2. Ventana gráfica "Obtener información".
1. Usando Terminal
Google cómo usar los comandos chmod / chown (modo de cambio / cambio de 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 de r / w:
Recuerde volver a cambiar el permiso a "solo lectura" después de su trabajo temporal, si es posible
fuente
He encontrado lo siguiente relevante para los usuarios de Sophos Anti-Virus:
https://stackoverflow.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 / locales. Sophos ha parcheado esto y la solución se incluye con la versión 9.4.1.
fuente
Mi problema fue
chownno ayudó, pero seguí losbrew doctorconsejos y esta advertencia me ayudó:Después de
brew prunetodo funcionó bien!fuente
Para aquellos que no están familiarizados:
fuente
Si va a la carpeta en el buscador, haga clic derecho y seleccione "Obtener información", puede ir a la sección "Compartir y permisos" para la carpeta y permitir "Leer y escribir" a "todos"
Esto es lo que hago para que los enlaces simbólicos pasen con este error. También brew parece restablecer los permisos en la carpeta también como si no hubiera alterado nada
fuente
Si ya tiene un directorio
/usr/localpara el paquete que está instalando, puede intentar eliminar este directorio.En mi caso, había instalado previamente el paquete que estaba tratando de instalar sin usar brew, y luego lo desinstalé. Quedaba un directorio
/usr/local/<my_package>/de esa instalación anterior. Eliminé esta carpeta (sudo rm -rf /usr/local/<my_package>/) y después de eso el paso del enlace de preparación fue exitoso.fuente