Como posso saber quais programas algum pacote do apt-get contém?

17

Eu gostaria de saber o que alguns pacotes específicos instalam, por exemplo, ao instalar o ncurses , descobri que a tecla TAB se expande:

sudo apt-get install ncurses-

para mostrar:

ncurses-base      ncurses-doc       ncurses-hexedit
ncurses-bin       ncurses-examples  ncurses-term

Como eu poderia saber o que, digamos, ncurses-term installs? Estou interessado principalmente em programas, mas bibliotecas e outros tipos de arquivos podem ser úteis também.

O método

Linha de comando , se possível, seria preferido ( qualquer outro aceito também).

    
por Sopalajo de Arrierez 16.03.2014 / 22:53

3 respostas

20

Aqui estão algumas opções, elas listarão todos os arquivos instalados por um pacote:

Listando todos os arquivos incluídos em um pacote

  1. Para pacotes instalados

    dpkg -L ncurses-term
    
  2. Para todos os pacotes, instalados ou não

    apt-file -F list ncurses-term
    

    Os turnos -F da correspondência de padrões para que apenas os pacotes com as correspondências de nome exato sejam retornados. Talvez seja necessário instalar apt-file com sudo apt-get install apt-file e, em seguida, atualizar seu banco de dados com sudo apt-file update .

B. Listando apenas arquivos executáveis incluídos em um pacote

  1. Para pacotes instalados

    Basta instalar dlocate ( sudo apt-get dlocate ) e executar:

    dlocate -lsbin ncurses-term 
    

    Como explicado em man dlocate :

      

    -lsbin Lista caminho completo / nomes de arquivos de arquivos executáveis (se houver) no pacote

    Se você não quiser instalar pacotes adicionais, você pode fazer isso manualmente. Apenas colete a lista de arquivos e encontre qualquer um deles que tenha o bit executável definido:

    apt-file -F list ncurses-term | cut -d ' ' -f 2 | 
        while read file; do [[ -x $file && -f $file ]] && echo "$file"; done
    

    O pequeno scriptlet acima imprimirá apenas o caminho ( cut -d ' ' -f 2 ) e passará através de um loop while que verifica se o arquivo é executável ( -x $file ) e se for um arquivo regular, nenhum diretório ou symlinks ( -f $file ) e imprime seu nome somente se passar nos dois testes.

  2. Para todos os pacotes, instalados ou não

    Não há como saber apenas os executáveis incluídos em um pacote desinstalado. No entanto, como a maioria dos executáveis está instalada nos diretórios bin , é possível obter a maioria deles analisando a saída:

     apt-file -F list ncurses-term | grep -Ew "bin|sbin"
    

    A opção -w corresponde a palavras inteiras, portanto você não instala as coisas, por exemplo, trashbin ou qualquer outra coisa.

NOTA : Nenhum dos comandos acima produzirá qualquer saída para ncurses-term , mas isso ocorre porque este pacote não instala arquivos executáveis. Os comandos funcionam, no entanto, tente com um pacote diferente.

    
por terdon 16.03.2014 / 23:16
4

Você pode usar o apt-file:

sudo apt-file update        
apt-file list package_name
    
por Sylvain Pineau 16.03.2014 / 23:13
3

Existe a possibilidade de usar seu navegador (portanto, não requer acesso a um sistema APT). Por exemplo, para listar o conteúdo do arquivo do pacote "ncurses-term", basta digitar

link

na barra de endereço do seu navegador (substitua "wheezy" conforme necessário) por Debian ou

link

para o Ubuntu (substitua "saucy" conforme necessário).

    
por Michael Kremser 17.03.2014 / 09:34