updatedb: não é possível abrir um arquivo temporário para `/var/lib/mlocate/mlocate.db '

14

Vou usar o comando updatedb para atualizar o índice e recebo

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

O comando de localização está funcionando, por exemplo,

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

Como posso superar esse problema ao tentar executar o updatedb?

Michael Durrant
fonte

Respostas:

24

Você precisa executar o comando updatedb como superusuário. Por exemplo,

sudo updatedb
Manula Waidyanatha
fonte
Uma vez criado, o banco de dados pode ser atualizado por um usuário comum ( por exemplo, de crontab) sem privilégios de superusuário?
holdenweb
1
A atualização db cria o arquivo de cache em / var / cache / localize / locatedb, que é gravável apenas pela raiz. Portanto, o usuário comum não pode executar o comando. Mas é possível criar um arquivo em local diferente, que seja gravável por um usuário comum. (Mas o problema é que os usuários regulares não podem ler todo o sistema de arquivos)
manula Waidyanatha
1

Se você não tiver tempo e deseja localizar um arquivo, não precisará sudo updatedbatualizá-lo. Em vez disso, você pode usar locate -e filenamepara ignorar o cache.

Shuhua Fan
fonte