updatedb: tidak dapat membuka file sementara untuk `/var/lib/mlocate/mlocate.db '

15

Saya pergi menggunakan perintah updatedb untuk memperbarui indeks dan saya dapatkan

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

fyi Perintah loc berfungsi, mis

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

Bagaimana saya bisa mengatasi masalah ini ketika mencoba menjalankan updatedb?

Michael Durrant
sumber

Jawaban:

25

Anda harus menjalankan perintah updatedb sebagai pengguna super. Sebagai contoh,

sudo updatedb
Manula Waidyanatha
sumber
Setelah dibuat, dapatkah basis data diperbarui oleh pengguna biasa ( mis. Dari crontab) tanpa hak istimewa pengguna super?
holdenweb
1
Pembaruan db membuat file cache di / var / cache / temukan / locatedb, yang hanya dapat ditulis oleh root. Jadi pengguna biasa tidak dapat menjalankan perintah. Tetapi dimungkinkan untuk membuat file di lokasi berbeda yang dapat ditulis oleh pengguna biasa. (Tetapi masalahnya adalah pengguna biasa tidak dapat membaca keseluruhan sistem file)
Manula Waidyanatha
1

Jika Anda kekurangan waktu dan ingin mencari file, Anda tidak perlu sudo updatedbmemperbarui cache. Sebagai gantinya, Anda dapat menggunakan locate -e filenameuntuk melewati cache.

Shuhua Fan
sumber