¿Cómo arreglar los permisos caseros?
He desinstalado e instalado Homebrew 3 veces porque parece que nunca me permite instalar nada ya que me niega permisos al final de la mayoría de las instalaciones.
Como ejemplo, publicaré este escenario de descarga de libjpeg al que me enfrento actualmente.
Intento instalar libjpeg y obtengo:
$ brew install libjpeg
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/jpeg-8d.mountain_lion.bottle.1.tar.gz
Already downloaded: /Library/Caches/Homebrew/jpeg-8d.mountain_lion.bottle.1.tar.gz
==> Pouring jpeg-8d.mountain_lion.bottle.1.tar.gz
Warning: Could not link jpeg. Unlinking...
Error: The brew link step did not complete successfully
The formula built, but is not symlinked into /usr/local
You can try again using `brew link jpeg'
Error: Permission denied - /usr/local/opt/jpeg
'brew link jpeg' da como resultado
Error: Permission denied - /usr/local/opt/jpeg
Esto es lo que lee mi doctor cervecero.
$ brew doctor
Warning: "config" scripts exist outside your system or Homebrew directories.
./configure scripts often look for *-config scripts to determine if
software packages are installed, and what additional flags to use when
compiling and linking.
Having additional scripts in your path can confuse software installed via
Homebrew if the config script overrides a system or Homebrew provided
script of the same name. We found the following "config" scripts:
/Library/Frameworks/Python.framework/Versions/2.7/bin/python-config
/Library/Frameworks/Python.framework/Versions/2.7/bin/python2-config
/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7-config
Warning: You have unlinked kegs in your Cellar
Leaving kegs unlinked can lead to build-trouble and cause brews that depend on
those kegs to fail to run properly once built. Run brew link on these:
jpeg
Este problema de permiso ha hecho que sea imposible usar cerveza en cualquier cosa y realmente agradecería cualquier sugerencia.
Pude resolver el problema usando chown
en la carpeta:
sudo chown -R "$USER":admin /usr/local
También (muy probablemente) tendrás que hacer lo mismo en /Library/Caches/Homebrew
:
sudo chown -R "$USER":admin /Library/Caches/Homebrew
Aparentemente lo había usado sudo
antes de una manera que alteró el permiso de mi carpeta /usr/local
, de aquí en adelante todas las instalaciones con brew han demostrado ser exitosas.
Esta respuesta es cortesía del rastreador de problemas homebrew de gitHub.
Nuevo comando para usuarios de macOS High Sierra, ya que no es posible chown
activarlo /usr/local
:
bash/zsh
:
sudo chown -R $(whoami) $(brew --prefix)/*
fish
:
sudo chown -R (whoami) (brew --prefix)/*
Referencia: No se puede chown /usr/local en High Sierra
Como primera opción para quien aterrice aquí como lo hice yo, siga lo que esto le sugiera hacer:
brew doctor
Es el camino más seguro y, entre otras cosas, me sugirió:
sudo chown -R $(whoami) /usr/local
lo que resolvió ese problema de permisos.
El OP hizo precisamente eso pero aparentemente no entendió la sugerencia anterior; es posible, y siempre es mejor empezar por ahí, y sólo después buscar soluciones no triviales si no ha ayudado.
Si estás en OSX High Sierra, /usr/local
ya no puedes ser chown
'd. Puedes usar:
sudo chown -R $(whoami) $(brew --prefix)/*