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?

Respostas:


24

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

sudo updatedb

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.