Como posso listar todos os arquivos que serão instalados por um pacote APT?

0

Isso é semelhante a Como posso listar todos os arquivos que foram instalados por um pacote APT? No entanto, quero saber quais arquivos serão instalados, já que o pacote não foi instalado, ainda.

Exemplo: Eu queria listar todos os arquivos que serão instalados pelo pacote APT xorg . Em outras palavras: todos os arquivos que possivelmente serão criados quando eu digitar apt install xorg . No entanto, apt-file listou apenas os arquivos imediatos de xorg - não de suas dependências:

$ apt-file list xorg
xorg: /usr/share/bug/xorg/script
xorg: /usr/share/doc/xorg/changelog.gz
xorg: /usr/share/doc/xorg/copyright
xorg: /usr/share/lintian/overrides/xorg

Como posso listar todos arquivos associados?

(Eu adicionarei uma resposta bash pipe terrível como resposta. Isso é o que estou usando agora, mas é apenas um loop com muitas chamadas para apt-file e, portanto, muito, muito lento. procurando uma resposta melhor.)

    
por Jayjayyy 21.06.2018 / 02:11

2 respostas

1

Isto é o que eu estou usando agora, mas pode ser bugs e definitivamente não é muito performático:

apt-cache depends xorg | grep '..\(Depends\|Recommends\): [^<]' | sed 's/[^:]*: //' | while read LINE; do [[ -z "$LINE" ]] || apt-file list "$LINE"; done | sed 's/[^:]*: //' | sort

Passo a passo:

Obtenha uma lista de pacotes que serão instalados:

apt-cache depends xorg

Selecione as entradas "depende" e "recomenda":

grep '..\(Depends\|Recommends\): [^<]'

Desmarcar tudo, exceto o nome do pacote:

sed 's/[^:]*: //'

Se a linha não estiver vazia, execute apt-file com o nome de cada pacote:

while read LINE; do [[ -z "$LINE" ]] || apt-file list "$LINE"; done

apt-file list retorna linhas onde cada linha começa com o nome do pacote correspondente para o arquivo. Remova o nome do pacote da linha, que deixa apenas o nome do arquivo:

sed 's/[^:]*: //'

Ordenar linhas:

sort
    
por 21.06.2018 / 02:12
1

Você pode alimentar apt-file list uma lista de pacotes para processar de uma só vez, usando

apt-file -f-

(para ler da entrada padrão). Minhas medições sugerem que

apt-get -s install xorg | awk '/^Inst / { print $2 }' | apt-file -f- list

é mais de duas vezes mais rápido que o mesmo processo com um loop apt-file (usando xargs ).

Eu faço pós-processamento com sort -k2,2 , já que gosto de ver o pacote envolvido.

Usando apt-get -s install em vez de pós-processamento apt-cache depends xorg significa que todos os pacotes que seriam instalados em seu sistema são levados em consideração, e somente esses pacotes, incluindo dependências recursivas. apt-cache depends xorg mostra apenas as dependências imediatas de xorg e seu pós-processamento não lida com alternativas.

    
por 08.12.2018 / 16:39