Как отсортировать пакеты по размеру файла при поиске в репозиториях?
Я пытаюсь посмотреть статистику по размеру пакетов в репозиториях 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.:)