Encontre o pacote aptitude desinstalado que fornece o comando [duplicate]

3

Qual é a melhor maneira de encontrar o pacote aptitude desinstalado associado a um comando? Estou ciente de apt-file , mas sua saída costuma ser difícil de analisar.

Por exemplo, apt-file search ifconfig gera 45 resultados. Eu provavelmente poderia usar algum regex para reduzir isso ainda mais, mas isso está longe de ser ideal.

Eu gostaria de poder fazer algo parecido com findpkg ifconfig e ver net-tools sem desordem.

    
por Ammar Bandukwala 11.10.2017 / 23:54

1 resposta

4

Para pacotes instalados

Esse é um trabalho para dpkg-query .

dpkg-query -S /path/to/file

fornece o nome do pacote que instalou o arquivo correspondente. Você vai querer usar o caminho exato para obter uma saída sem desordem, por sorte /sbin/ifconfig como no seu caso pode ser facilmente recuperado com which :

$ dpkg-query -S $(which ifconfig)
net-tools: /sbin/ifconfig

Inversamente, dpkg-query -L PACKAGENAME imprime uma lista de arquivos instalados pelo pacote fornecido, por exemplo:

$ dpkg-query -L net-tools | grep ^/sbin/
/sbin/nameif
/sbin/ipmaddr
/sbin/plipconfig
/sbin/ifconfig
/sbin/route
/sbin/mii-tool
/sbin/iptunnel
/sbin/rarp
/sbin/slattach

Veja man dpkg-query para mais.

Para pacotes ainda não instalados

apt-file fornece algumas opções que podemos usar para se livrar da saída de desordem:

-l, --package-only
    Only display package name; do not display file names.

-x, --regexp
    Treat pattern as a (perl) regular expression. See perlreref(1) for details.
    Without this option, pattern is treated as a literal string to search for.

Portanto, para procurar o pacote de um comando, a seguinte linha pode ser usada:

apt-file -lx search "/COMMAND$"

Para facilitar, vamos definir uma função:

$ findpkg() { apt-file -lx search "/$";}
$ findpkg ifconfig
net-tools

Veja man apt-file para mais informações sobre este comando e < href="https://perldoc.perl.org/perlre.html#Regular-Expressions"> perldoc.perl.org para uma introdução sobre expressões regulares perl.

    
por dessert 12.10.2017 / 00:13