Как показать количество установленных пакетов

Ответы:

11

По этой теме :

Для просмотра списка установленных пакетов:

dpkg --list | wc --lines

Чтобы увидеть, установлен ли пакет:

dpkg --list | grep package
Джастин этир
источник
1
Вы включаете строки заголовка и некоторые rcнеустановленные пакеты (например, (неустановленные, но с сохраненными конфигурационными файлами)) в ваш счет.
Жиль "ТАК - перестань быть злым"
6
dpkg -l | grep -c '^ii'

Существуют тонкие варианты, например, dpkg -l | grep -c '^?i'если вы хотите включить пакеты, которые установлены, но удаление которых вы запросили. Другой способ

aptitude search '~i' |wc -l

Вы даже можете заглянуть прямо в базу данных dpkg:

sh -c 'set /var/lib/dpkg/info/*; echo $#'

Этот включает пакеты, которые не установлены, но у которых есть файлы конфигурации; Вы можете перечислить их с dpkg -l | grep '^rc'.

Жиль "ТАК - перестань быть злым"
источник
1

dpkg -lэто хорошо, но я на самом деле использую apt-show-versions(не установлен по умолчанию в Debian; установить пакет с тем же именем) вместо этого много, особенно когда я хочу обработать вывод дальше (dpkg пытается быть слишком умным с переносом строк).

timday
источник
1

Synaptic , менеджер пакетов с графическим интерфейсом, отображает количество в нижней части главного окна.

введите описание изображения здесь

tshepang
источник
0

Если вам нужно точное количество пакетов, вам не следует подсчитывать строки заголовка, выводимые по dpkg-query -l, поэтому вам нужен шаблон для соответствия строк, начинающихся с ii. Следующая строка содержит количество строк, начинающихся с, iiи, следовательно, количество установленных пакетов:

dpkg-query -l | grep "^ii" | wc -l 

Это дает тот же результат, что и

 dpkg --get-selections | grep "[[:space:]]install" | wc -l

Шаблон grep во второй команде игнорирует строки, содержащие строку «deinstall» в выходных данных dpkg --get-selections.

Tsundoku
источник
-1

Для instace вы можете сделать это:

dpkg-query -l | nl | tail -1 | awk '{print $1}'
Карим Манауй
источник
Хорошо, это правда, что nl | tail -1 | awk '{print $1}'будет сообщать о количестве строк на входе (кроме случаев, когда нет ввода, он ничего не скажет вместо сообщения 0) - но почему бы вы порекомендовали такой кладж, когда другие ответы уже используются wc -l?
G-Man говорит: «Восстанови Монику»
Это забавно, потому что я не читал предыдущие ответы! @ G-Man ... но это все еще хороший ответ.
Карим Манауй