apt-file
é o comando que você está procurando.
Eu instalei recentemente o java6 na minha caixa debian. Eu fui usar o javac e notei que não foi instalado. Eventualmente eu descobri (depois de procurar online) que o javac é parte do pacote java6-sdk. Esta não é a primeira vez que conheço o comando que quero, mas não sei o (s) pacote (s) em que está.
Minha pergunta é - existe uma maneira de descobrir na linha de comando qual arquivo pertence a qual pacote (s)? Então, se eu quisesse ver a quais pacotes o javac pertencia, ele listaria java6-sdk, java5-sdk, .. uma vez que todos contêm javac.
Você pode usar apt-file pesquisando nome do arquivo para isso. Você poderia simplesmente ir para Pacotes Debian e pesquisar a versão online.
Eu sei que isso não é exatamente o que você está procurando, mas:
dpkg -L packagename
listará todos os arquivos pertencentes a um pacote instalado . (mas você quer isso para pacotes desinstalados)
Eu não sei como isso acontece, mas o Ubuntu (derivado do Debian) sugere um pacote da seguinte forma:
$ chkrootkit
The program 'chkrootkit' is currently not installed. You can install it by typing:
sudo apt-get install chkrootkit
bash: chkrootkit: command not found
E muitas vezes fiz o óbvio e digitei o nome do arquivo junto com "Debian" no Google para encontrar o pacote.
você também pode querer olhar para o pacote dlocate. Ele tem muitas opções úteis para listar pacotes e arquivos dentro de pacotes. foi originalmente escrito para ser uma versão muito mais rápida do dpkg -L, dpkg -S etc, mas ganhou muitos recursos úteis ao longo dos anos (enquanto ainda mantém a velocidade:)
AVISO LEGAL: Sou o autor e o mantenedor debian do dlocate.
BTW, instale a versão do dlocate do testing ou unstable. Ele tem inúmeras melhorias sobre a versão em stable (em particular, não depende do GNU locate) e ainda funciona bem estável (não depende de nenhuma nova / atualizada biblioteca etc).