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

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

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

Я бы хотел, чтобы вы могли заказывать по самому большому / наименьшему, но это необязательно. d1]

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

1
задан 4 March 2017 в 01:59

5 ответов

dpkg-query -W -f='${Installed-Size;8}  ${Package}\n' | sort -n

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

17
ответ дан 25 May 2018 в 18:43

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

Я нашел более короткий ответ, не требуя 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 (но я 'л ленивый: -)

15
ответ дан 25 May 2018 в 18:43
  • 1
    Возможно, вы захотите перебросить канал в sort -nk1 в конце этой первой команды. – Marco Ceppi♦ 21 September 2011 в 00:19
  • 2
    @MarcoCeppi: да, это не было главной заботой OP, и я обычно оставляю заказ из своих сценариев, учитывая, что он может применяться по-разному по мере необходимости. – enzotib 21 September 2011 в 02:51
  • 3
    Это также содержит программное обеспечение, которое больше не установлено. Есть ли способ удалить их из вывода? – rumpel 29 July 2012 в 22:15
  • 4
    Вы хотите, чтобы сумма этих пакетов передавала первую команду на cut -f 1 | paste -sd+ | bc. Также возможно grep до cut, чтобы вы могли установить установленный размер только определенных пакетов. – MeanEYE 8 June 2013 в 12:05

Другой вариант - использовать приложение 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.
4
ответ дан 25 May 2018 в 18:43

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

Open Aptitude с sudo aptitude. Нажмите S (капитал S) и введите ~installsize в командной строке. ([F3] для нисходящего сортировки, вы можете опустить его, если хотите, чтобы на нем были самые маленькие пакеты.) Теперь пакеты сортируются по размеру на каждом иерархическом уровне. Чтобы получить обзор, вам нужно как можно меньше уровней. Нажмите G и введите status в командной строке. Теперь все установленные пакеты находятся в одном разделе, отсортированном по размеру.
3
ответ дан 25 May 2018 в 18:43

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

Ниже перечислены только те, которые в настоящее время установлены:

dpkg-query -W -f='${Installed-Size;8}\t${Status;1}\t${Package}\n' | grep -v "\sd\s" | sort -n | cut -f1,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
1
ответ дан 25 May 2018 в 18:43

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

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