updatedb: nie można otworzyć pliku tymczasowego dla `/var/lib/mlocate/mlocate.db '

15

Idę użyć polecenia updatedb do aktualizacji indeksu i otrzymuję

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

fyi Działa polecenie locate, np

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

Jak rozwiązać ten problem, próbując uruchomić zaktualizowanyb?

Michael Durrant
źródło

Odpowiedzi:

26

Musisz uruchomić komendę updatedb jako superużytkownik. Na przykład,

sudo updatedb
Manula Waidyanatha
źródło
Czy po utworzeniu baza danych może być aktualizowana przez zwykłego użytkownika ( np. Od crontab) bez uprawnień superużytkownika?
holdenweb,
1
Baza danych aktualizacji tworzy plik pamięci podręcznej w katalogu / var / cache / locate / locationb, który może być zapisywany tylko przez root. Dlatego zwykły użytkownik nie może uruchomić polecenia. Możliwe jest jednak utworzenie pliku w innej lokalizacji, który może być zapisany przez zwykłego użytkownika. (Ale problem polega na tym, że zwykli użytkownicy nie mogą odczytać całego systemu plików)
Manula Waidyanatha,
1

Jeśli brakuje Ci czasu i chcesz zlokalizować plik, nie musisz tego robić sudo updatedb, aby zaktualizować pamięć podręczną. Zamiast tego możesz użyć locate -e filenamedo pominięcia pamięci podręcznej.

Fan Shuhua
źródło