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

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

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

5
задан 14 December 2012 в 04:49

3 ответа

для установленных пакетов вы можете использовать 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 показывает «установленный» размер архива. Теперь у вас есть возможность использовать сортировку для сортировки результатов по вашему желанию.

0
ответ дан 14 December 2012 в 04:49

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

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

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

0
ответ дан 14 December 2012 в 04:49

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

apt-cache dumpavail \ | sed -nE '/^(Пакет|Размер):/s/.* //p' \ | при чтении имени; делать размер чтения эхо $размер $имя Выполнено \ | sort -nr

Есть сомнительное преимущество, заключающееся в использовании только sed и sort, а не grep и awk. :)

0
ответ дан 15 March 2020 в 21:45

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

Похожие вопросы: