updatedb: kann keine temporäre Datei für `/var/lib/mlocate/mlocate.db 'öffnen

14

Ich benutze den Befehl updatedb, um den Index zu aktualisieren, und erhalte

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

Zu Ihrer Information Der Befehl locate funktioniert, z

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

Wie kann ich dieses Problem beim Ausführen von updatedb beheben?

Michael Durrant
quelle

Antworten:

24

Sie müssen den Befehl updatedb als Superuser ausführen. Beispielsweise,

sudo updatedb
Manula Waidyanatha
quelle
Kann die einmal erstellte Datenbank von einem regulären Benutzer ( z. B. von crontab) ohne Superuser-Berechtigungen aktualisiert werden ?
Holdenweb
1
Die Update-Datenbank erstellt die Cache-Datei in / var / cache / locate / locatedb, die nur von root beschrieben werden kann. Daher kann der normale Benutzer den Befehl nicht ausführen. Es ist jedoch möglich, eine Datei an einem anderen Ort zu erstellen, die von einem normalen Benutzer beschrieben werden kann. (Aber das Problem ist, dass normale Benutzer nicht das gesamte Dateisystem lesen können)
Manula Waidyanatha
1

Wenn Sie keine Zeit haben und eine Datei suchen möchten, müssen Sie den sudo updatedbCache nicht aktualisieren. Stattdessen können Sie den locate -e filenameCache überspringen.

Shuhua Fan
quelle