updatedb: impossible d'ouvrir un fichier temporaire pour `/var/lib/mlocate/mlocate.db '


15

Je vais utiliser la commande updatedb pour mettre à jour l'index et j'obtiens

updatedb: can not open a temporary file for `/var/lib/mlocate/mlocate.db'

fyi La commande de localisation fonctionne, par exemple

$ locate Index.xml
/usr/share/mysql/charsets/Index.xml
durrantm.../durrantm$ 

Comment puis-je surmonter ce problème lorsque j'essaie d'exécuter updatedb?

Réponses:


26

Vous devez exécuter la commande updatedb en tant que super utilisateur. Par exemple,

sudo updatedb

Une fois créée, la base de données peut-elle être mise à jour par un utilisateur régulier ( par exemple de crontab) sans privilèges de super-utilisateur?
holdenweb

1
La base de données de mise à jour crée le fichier cache dans / var / cache / Locate / locatedb, qui n'est accessible en écriture que par root. L'utilisateur normal ne peut donc pas exécuter la commande. Mais il est possible de créer un fichier dans un emplacement différent qui est accessible en écriture par un utilisateur régulier. (Mais le problème est que les utilisateurs réguliers ne peuvent pas lire tout le système de fichiers)
Manula Waidyanatha

1

Si vous manquez de temps et souhaitez localiser un fichier, vous n'en avez pas besoin sudo updatedbpour mettre à jour le cache. Au lieu de cela, vous pouvez utiliser locate -e filenamepour ignorer le cache.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.