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?

Antworten:


24

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

sudo updatedb

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.