Команды DPKG
8.3 Как узнать, какие пакеты установлены в системе Debian?
Чтобы получить список всех установленных пакетов, выполните команду
dpkg --list
Эта команда выведет для каждого пакета однострочную сводку, включающую два символа состояния (объясняемые в заголовке), имя пакета, установленную версию и краткое описание.
Чтобы узнать состояние пакетов, имена которых начинаются с «foo», выполните команду:
dpkg --list 'foo*'
Чтобы получить более подробный отчёт о состоянии определённого пакета, выполните команду:
dpkg --status имя_пакета
8.4 Как посмотреть список файлов установленного пакета?
Чтобы вывести список файлов установленного пакета foo, выполните команду
dpkg --listfiles foo
Учтите, что файлы, созданные сценариями установки, не отображаются.
8.5 Как определить пакет, которому принадлежит определённый файл?
Чтобы определить, в каком пакете содержится файл с именем foo, выполните одну из следующих команд:
- dpkg --search имя_файлаЭта команда ищет имя_файла в установленных пакетах. (Это, в настоящий момент, эквивалентно поиску всех файлов с расширением .list в каталоге /var/lib/dpkg/info/ и выводу имён всех пакетов, которые содержат заданное имя файла и отклонения (diversions).)Более быстрая альтернатива этому — программа
dlocate
.dlocate -S имя_файла
- zgrep foo Contents-ARCH.gzЭта команда ищет файлы, содержащие в своих полных именах путей подстроку foo. Файлы Contents-ARCH.gz (где ARCH представляет нужную архитектуру) расположены в основных каталогах пакетов (main, non-free, contrib) на FTP-сайте Debian (то есть, в /debian/dists/jessie). Файл Contents относится только к тем пакетам, что расположены в структуре подкаталогов того же каталога, где находится и он сам. Поэтому, чтобы найти пакет, содержащий файл foo, пользователю нужно искать более чем в одном файлеContents.Преимущество этого метода над dpkg --search состоит в том, что будут найдены файлы в тех пакетах, которые могут быть не установлены в вашей системе.
- apt-file search fooЕсли вы установите пакет
apt-file
, то приведённая выше команда выполнит поиск файлов, содержащих в своих полных путях подстроку или регулярное выражение foo. Преимущество этой команды перед приведёнными ранее в том, что вам не нужно будет получать файлы Contents-ARCH.gz, так как это будет сделано автоматически для всех источников, описанных в/etc/apt/sources.list
, при запуске (с правами суперпользователя) команды apt-file update.
-Просмотр списка установленных пакетов
Что бы посмотреть список установленных пакетов можно использовать одну из команду:
$dpkg --get-selections "*"
А если нужно посмотреть и версии:
$dpkg -l
-Просмотр доступных версий пакета в репозиториях
$apt-cache showpkg exim4-daemon-heavy
-Обновление списка доступных пакетов
#apt-get update
-Определить, какие пакеты зафиксированы через aptitude
#aptitude search "~ahold" | grep "^.h"
-Поиск проблемных пакетов
Следующая команда покажет пакеты установленные частично (Half-Installed), настройка которых не удалась (Failed-Config), а также все пакеты в ошибочных состояниях:
#dpkg --audit
-Наличие новых версий установленных пакетов:
#aptitude search '?upgradable' --display-format '%p# %v# %V# %t'
-Установка конкретной версии пакета:
#apt-get install php=5.2.6.dfsg.1-1+lenny9
При этом версия должна указываться именно такая, как она определяется через apt-cache showpkg php5.
-Удаление «мёртвых» пакетов:
После установки пакета, с ним тянется зависимости — другие пакеты. Но если вы удалили пакет, как избавится от этих установленных по зависимости пакетов? Нужно выполнить такие команды:
#apt-get autoclean
рекомендуется (использовать периодически) для очистки от пакетов .deb которые больше не используются.
#apt-get autoremove
удаляет неудалённые зависимости от уже удалённых пакетов
Так же можно чистить папку архива пакетов /var/cache/apt/archives/
-Поиск пакета, содержащего нужный файл
$dpkg -S /bin/ping
-Проверить зависимости
# apt-get check
— От каких пакетов зависит нужный пакет
$qdepends -r ИМЯ_ПАКЕТА |tr ' ' '\n' |sort