Hace años, podía salirse con la suya brew
como usuario root simplemente conociendo brew
a root, pero eliminaron esa característica. Entonces, en Homebrew 1.1.6, solía editar /usr/local/Homebrew/Library/Homebrew/brew.sh
para eliminar la verificación de raíz (la que decía que era "extremadamente peligrosa") para poder ejecutarla brew
como raíz.
La versión más nueva de Homebrew todavía funciona con eso, pero sigue volviendo el brew.sh
archivo cada vez que lo ejecuto brew
, incluso si lo hago chmod 500
. Podría escribir un script para cambiarlo y luego ejecutarlo brew
automáticamente, pero no estoy seguro de si esto siempre funcionará y no quiero arriesgarme. ¿Alguien ha encontrado un método diferente para ejecutar Homebrew como root?
brew
como root? Además, ¿sudo
no es suficiente para sus propósitos?sudo
lo ejecuta como root, y me da el mismo error "extremadamente peligroso". Quiero ejecutar como root porque de lo contrario tiene problemas para instalar ciertos paquetes, especialmente si algo se instaló no a través de Homebrew (por ejemplo, a través depip
). He recorrido esa ruta muchas veces. Además, no funciona correctamente para múltiples usuarios sin soluciones extrañas a menos que instale todo como root.root
es arriesgado. Incluso compilando un paquete sin un administrador de paquetes, compilaría el paquete como un usuario sin privilegios (usted mismo) y luego instalaría el paquete comoroot
consudo
. Los administradores de paquetes como Fink y MacPorts construyen con sus propios usuarios sin privilegios y luego los instalan comoroot
. Homebrew no tiene ese mecanismo.brew.sh
archivo se revierte después de modificarlo y luego ejecutar unbrew
comando. Entonces puedo corrersudo brew whatever
ybrew whatever
en conjunto muy bien. Mibrew --version
salida es así: para su informaciónHomebrew 1.2.1-98-g803f9cbf7b-dirty Homebrew/homebrew-core (git revision d3d6; last commit 2017-05-28)
, modifiqué mibrew.sh
archivo para comentar todas las líneas en lacheck-run-command-as-root
función y coloqué una solareturn
declaración en la parte superior de la función.Respuestas:
Después de realizar el cambio en el script, intente configurar el indicador inmutable en brew.sh.
No he probado Como regla general, no doy raíz a las aplicaciones cuyos desarrolladores me ruegan que no lo haga.
fuente
sudo brew install
ejecuta normalmente.Los usuarios típicos no deberían hacer esto, pero tú no eres típico, ¿verdad?
Dos cuestiones:
No puedes detener la raíz. Si insiste en usar root, entonces root puede sobrescribir
brew.sh
sin importar qué.No puedes parar
brew
, después de todo, estás hablando de correrbrew
.Entonces trabajaremos con eso. Vamos a configurar un alias para copiar y
brew.sh
luego ejecutarbrew
.(Arregle las rutas para que coincida con su sistema).
Ahora todo lo que necesitas hacer es:
(Se convertirá en raíz, se copiará
brew.sh
, luego se ejecutarábrew
como raíz con argumentos, luegobrew
se sobrescribirábrew.sh
y estará listo para hacerlo de nuevo)Nota: También puede poner
sudo
el alias, pero de esta manera se siente mejor porque se le pedirá una contraseña cada vez.Por lo general, no puede usar
setuid
(chmod u+s
) para rootear en scripts de shell, por seguridad. Perl tiene un programa separadosuidperl
que podría instalarse y podría aumentar los privilegios del usuario, pero tales soluciones son un poco profundas para una respuesta rápida.fuente