dpkg – это менеджер пакетов среднего уровня, который позволяет вам устанавливать, удалять и настраивать программные пакеты в вашей системе Linux. В этой статье мы познакомим вас с основами использования команды dpkg в Debian, Ubuntu и их производных.
Что такое dpkg в Linux?
dpkg
расшифровывается как “Debian Package” и является базовым инструментом, используемым дистрибутивами Linux на основе Debian, такими как Ubuntu. Это утилита командной строки, которая позволяет вам управлять отдельными пакетами .deb
в вашей системе.
Несмотря на то, что она dpkg
мощная, она считается инструментом среднего уровня, что означает, что она не обрабатывает зависимости автоматически. Для этого вы можете захотеть использовать менеджер пакетов более высокого уровня, такой как apt
.
Базовый синтаксис
Базовый синтаксис команды dpkg
таков:
dpkg [options] action
Общие действия:
- -i, –install
<package_file>
: Установите указанный пакет.deb
. - -r, –remove
<package_name>
: удалите указанный пакет (но сохраните его файлы конфигурации). - -P, –purge
<package_name>
: Удалите указанный пакет и очистите его файлы конфигурации. - -l, –list
[package_name]
: список пакетов, соответствующих заданному шаблону. Если шаблон не указан, в нем перечислены все установленные пакеты. - -s, –status
<package_name>
: отображение подробной информации о состоянии указанного пакета. - -L, –listfiles
<package_name>
: список файлов, установленных указанным пакетом. - -S, –search
<filename_pattern>
: поиск имени файла в установленных пакетах. - -c, –contents
<package_file>
: Перечислите содержимое указанного пакета.deb
.
Важные параметры:
- -b, –build
<directory>
: создайте пакет.deb
из указанного каталога. - -A, –record-avail
<package_file>
: Обновите информацию о доступности пакета информацией из указанного файла.deb
. - -E, –skip-same-version: пропустить установку пакета, если та же версия уже установлена.
- -G, –refuse-downgrade: отказать в установке пакета, если уже установлена более новая версия.
- -R, –recursive: Рекурсивно обрабатывать все файлы, являющиеся каталогами.
- -V, –verify
<package_name>
: Проверьте целостность указанного пакета, сверив его файлы с записанными контрольными суммами. - –configure
<package_name>
: Настройте пакет, который был распакован, но еще не настроен. - –unpack
<package_file>
: Распакуйте указанный.deb
файл пакета, но не настраивайте его. - –no-act, –dry-run, –simulate: Выполните имитацию действий, которые будут предприняты, но фактически не измените систему.
Распространенные примеры команд dpkg
Вот некоторые из наиболее распространенных команд dpkg
, которые мы будем использовать для повседневных задач.
1. Установите пакет
Чтобы установить файл .deb
пакета, используйте следующую команду:
dpkg -i package.deb
Пример:
sudo dpkg -i google-chrome-stable_current_amd64.deb
Эта команда устанавливает браузер Google Chrome в вашу систему Debian.
2. Удалите пакет
Чтобы удалить пакет, используйте следующую команду:
dpkg -r package_name
Пример:
sudo dpkg -r firefox-esr
Эта команда удаляет браузер Firefox из вашей системы.
3. Очистите пакет
Если вы хотите удалить пакет вместе с файлами его конфигурации, используйте следующую команду:
dpkg -P package_name
Пример:
sudo dpkg -P linux-image-5.10.0-11-amd64
Эта команда удаляет указанный образ ядра Linux вместе с файлами его конфигурации.
4. Список установленных пакетов
Чтобы составить список всех установленных пакетов в вашей системе, используйте следующую команду:
dpkg -l
Вы также можете отфильтровать список с помощью grep
:
dpkg -l | grep -i chrome
В этой команде перечислены все установленные пакеты, в названии которых указано “chrome”.
Пример вывода:
ii google-chrome-stable 129.0.6668.70-1 amd64 The web browser from Google
5. Список файлов, установленных пакетом
Чтобы составить список всех файлов, установленных определенным пакетом, выполните:
dpkg -L package_name
Пример:
dpkg -L google-chrome-stable
Пример вывода:
/. /etc /etc/cron.daily /opt /opt/google /opt/google/chrome /opt/google/chrome/CHROME_VERSION_EXTRA /opt/google/chrome/MEIPreload /opt/google/chrome/MEIPreload/manifest.json /opt/google/chrome/MEIPreload/preloaded_data.pb /opt/google/chrome/PrivacySandboxAttestationsPreloaded /opt/google/chrome/PrivacySandboxAttestationsPreloaded/manifest.json /opt/google/chrome/PrivacySandboxAttestationsPreloaded/privacy-sandbox-attestations.dat /opt/google/chrome/WidevineCdm /opt/google/chrome/WidevineCdm/LICENSE [...]
6. Узнайте, к какому пакету принадлежит файл
Вы можете выполнить поиск файла и выяснить, к какому пакету он принадлежит, используя следующую команду:
dpkg -S /path/to/file
Например, для поиска пакетов, к которым принадлежит файл /bin/uname
, используйте следующую команду:
dpkg -S /bin/uname
Пример вывода:
coreutils: /bin/uname
Как вы можете видеть, файл /bin/uname
принадлежит пакету coreutils
.
7. Показать состояние пакета
Чтобы проверить состояние определенного пакета, используйте следующую команду:
dpkg -s package_name
Пример:
dpkg -s google-chrome-stable
Эта команда показывает состояние пакета Google Chrome, в том числе установлен ли он, настроен или не установлен.
Package: google-chrome-stable Status: install ok installed Priority: optional Section: web Installed-Size: 356732 Maintainer: Chrome Linux Team <chromium-dev@chromium.org> Architecture: amd64 Version: 129.0.6668.70-1 Provides: www-browser Depends: ca-certificates, fonts-liberation, libasound2 (>= 1.0.17), libatk-bridge2.0-0 (>= 2.5.3), libatk1.0-0 (>= 2.11.90), libatspi2.0-0 (>= 2.9.90), libc6 (>= 2.17), libcairo2 (>= 1.6.0), libcups2 (>= 1.7.0), libcurl3-gnutls | libcurl3-nss | libcurl4 | libcurl3, libdbus-1-3 (>= 1.9.14), libdrm2 (>= 2.4.75), libexpat1 (>= 2.1~beta3), libgbm1 (>= 17.1.0~rc2), libglib2.0-0 (>= 2.39.4), libgtk-3-0 (>= 3.9.10) | libgtk-4-1, libnspr4 (>= 2:4.9-2~), libnss3 (>= 2:3.35), libpango-1.0-0 (>= 1.14.0), libudev1 (>= 183), libvulkan1, libx11-6 (>= 2:1.4.99.1), libxcb1 (>= 1.9.2), libxcomposite1 (>= 1:0.4.4-1), libxdamage1 (>= 1:1.1), libxext6, libxfixes3, libxkbcommon0 (>= 0.5.0), libxrandr2, wget, xdg-utils (>= 1.0.2) Pre-Depends: dpkg (>= 1.14.0) Description: The web browser from Google Google Chrome is a browser that combines a minimal design with sophisticated technology to make the web faster, safer, and easier.
Это некоторые из наиболее часто используемых команд dpkg. Конечно, их много, но это должно стать хорошей отправной точкой для использования dpkg
в системах на базе Debian. Для получения более подробной информации обратитесь к страницам руководства:
man dpkg
Заключение
dpkg
это менеджер пакетов командной строки для управления программными пакетами в системах Linux на базе Debian. Хотя он не обрабатывает зависимости, он помогает вам вручную устанавливать, удалять и настраивать пакеты.
Как уже говорилось, dpkg
это инструмент среднего уровня, который не обрабатывает зависимости автоматически. Для разрешения зависимостей обычно используется apt
или apt-get
, которые являются интерфейсами более высокого уровня для dpkg
.
При установке или удалении пакетов часто лучше использовать apt
или apt-get
для обеспечения правильной обработки зависимостей.