updatedb: не могу открыть временный файл для `/var/lib/mlocate/mlocate.db '


15

Я использую команду updatedb для обновления индекса и получаю

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

FYI команда locate работает, например,

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

Как я могу преодолеть эту проблему при попытке запустить updatedb?

Ответы:


26

Вы должны запустить команду updatedb как суперпользователь. Например,

sudo updatedb

Может ли созданная база данных быть обновлена ​​обычным пользователем ( например, от crontab) без прав суперпользователя?
holdenweb

1
Обновление базы данных создает файл кэша в / var / cache / locate / locationb, который доступен для записи только пользователю root. Поэтому обычный пользователь не может запустить команду. Но возможно создать файл в другом месте, доступный для записи обычному пользователю. (Но проблема в том, что обычные пользователи не могут прочитать всю файловую систему)
Manula Waidyanatha

1

Если вам не хватает времени и вы хотите найти файл, вам не нужно sudo updatedbобновлять кеш. Вместо этого вы можете использовать, locate -e filenameчтобы пропустить кэш.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.