3.11. Поиск программ, установленных в системе Debian

Проблема

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

Решение

Воспользуйтесь средствами обработки запросов dpkg.

Следующая команда выводит список всех установленных пакетов и направляет его в файл:

$ dpkg -l | tee dpkglist

Поиск всех пакетов, удовлетворяющих критерию поиска, и вывод информации об их состоянии:

$ dpkg -l '*gnome*'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status.Err: uppercase=bad)
||/ Name               Version        Description
pn  gnome              <none>        (no description available)
un  gnome-about        <none>        (no description available)
ii  gnome-applets      2.4.2-1        Various applets for GNOME 2 panel
rc  gnome-bin          1.4.2-18       Miscellaneous binaries used by GNOME

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

$ dpkg -l | grep gnome

Вывод списка файлов, входящих в пакет:

$ dpkg -L gnome-applets
/usr/share
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/gnome-applets
...

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

$ dpkg -S boing.wav
tuxkart-data: /usr/share/games/tuxkart/wavs/boing.wav

Вывод полной информации о пакете:

$ dpkg -s kpoker
Package: kpoker
Status: install ok installed
Priority: optional
Section: games
Installed-Size: 428
Maintainer: Daniel Schepler <schepler@debian.org>
Source: kdegames
Version: 4:3.1.5-1
...

Комментарий

Таблица, выводимая командой dpkg -l, выглядит довольно загадочно, поэтому я приведу расшифровку.

$ dpkg -l gnome*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status.Err: uppercase=bad)
||/ Name               Version        Description
pn  gnome              <none>        (no description available)
un  gnome-about        <none>        (no description available)
ii  gnome-applets      2.4.2-1        Various applets for GNOME 2 panel
rc  gnome-bin          1.4.2-18       Miscellaneous binaries used by GNOME

В строке pn gnome поднимитесь от буквы p наверх по «стрелке». Она приведёт вас к строке Desired=Unknown/Install/Remove/Purge/Hold с расшифровками первого символа (Purge в данном случае).

От следующего столбца, ii, стрелка ведёт к строке Status. По ней можно определить, что символ ii означает Not/Installed.

В третьем столбце отображается код ошибки. В нашем случае он пуст (и хорошо). Как указано в конце строки, любые символы верхнего регистра в столбцах Status и Err ни к чему хорошему не приведут.

Получаем: пакет gnome когда-то был установлен в системе, но потом он был удалён.

Код un означает, что пакет никогда не устанавливался.

Код ii означает, что пакет установлен.

Код rc означает, что пакет был установлен, а затем удалён, но после него остались конфигурационные файлы. Состав этих файлов определяется легко:

$ dpkg -L gnome-bin
/etc/logcheck/ignore.d.server/gnome-bin
/etc/logcheck/ignore.d.workstation/gnome-bin

См. также

dpkg(8).