Как мне перечислить установленное программное обеспечение с установленным размером?

38

Я хотел бы иметь список установленного программного обеспечения на моей машине, вместе с занимаемым ими дисковым пространством. Я бы предпочел иметь возможность делать заказы по величине / наименьшему, но это не является необходимостью.

Я тот человек, который установит программное обеспечение, чтобы попробовать его, и никогда не убирать за собой.

В результате мои 7 ГБ (Windows и Мои данные находятся в отдельных разделах, а также в области подкачки) страдают разделом Ubuntu 11.04, и он начал регулярно показывать предупреждающие сообщения.

Льюис Годдард
источник
unix.stackexchange.com/questions/40442/…
Сиро Сантилли 事件 16 中心 法轮功 六四 事件

Ответы:

23

Вы можете сделать это графически в Synaptic Установить синаптик .

Сначала убедитесь, что вы включили столбцы «Установленный размер» и «Размер загрузки» (или только один, если хотите этот).

  • Для этого перейдите в « Настройки»> «Настройки» и выберите « Столбцы и шрифты» , а затем отметьте столбцы, которые вы хотите просмотреть.
  • Затем нажмите ОК .

Окно настроек

  • После того, как они включены, вы можете перечислить пакеты, которые вы установили по размеру загрузки / установленного размера, нажав на столбец.

Колонны

  • Обратите внимание: у меня нет пакетов, перечисленных таким образом, этот снимок экрана, но он работает.
RolandiXor
источник
Это именно то, что я искал! Большое спасибо.
Льюис Годдард
@LewisGoddard: пожалуйста.
RolandiXor
24
dpkg-query -W -f='${Installed-Size;8}  ${Package}\n' | sort -n

показывает список пакетов, отсортированных по размеру

Флориан Диш
источник
3
Было бы лучше, если бы вы могли также упомянуть единицу измерения размера.
Jobin
Вероятно, килобайт
Андреас Хартманн
1
что ;8внутри ${Installed-Size;8}?
n611x007
1
@naxa: печать по правому краю с полями шириной 8
Флориан Диш,
18

Предпочтительное решение

Я нашел более короткий ответ, не требующий aptitude:

dpkg-query -Wf '${Installed-size}\t${Package}\n' | column -t

Старое предлагаемое решение

showКоманда aptitudeможет показать установленный размер пакета.

У меня есть маленький скрипт, который использует aptitude(для установки отдельно) список всех установленных пакетов с размерами:

#!/bin/bash

export LC_ALL=C

aptitude show $(dpkg-query -Wf '${Package}\n') |
  awk '$1 == "Package:"     { name = $2 }
       $1 == "Uncompressed" { printf("%10s %s\n", $3, name) }' |
  awk '$1 ~ /k/ { $1 *= 1 }; $1 ~ /M/ { $1 *= 1024 }
       { printf("%9d %s\n", $1, $2)}'

Размеры выражаются в килобайтах и ​​являются приблизительными, как возвращено aptitude show pkg.

Сценарий может быть улучшен с помощью одного awkвызова (но я ленивый :-)

enzotib
источник
1
Возможно, вы захотите бросить трубку sort -nk1в конце этой первой команды.
Марко Чеппи
@MarcoCeppi: да, это не было главной заботой ОП, и я обычно не учитываю порядок в своих сценариях, учитывая, что он может применяться по-разному по мере необходимости.
энзотиб
1
В нем также перечислены программы, которые больше не установлены. Есть ли способ удалить их из вывода?
Румпель
Вы хотите, чтобы сумма этих пакетов передавалась первой командой cut -f 1 | paste -sd+ | bc. Также возможно выполнить grep раньше, cutчтобы вы могли получить установленный размер только определенных пакетов.
MeanEYE
5

Другой вариант - использовать dpigsприложение из debian-goodiesпакета:

NAME
   dpigs - Show which installed packages occupy the most space

SYNOPSIS
   dpigs [options]

DESCRIPTION
   dpigs sorts the installed packages by size and outputs the largest ones. Per
   default dpigs displays the largest 10 packages. You can change this value by
   using the -n option (see "OPTIONS"). The information is taken from the dpkg
   status file with grep-status(1).

OPTIONS
   -h, --help
       Display some usage information and exit.

   -n, --lines=N
       Display the N largest packages on the system (default 10).

   -s, --status=FILE
       Use FILE instead of the default dpkg status file (which is /var/lib/dpkg/status
       currently).

   -S, --source
       Display the largest source packages of binary packages installed on the system.
Дрю Ноакс
источник
3

Вы можете просмотреть такой список в терминальном менеджере пакетов Aptitude:

  1. Откройте Aptitude с помощью sudo aptitude.
  2. Нажмите S(заглавная S) и введите ~installsizeв командной строке. (Это ~для сортировки по убыванию; вы можете опустить ее, если хотите, чтобы самые маленькие пакеты находились сверху.)
  3. К настоящему времени пакеты отсортированы по размеру внутри каждого иерархического уровня. Чтобы получить обзор, вам нужно как можно меньше уровней. Нажмите Gи введите statusв подсказке. Теперь все установленные пакеты находятся в одном разделе, отсортированы по размеру.
legoscia
источник
1

Другие ответы здесь перечислены как установленные, так и деинсталлированные пакеты.

Следующие списки только те, которые установлены в настоящее время:

dpkg-query -W -f='${Installed-Size;8}\t${Status;1}\t${Package}\n' | grep -v "\sd\s" | sort -n | cut -f1,3-

Что оно делает:

  1. Запрос установленного размера, статуса и имени всех пакетов
  2. Отфильтровывать деинсталлированные пакеты
  3. Вырезать столбец состояния из вывода

Выход напоминает:

...
22376   vim-runtime
26818   linux-image-3.8.0-32-generic
28673   libc6-dbg
35303   libpython3.3-dev
40303   valgrind
40731   linux-firmware
41516   smbclient
58704   linux-headers-3.8.0-26
58733   linux-headers-3.8.0-32
93566   linux-image-extra-3.8.0-32-generic
Дрю Ноакс
источник