6 votes

MacOS Mojave - La localisation ne fonctionne pas

J'ai obtenu un MacBook de mon travail et je voulais utiliser le locate mais je reçois le message :

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.

J'ai couru sudo launchctl et attendu un certain temps... Cela fait deux jours et je vois toujours le même message. Si j'ai exécuté sudo launchctl encore une fois, j'obtiens :

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

J'ai cherché la base de données et :

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

Le fichier com.apple.locate.plist est configuré avec le programme prédéfini pour se mettre à jour tous les samedis à 15h15.

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

Il sera donc mis à jour dès qu'il aura été exécuté pour la première fois. Je suis sous Mojave (v10.14.2), nouveau MacBook avec SSD et Core i7. locate devrait prendre quelques minutes pour fonctionner sur les nouvelles machines, mais ce n'est pas le cas ici.

Avez-vous une idée de la raison pour laquelle il ne fonctionne pas et/ou comment le faire fonctionner ?

3 votes

Comme je le vois dans la liste de contrôle, vous pouvez exécuter sudo /usr/libexec/locate.updatedb afin de construire la base de données plus tôt. BTW Vous pouvez utiliser mdfind pour rechercher des fichiers plus rapidement (elle utilise la base de données Spotlight).

4voto

Amigo, je pourrais commencer avec launchctl :

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

Vérifiez ensuite s'il existe des obstacles à l'obtention du privilège de verrouillage exclusif sur la base de données inexistante :

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

Ensuite, tuez tout processus signalé par l'une ou l'autre commande. Ensuite, exécutez le générateur de db à la main, précédé d'un opensnoop pour le débogage si quelque chose ne va pas. Vous devrez ouvrir une nouvelle fenêtre de terminal (touche commande - raccourci N, je crois) et y lancer opensnoop, en le quittant avec une combinaison de touches Control - c.

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

Revenez ensuite à votre type de fenêtre d'origine :

sudo /usr/libexec/locate.updatedb

N'oubliez pas de quitter opensnoop avec un cntrl-c dans sa fenêtre.

F.

4voto

Manasés Jesús Points 351

J'ai utilisé le MacBook pendant environ trois semaines et je le mettais en veille tous les jours. Pour une raison inconnue locate ne fonctionnait pas. Pour résoudre le problème, il a aidé le classique "avez-vous essayé de l'allumer et de l'éteindre ?" Après le redémarrage, ça a marché.

Comme déjà mentionné, locate est configuré pour mettre à jour sa base de données tous les samedis, il ne trouve donc aucun nouveau fichier créé avant sa mise à jour. Une solution de contournement consiste à définir le fichier .plist pour les mises à jour quotidiennes.

Et comme @mateusz-szlosek l'a suggéré, la commande mdfind est plus efficace et peut trouver des fichiers récemment créés en utilisant l'option -name .

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X