Полное руководство по команде dpkg в Linux
Время прочтения: 4 мин.
23

    Что такое dpkg?

    dpkg — это инструмент управления пакетами для операционных систем на базе Debian Linux, который позволяет устанавливать, настраивать и удалять пакеты. Он является низкоуровневым инструментом, используемым в основном для работы с .deb файлами. Dpkg не только взаимодействует с пакетами, но также играет важную роль в управлении состояниями и статусами установленных пакетов, что позволяет более точно отслеживать изменения в их системе.

    Синтаксис команды

    dpkg [опция...] действие

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

    Примеры использования

    Установка пакетов

    Чтобы установить пакет, используйте опцию -i или --install:

    sudo dpkg -i package-file.deb

    Если вы хотите установить пакеты из каталога, используйте:

    sudo dpkg -R -i /path/to/directory/

    При установке стоит учитывать, что процесс включает множество шагов, таких как извлечение контрольных файлов и запуск скриптов, что обеспечивает корректную установку пакета, однако без учета его зависимостей.

    Зависимости пакетов

    В процессе установки пакета могут возникнуть следующие проблемы зависимостей:

    • dpkg: зависимости пакетов не позволяют настроить пакет
    • dpkg: ошибка при обработке пакета

    Выполните эту команду для автоматической установки необходимых зависимостей:

    sudo apt --fix-broken install

    Пример установки программы VLC из файла пакета командой dpkg -i с разрешением отсутствующих зависимостей:

    Установка VLC плеера командой dpkg
    Установка VLC плеера командой dpkg

    Удаление пакетов

    Для удаления установленного пакета используйте опцию -r или --remove:

    sudo dpkg -r package-name

    Чтобы полностью удалить пакет вместе с конфигурационными файлами, используйте -P или --purge:

    sudo dpkg -P package-name

    Этот процесс может включать выполнение скриптов, обеспечивающих корректное удаление всех файлов программы из системы.

    Конфигурирование пакетов

    Чтобы настроить пакет, который был распакован, но не был сконфигурирован:

    sudo dpkg --configure package-name

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

    Получение информации о пакетах

    Проверка статуса пакетов

    Вы можете проверить статус пакета с помощью:

    dpkg -s package-name

    Эта команда позволяет быстро узнать текущее состояние пакета и понять, требует ли он переустановки или конфигурирования.

    Проверка целостности пакетов

    Для проверки целостности пакета используйте:

    dpkg -V package-name

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

    Список установленных пакетов

    Получение списка всех установленных пакетов:

    dpkg -l

    Этот список пригодится для общего аудита системы и установленных программ.

    Получение списка файлов, установленных из пакета

    dpkg -L package-name

    Параметры

    Команда dpkg поддерживает множество параметров, которые могут быть указаны как в командной строке, так и в конфигурационных файлах.

    --abort-after

    Например, вы можете установить количество ошибок, после которого команда прервется (по умолчанию --abort-after=50). Это позволяет контролировать работу Dpkg в случае, если происходит множество ошибок, что может значительно упростить диагностику и устранение неисправностей:

    dpkg --abort-after=10

    --get-selections

    Альтернативная опция, позволяющая получить список всех установленных пакетов. Команда используется для создания резервной копии списка установленных пакетов, а также для последующего восстановления этого набора программ:

    dpkg --get-selections > package_list.txt

    --set-selections

    Следующий параметр указывает на список пакетов, которые мы хотим установить или удалить. На предыдущем этапе мы сохранили список с помощью --get-selections, а теперь его можно использовать для восстановления состояния системы:

    dpkg --set-selections < package_list.txt

    --unpack

    Этот параметр распаковывает пакеты, но не настраивает их, это может быть полезно, если вы хотите проверить содержимое пакета, без его установки в систему. Данная опция также позволяет рекурсивно распаковывать файлы .deb из каталога, если вы объедините ее с параметром -R или --recursive.

    Файлы из пакета будут распакованы в стандартные каталоги, определенные в самом пакете (dpkg --contents package-name.deb). Весь процесс не производит никаких изменений в базе данных dpkg о состоянии пакетов, так как это делается только во время полной установки пакета (dpkg --install):

    dpkg --unpack package-name.deb

    --audit

    И на всякий случай проведите аудит системы, чтобы найти пакеты, которые были установлены лишь частично. Ищем пакеты, содержащие недостающие, неверные или устаревшие данные и файлы. Dpkg подскажет, что с ними делать, чтобы исправить ситуацию:

    dpkg --audit

    Советы и рекомендации

    • Перед установкой или удалением пакетов всегда рекомендуется делать резервные копии важных данных.
    • Используйте apt или aptitude для более удобного управления пакетами, так как они могут автоматически обрабатывать зависимости. Отдайте им предпочтение перед ручной установкой.
    • Опирайтесь на dpkg как на мощный инструмент для ручного управления пакетами, когда автоматические средства не могут справиться с задачей.
    • Проверяйте целостность установленных пакетов с помощью dpkg -V.