Если использовать dpkg -l, то пригодится информация о значении статусов пакетов.
Видим перечисление пакетов по такой схеме: состояние название версия описание
Состояние разделено на 3 колонки (+++), сверху написаны обозначения колонок.
1) Desired=Unknown/Install/Remove/Purge/Hold
Последнее действие:
u - неизвестно
i - установка
r - удаление
p - полное удаление, включая файлы настроек
h - сохранение версии
2) Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
Текущее состояние:
n - не установлен
i - установлен
c - установлены только файлы настроек
u - распакован
f - сбой при настройке
h - сбой при установке
3) Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
Ошибка (заполняется только при ошибке)
(пусто) - нет ошибок
h - пакет удержан
r - пакет сломан, нужна переустановка
x - обе выше указанные ошибки
В результате получаем:
pn - попытка удаления и так не установленного пакета
un - пакет никогда не устанавливался
ii - пакет установлен
rc - пакет был установлен и удалён, но файлы настроек остались в системе