Você quer dpkg . Especificamente, a opção -S encontrará qual pacote possui um arquivo.
Um exemplo:
$ dpkg -S /usr/bin/whereis
util-linux: /usr/bin/whereis
O exemplo mostra que util-linux é o pacote que contém /usr/bin/whereis .
Dado o nome de um binário (ou qualquer outro programa). Como descobrir qual pacote fornece esse binário?
Observação: Assumindo que um usa apt / dpkg para o gerenciamento de pacotes.
Editar
Além da resposta correta abaixo, eu gostaria de acrescentar mais algumas informações: Na pergunta acima eu estava assumindo que o pacote correspondente estava instalado . Se isso não for não , existe um pacote chamado apt-file que poderia fazer o trabalho de qualquer maneira.
A pesquisa da ferramenta mysqldump pode ser feita com
$ apt-file --regexp search .*mysqldump$
Como resultado:
mariadb-client-10.0: /usr/bin/mysqldump
mysql-client-5.5: /usr/bin/mysqldump
Esta solução foi encontrada aqui , mas achei que poderia ser útil mencioná-la aqui.
Você quer dpkg . Especificamente, a opção -S encontrará qual pacote possui um arquivo.
Um exemplo:
$ dpkg -S /usr/bin/whereis
util-linux: /usr/bin/whereis
O exemplo mostra que util-linux é o pacote que contém /usr/bin/whereis .
dpkg --search /usr/bin/mysqldump
dpkg -S /usr/bin/mysqldump
O argumento de dpkg --search é um padrão de caractere curinga, para que você possa fazer coisas como dpkg -S bin/*dump .
Como alternativa, você pode pesquisar o banco de dados manualmente - são apenas arquivos de texto.
grep mysqldump /var/lib/dpkg/info/*.list
Em um sistema com vários pacotes instalados, dpkg -S pode ser lento porque ele precisa ler muitos arquivos pequenos em /var/lib/dpkg/info . Você pode instalar o dlocate que indexa arquivos instalados via pacotes deb da mesma forma que locate indexa todos os arquivos: a informação é um pouco obsoleto (por padrão, o banco de dados é atualizado todas as noites), mas a operação de consulta é mais rápida.
Tags apt package-management