como pesquisar pacotes com base em tamanho de arquivo não compactado?

1

No Debian, quando você olha para um pacote, você obtém muita informação. Incluindo o tamanho do arquivo descompactado do pacote. Existe uma maneira de percorrer a listagem de arquivos para que os pacotes apareçam do maior para o menor ou do menor para o maior?

É assim que aparece via aptitude: -

[$] aptitude show leafpad | grep Uncompressed

Uncompressed Size: 739 k

Tenho certeza de que há uma maneira de fazer o mesmo, mas como? Eu estou no zsh.

Estou procurando todas as listagens de pacotes disponíveis e gostaria de lê-las de maneira legível (por exemplo, KB / MB / GB, etc.)

Repetindo @Theophrastus pelo esforço.

    
por shirish 24.11.2015 / 15:22

2 respostas

1

Se eu entendi bem, você quer algo assim:

# apt-get install dctrl-tools
$ sort-dctrl -k Installed-Size:n /var/lib/apt/lists/*_Packages | grep-dctrl -ns Package,Installed-Size -

Você obtém números em unidades de kB = 1024 bytes. A conversão da saída seria uma questão separada.

    
por 25.11.2015 / 09:58
2

Usando o aptitude --sort parameter

Teoricamente, você deve ser capaz de usar as facilidades de pesquisa e ordenação do aptitude diretamente - infelizmente, parece haver um bug que faz com que o aptitude envie pacotes com estado c (pacotes excluídos com arquivos de configuração ainda no sistema) por último e em uma ordem não classificada:

aptitude -F '%p %I' search '!~v' --sort "installsize"

Onde -F é usado para dizer aptitude como formatar a saída: %p é o nome do pacote, %I do tamanho estimado da instalação. Confira a seção Personalizando como os pacotes são exibidos na aptidão manual de referência se você quiser saber mais sobre como formatar a saída do aptitude .

O termo de pesquisa !~v seleciona todos os pacotes não virtuais: ! é usado para negação e ~v seleciona pacotes virtuais. Consulte a Referência de termo de pesquisa para obter mais formas de pesquisar no banco de dados de pacotes usando aptitude ; por exemplo: se você está interessado apenas em pacotes instalados, você usaria ~i .

--sort faz a coisa óbvia de dizer ao aptitude para classificar a listagem por certos critérios (uma lista de critérios separados por vírgula) e installsize é o critério para o tamanho Uncompressed / Installed; Você pode inverter a direção de classificação, inserindo ~ no critério: ~installsize . Há uma seção no manual aptitude para eles também: Personalizando como os pacotes são classificados .

Piping uma listagem de pacotes para sort

aptitude --disable-columns -F '%p %I' search '!~v' | sed 's/ \([^ ]\{1,2\}\)$//' | sort -k2 -h | column -t

--disable-columns é necessário para não confundir a seleção da coluna de classificação com o argumento -k do sort .

sed é necessário porque o espaço entre o número de tamanho e seu qualificador (isto é, o MB em "4.897 MB") causa que classificar não escolha o qualificador para --human-numeric-sort ( -h ).

Após a classificação, column -t criará uma exibição bonita e com colunas da listagem de pacotes.

    
por 25.11.2015 / 12:39