Как отсортировать пакеты по размеру файла при поиске в репозиториях?

Я пытаюсь посмотреть статистику по размеру пакетов в репозиториях Ubuntu и надеюсь отсортировать результаты поиска пакетов в репозиториях по размеру файла. Есть ли команда, которая позволит мне посмотреть размеры файлов пакетов в репозиториях / кэше, отсортировать их по размеру файла и т. Д.? `apt-cache stats'не предоставляет всю информацию, которую я хотел бы.

На данный момент меня интересуют только официальные репозитории, и я заинтересован в сортировке всех пакетов в репозиториях, а не просто тех, которые я установил.

2 ответа

Решение

Это должно работать:

apt-cache -f dumpavail | \
egrep '^Package:|^Size:' | \
sed -e 's,Size: ,,' -e 's,Package: ,\n,' | \
awk '{RS=""; FS="\n"} {print $1, $2}' | \
sort -k2 -n

Я не горжусь этим, но это было сделано в спешке:)

Для установленных пакетов вы можете использовать oneliner:

dpkg-query -W --showformat='${Installed-Size;10}\t${Package}\n' | sort -k1,1n

или сторонние инструменты, такие как wajig:

sudo aptitude install wajig
wajig large

это даст вывод как

...
libreoffice-core                   117,412      installed
google-chrome-stable               136,744      installed
linux-image-3.2.0-23-generic       145,113      installed
linux-image-3.2.0-33-generic       145,872      installed
nvidia-current                     179,133      installed

для поиска что-то вроде этого может помочь:

aptitude search vnc -F "%p %I"

Это дает вывод как:

$ aptitude search xvnc -F "%p %I"
linuxvnc                71.7 kB 
linuxvnc:i386           66.6 kB 
xvnc4viewer             430 kB  
xvnc4viewer:i386                400 kB 

%I показывает "установленный" размер архива. Теперь у вас есть возможность использовать сортировку для сортировки результатов по вашему желанию.

Альтернативой решению Марцина является этот лайнер (протестирован только в zsh):

apt-cache dumpavail \ | sed -nE '/^(Package|Size):/s/.* //p' \ | while read name; do read size echo $size $name done \ | sort -nr

У него есть сомнительное преимущество: использовать только sed а также sort, а не также grep а также awk.:)

Другие вопросы по тегам