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?

Odpowiedzi:


26

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

sudo updatedb

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.