Lo uso homebrew
como administrador de paquetes para ciertas aplicaciones de desarrollo web. Para mantenerme brew
actualizado, ejecuto update brew
cada dos días y también ejecuto brew doctor
. Por lo general, esto está bien y brew
me dice que estoy listo para preparar.
De vez en cuando, sin embargo, me sale el siguiente error:
Advertencia: /usr/local/etc no se puede escribir.
Esto puede suceder si "sudo make install" software que no está administrado por Homebrew. Si una fórmula intenta escribir un archivo en este directorio, la instalación fallará durante el paso del enlace.
Probablemente deberías
chown
/usr/local/etcAdvertencia: No se puede escribir en el directorio /usr/local. Incluso si se podía escribir en este directorio cuando instaló Homebrew, otro software puede cambiar los permisos en este directorio. Se sabe que algunas versiones del componente "InstantOn" de Airfoil hacen esto.
Probablemente debería cambiar la propiedad y los permisos de /usr/local a su cuenta de usuario.
Es bastante fácil restablecer los permisos a mi nombre de usuario. Después brew
parece estar bien.
Pero, ¿qué está causando que esto suceda?
¿Hay un registro que muestre qué está causando que cambien los permisos?
Tuve exactamente el mismo problema, y resulta que la actualización automática de Sophos fue la culpable. Me di cuenta de esto ejecutando:sudo fs_usage | grep "usr/local"
Tomó un tiempo, pero finalmente vi que el daemon "Instalación" de Sophos, llamado de manera útil, se metió con los permisos de /usr/local.
Todavía estoy tratando de encontrar una solución adecuada para este comportamiento.
EDITAR: Creo que Sophos solucionó este problema, vea el enlace en los comentarios de esta respuesta. ¡Parece estar arreglado para mí al menos!
Resulta que Filewave es el culpable. Filewave es un software de administración de sistemas utilizado por nuestra escuela para enviar actualizaciones de software. Gracias por el aporte.
Solo tengo una idea aproximada de cómo obtener el permiso del ladrón. Esta no es una solución a su problema, sino más bien una especie de solución alternativa.
¿Qué hay de escribir un perro guardián en Automator o con Hazel (acciones de carpeta) para ver esta carpeta en particular, pero en lugar de agregar una función como Escalar imágenes, simplemente usa un shellscript que ejecuta varios comandos de shell?
fuser <foldername>
.ps auxwwwwww | grep <process id>
) y finalmenteDesafortunadamente, no soy un sadhu de Automator, pero descubrí por Google que hay muchas soluciones para un problema similar.
Si usa Time Machine, puede encontrar la hora aproximada en que cambiaron los permisos explorando Backups.backupdb
en la Terminal. Úselo ls -ld
en las carpetas con marca de tiempo, por ejemplo
ls -ld /Volumes/Backup/Backups.backupdb/Mac/2015-12-25-120000/Macintosh\ HD/usr/local
Que mostrará la información del propietario y del grupo.
Una vez que tenga la fecha en que ocurrió el cambio, puede averiguar qué más podría haber cambiado en su sistema. Una técnica simple es usar el Archivo de Finder › Buscar y agregar un Last modified date
criterio. Otras buenas herramientas son find
y mdfind
en Terminal.
Este es un efecto secundario de actualizar su sistema; OS X probablemente realiza alguna "reparación" general de permisos durante el proceso de actualización, ya que /usr/local está anidado en una carpeta propiedad de la raíz.
¿Ha utilizado Disk Utility
seleccionar Macintosh HD
, luego ejecutar Verify Disk Permission
y luego Repair Disk Permission
, si es necesario, en lugar de hacerlo manualmente?
Ahora bien, esto no debería solucionar su problema, pero es un buen punto de partida 'conocido' para ver cuándo Home-Brew cambia los permisos. Podría mostrar el problema subyacente si tienes suerte.
También new update -v
para una salida más detallada, además de los registros antiguos están aquí ~/Library/Logs/Homebrew
según ¿Dónde se registra homebrew?
Disk Utility
no verificaría ni repararía los permisos /usr/local
ya que este directorio no existe en una nueva instalación de Yosemite./usr/local
mía y ejecutando DU
. No hay ninguna /usr/local
dentro del DU
registro. Y /usr/local
todavía me pertenece.
mmmmmm
fd0
/usr/local
. Pero si insiste, entonces podría hacerlomake install
sin usarsudo
paquetes que usted mismo instale.Otros
mmmmmm
Otros
Webaholik
mspasov
mmmmmm
dan
/usr/local
?