6 votos

MacOS Mojave - localizar no funciona

Tengo un MacBook de mi trabajo y quería usar el locate comando, pero recibo el mensaje:

WARNING: The locate database (/var/db/locate.database) does not exist.
To create the database, run the following command:

  sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

Please be aware that the database can take some time to generate; once
the database has been created, this message will no longer appear.

Corrí sudo launchctl y esperé un tiempo... Han pasado dos días y sigo viendo el mismo mensaje. Si he ejecutado sudo launchctl de nuevo me sale:

/System/Library/LaunchDaemons/com.apple.locate.plist: service already loaded

Buscó la base de datos y:

$ ls -l /var/db/locate.database
ls: /var/db/locate.database: No such file or directory

El archivo com.apple.locate.plist está configurado con el horario predefinido para actualizarse cada sábado a las 3:15

<key>StartCalendarInterval</key>
<dict>
    <key>Hour</key>
    <integer>3</integer>
    <key>Minute</key>
    <integer>15</integer>
    <key>Weekday</key>
    <integer>6</integer>
</dict>

Por lo tanto, se actualizará una vez que se haya ejecutado por primera vez. Estoy bajo Mojave (v10.14.2), nuevo MacBook con SSD y Core i7. locate debería tardar unos minutos en funcionar en máquinas nuevas, pero no es el caso.

¿Alguna idea de por qué no funciona y/o cómo hacerlo funcionar?

4voto

12padams Puntos 36

Amigo, podría empezar con launchctl:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.locate.plist

A continuación, compruebe si hay algún impedimento para obtener el privilegio de bloqueo exclusivo en la base de datos inexistente:

sudo fuser -fu /private/var/db/locate.database
sudo lsof /private/var/db/locate.database

A continuación, elimine cualquier proceso reportado por cualquiera de los dos comandos. A continuación, ejecute el generador de db a mano, precedido de un opensnoop para depurar si algo va mal. Tendrá que abrir una nueva ventana de terminal (tecla de comando - acceso directo N, creo) y ejecutar opensnoop allí, saliendo con una combinación de tecla Control - c.

sudo opensnoop -cegx -f /private/var/db/locate.database 

A continuación, a su tipo de ventana original:

sudo /usr/libexec/locate.updatedb

Recuerda salir de opensnoop con un cntrl-c en su ventana.

F.

4voto

Manasés Jesús Puntos 51

Estuve usando el MacBook durante unas tres semanas y lo puse a dormir todos los días. Por alguna razón desconocida locate no funcionaba. Para resolver el problema, ayudó el clásico "¿Has probado a encenderlo y apagarlo?" Después de reiniciar, funcionó.

Como ya se ha mencionado, locate está configurado para actualizar su base de datos todos los sábados, por lo que no encuentra ningún archivo nuevo creado antes de su actualización. Una solución es configurar el archivo .plist para que se actualice todos los días.

Y como sugirió @mateusz-szlosek, el comando mdfind es más eficiente y puede encontrar archivos creados recientemente usando la opción -name .

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X