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$ 

Як я можу подолати цю проблему при спробі запуску оновленого файлу?

Відповіді:


26

Ви повинні запустити оновлену команду як суперкористувача. Наприклад,

sudo updatedb

Після створення, чи може оновити базу даних звичайним користувачем ( наприклад, від crontab) без привілеїв суперкористувача?
holdenweb

1
Оновлення db створює кеш-файл у / var / cache / locate / locatedb, який може бути записаний лише корінь. Тому звичайний користувач не може запустити команду. Але можна створити файл в іншому місці, яке може записувати звичайний користувач. (Але проблема полягає в тому, що постійні користувачі не можуть прочитати всю файлову систему)
Manula Waidyanatha

1

Якщо вам не вистачає часу і ви хочете знайти файл, вам не потрібно sudo updatedbдля оновлення кешу. Натомість ви можете скористатися locate -e filenameпропуском кешу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.