Diferença entre localizar e mlocate


14

Eu queria instalar o comando locate, que está disponível via sudo apt-get installmlocate.

No entanto, executei pela primeira vez o sudo apt-get installlocateque parece ter instalado outra coisa.

Digitar o comando, locate <package>no entanto, parece ser necessário mlocate.

O que é o pacote locatee pode (deve) ser removido com segurança?


1
Acredito que o mlocate foi o substituto da localização original, mas isso foi há 15 anos e provavelmente um pacote é um alias ou referenciador para o outro. Há outra variante, "slocate", que observou a visibilidade de um arquivo com base nas permissões do usuário, mas não vi. Isso em muito tempo
Otheus 30/03

Respostas:


25

O pacote de localização é a implementação de localização do GNU findutils . O pacote mlocate é outra implementação do mesmo conceito chamado mlocate . Eles implementam a mesma funcionalidade básica: pesquisa rápida de nomes de arquivos com base em um índice que (normalmente) é reconstruído todas as noites. Eles diferem em algumas de suas funcionalidades além do uso básico. Em particular, a localização do GNU cria apenas um índice de arquivos legíveis pelo mundo (a menos que você o execute a partir da sua conta), enquanto o mlocate cria um índice de todos os arquivos, mas apenas permite que o usuário que está chamando veja os arquivos que ele poderia acessar. Isso torna o mlocate mais útil na maioria das circunstâncias, mas inutilizável em algumas instalações incomuns onde não é executado pelo administrador do sistema (porquemlocatetem que ser raiz setuid ) e um risco de segurança.

No Debian e derivados, se você instalar os dois, locateexecutará a mlocateimplementação e você precisará executar locate.findutilspara executar a implementação do GNU. Isso é gerenciado através de alternativas . Se os dois estiverem instalados, os dois passarão um tempo reconstruindo seu respectivo índice, mas, além disso, eles não entrarão em conflito.


2
Você esqueceu de mencionar mlocateo recurso principal, do qual ele recebe seu nome ("localização em fusão"): fornece uma versão updatedbque reutiliza seu índice antigo para melhorar o desempenho da atualização, consultando apenas listas de arquivos / subdiretórios nos diretórios em que os arquivos ctimeforam alterados. .
Ssokolow 17/07/2018

5

mlocate é uma implementação mais recente da localização. Depois de instalá- mlocatelo

alterará o binário / usr / bin / location para apontar para mlocate através do mecanismo de alternativas.

É por isso que você obtém o comportamento mlocate se você instalar nessa ordem.

Detalhes podem ser encontrados aqui


Na verdade, eu nunca instalado mlocate, mas no meu sistema Ubuntu 16.04,/usr/bin/locate -> /etc/alternatives/locate -> /usr/bin/mlocate
cayhorstmann
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.