Durante la instalación 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
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
homebrew
carpetas.Para algunos paquetes, también puede necesitar hacer esto
/usr/local/share
o/usr/local/opt
:fuente
sudo chown -R
whoami:admin /usr/local/bin
equivalente al comando en la respuesta, sin la necesidad de reemplazarloyourusename
con su nombre de usuario real?usr/local/opt
recursivamente. Funcionó después de eso./usr/local/bin
(y amigos) parecen revertir adrwxr-xr-x+
yroot wheel
todos 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 doctor
y 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 doctor
no 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 doctor
sugiere, 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/local
sudo chmod -R g+w /usr/local
sudo chgrp -R brew /Library/Caches/Homebrew
sudo chmod -R g+w /Library/Caches/Homebrew
Usuario ú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 doctor
probablemente sea 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 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/bin
de escritura grupal, especialmente. en un entorno multiusuario ¿Es esta realmente la forma de elaboración "oficial"?Para aquellos que están buscando
/usr/local/sbin
no hay error de escritura:ACTUALIZACIÓN: podría ser,
/usr/local/someOtherFolderName
por ejemplo/usr/local/include
. Solo necesita crear esa carpeta con:sudo mkdir someOtherFolderName
Primero cree la
sbin
carpeta, tenga en cuenta que esto requieresudo
privilegioscd /usr/local
sudo mkdir sbin
sudo chown -R $(whoami) $(brew --prefix)/*
brew link yourPackageName
fuente
PATH=$PATH:/usr/local/sbin
Encontré 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 doctor
brew doctor
es 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 link
funcionó 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 doctor
segú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 update
2. si eso no ayuda a ejecutarbrew doctor
y 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
chown
no ayudó, pero seguí losbrew doctor
consejos y esta advertencia me ayudó:Después de
brew prune
todo 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/local
para 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