existe uma maneira de ver uma listagem de pacotes SOMENTE do Debian-experimental?

0

Eu estou no Debian testing / Jessie e tenho o debian-experimental assim como no meu /etc/apt/sources.list. Por isso, estou procurando listar os pacotes de duas maneiras: -

a. Lista todos os pacotes que estão em experimental.

Isso eu consegui por: -

$ apt list | grep experimental

que deu uma lista de todos os pacotes que estão em experimental. Existe uma maneira de obter uma listagem de pacotes que são APENAS no debian-experimental e não no debian-unstable / sid ou testing. (Eu também os tenho em meu /etc/apt/sources.list.)

Se as pessoas estão se perguntando, então sim eu corro um sistema misto, embora a maioria seja de testes. Tenho certeza que com o grep, awk etc., haveria uma maneira, mas não encontrei. Olhei pelos mecanismos de pesquisa, mas não consegui responder.

    
por shirish 29.01.2015 / 00:11

1 resposta

1

Você pode fazer isso listando os dois conjuntos de pacotes e determinando a diferença entre os dois resultados:

grep -Fxv -f <(apt list | grep unstable | cut -d/ -f1) <(apt list | grep experimental | cut -d/ -f1)

Isso produz "experimental menos instável" e pode ser adaptado para calcular qualquer diferença alterando unstable e / ou experimental . Estritamente falando, combina mais do que apenas a suíte; a seguinte variante corresponde exatamente ao corresponder somente após a saída de / in apt list :

grep -Fxv -f <(apt list | egrep /.\*unstable | cut -d/ -f1) <(apt list | grep /.\*experimental | cut -d/ -f1)

(Caso contrário, os pacotes com "experimental" em seus nomes aparecerão quando não devem, por exemplo, ao comparar os testes e experimental, trafficserver-experimental-plugins está listado, embora esteja presente apenas na instabilidade.)

Além disso, apt list lista apenas os pacotes candidatos por padrão, portanto, para obter os resultados corretos, especialmente ao comparar o teste e a instabilidade, você precisa fazer:

grep -Fxv -f <(apt list --all-versions | egrep /.\*unstable | cut -d/ -f1) <(apt list --all-versions | grep /.\*experimental | cut -d/ -f1)

Ambos cut s extraem o nome do pacote da saída de apt . O primeiro conjunto de pacotes (da unstable) é fornecido como uma lista de padrões para grep usando a opção -f . -F indica grep para considerar os padrões como sequências de texto simples em vez de expressões regulares; -x diz para combinar cada padrão completamente; e -v diz para listar as linhas que não correspondem aos padrões fornecidos. Então grep pega todos os pacotes em experimental, mantém apenas aqueles que não estão na lista de pacotes da unstable, e produz o resultado.

As construções <() usam a substituição do processo para alimentar a saída padrão dos comandos contidos dentro dos parênteses para um canal que pode então ser usado como entrada para outro comando; consulte o guia avançado de bash para obter detalhes.

    
por 29.01.2015 / 07:22