como posso alterar o local de armazenamento de /var/lib/mlocate.db?

5

É um arquivo grande para mim e gostaria de colocá-lo em um disco rígido diferente do que a minha partição raiz está ativada.

Gostaria de acrescentar: gostaria que isso funcionasse para as execuções automáticas do updatedb. Eu verifiquei as man pages para o updatedb.conf e não pude ver nada que me permitisse mudar o caminho.

    
por evencoil 23.02.2011 / 15:19

4 respostas

1

No Ubuntu, o local padrão do banco de dados é compilado no binário mlocate , então é difícil alterá-lo. Você pode definir a variável LOCATE_PATH, mas o arquivo de banco de dados mencionado lá será usado apenas como um banco de dados adicional, não o padrão.

Como solução alternativa - qual é o tamanho do seu arquivo .db ? No meu sistema é 5 MiB, isso é um problema real? Não seria mais fácil remover alguns caminhos que você não precisa procurar por locate (veja man updatedb.conf ) e tornar o arquivo menor dessa maneira?

    
por arrange 23.02.2011 / 20:15
3

Você pode verificar se a sua versão do updatedb suporta o parâmetro --output FILE e torná-lo um alias para suas sessões bash e especificá-lo em seus trabalhos agendados.

Você também deve usar o locate com o parâmetro --database FILE

Como afirma o evencoil, não há possibilidade de usar um link simbólico porque o updatedb recria o arquivo em cada chamada.

    
por theist 23.02.2011 / 15:25
1

Apenas usando um link simbólico vem à mente.

  1. Mova mlocate.db para sua outra unidade, digamos que ela acaba em /some/path/mlocate.db .
  2. Vá para a pasta correta

    cd /var/lib
    
  3. Crie um symlink

    ln -s /some/path/mlocate.db mlocate.db
    

Note que eu não testei isso, mas o raciocínio por trás disso parece correto o suficiente para mim. Caso não se comporte como esperado, apenas reverta suas ações removendo o link simbólico e movendo o arquivo real de volta para o local.

    
por Ward Muylaert 23.02.2011 / 22:12
0

Embora a criação de um link para mlocate.db não funcione, os sistemas modernos (por exemplo, Debian jessie) armazenam o banco de dados em um diretório, que você pode vincular simbolicamente a outro local. Portanto, você pode vincular o diretório /var/lib/mlocate a outra unidade da seguinte maneira.

test -d /var/lib/mlocate &&
rm -rf /var/lib/mlocate &&
mkdir /large-disk/mlocate &&
ln -s /large-disk/mlocate /var/lib/mlocate &&
echo OK
    
por Diomidis Spinellis 27.04.2017 / 21:02

Tags