Como descubro de que pacote Debian veio um arquivo?
fonte
Como descubro de que pacote Debian veio um arquivo?
Existem vários utilitários no Debian que executam esta tarefa; verifique esta página para obter uma descrição. Vou mencionar dois deles, apt-file
e dlocate
.
apt-file
pesquisa seu cache interno, permitindo que você não instale todos os pacotes que deseja pesquisar. Abaixo você encontrará um guia mais detalhado.
dlocate
é uma alternativa rápida a dpkg -L
(o comando que lista o conteúdo do pacote) e, portanto, pesquisa apenas pacotes instalados. A pesquisa é realizada por dlocate -S file.name
.
Além disso, você pode pesquisar pacotes online usando o servidor packages.debian.org (a seção Pesquisar o conteúdo dos pacotes ).
apt-file
É uma boa ideia atualizar primeiro:
sudo apt-get update
Veja o que apt-file
é para:
apt-cache show apt-file
Instale-o:
sudo apt-get install apt-file
Leia os dados dos repositórios (isso funciona também sem, sudo
mas cria o cache do usuário; com sudo
o cache em todo o sistema):
sudo apt-file update
Realize a pesquisa. Neste exemplo, queremos saber em qual pacote xrandr
executável é:
apt-file search xrandr
Ele lista muitos pacotes com unxrandr
, lxrandr.mo
ou source_lxrandr.py
. Não é muito útil no nosso caso. Pesquisa mais inteligente:
apt-file search -x /xrandr$
( $
indica o fim da linha). Exemplo de saída:
bash-completion: /usr/share/bash-completion/completions/xrandr
x11-xserver-utils: /usr/bin/xrandr
O primeiro resultado não parece executável, o segundo parece. Podemos investigar mais. Corre:
apt-cache show x11-xserver-utils
Bingo! Este é o pacote.
Onde bash é o nome do pacote.
fonte
dpkg-query -S
E o envia pelo caminho errado da instalação de pacotes opcionais.Outra alternativa:
No meu Ubuntu, pelo menos, ambos parecem estar no
dpkg
pacote, então não há vantagem real para nenhum específico ...fonte
Os arquivos gerados pela instalação não serão encontrados por
dpkg -S
, como mencionado em: https://askubuntu.com/a/667227/52975Por exemplo,
/bin/nc
aparece quando você instala o pacotenetcat-openbsd
.Mas depois:
nós recebemos
dpkg-query: no path found matching pattern /bin/nc
.Isso acontece porque
/bin/nc
é gerado pelaupdate-alternatives
chamada no script postinst que é executado após a instalação.Funciona assim porque outra versão
/bin/nc
é fornecida pelonetcat-traditional
pacote.Eu não acho que exista uma maneira geral de encontrar esses arquivos gerados. No caso específico de links simbólicos alternativos, podemos apenas seguir o link com
readlink -f
:fonte
Não conhecendo o Debian, fiquei perplexo quando tentei o seguinte:
Um pouco de investigação e encontrei o pacote:
fonte