- Команда dpkg в Linux
- Синтаксис
- Параметры
- Использование команды Linux dpkg
- Установка пакета
- Список установленных пакетов
- Удаление пакетов
- Очистка пакета
- Проверка установки пакета
- Установка всех пакетов из каталога
- Список местоположений файлов установленных пакетов
- Получение имён пакетов
- Список установленных пакетов
- Установка выбора пакета
- Поддержка нескольких архитектур
- Вывод версии команды dpkg
- Вывод справки
- Заключение
Команда dpkg в Linux
В Linux команда dpkg — основной менеджер пакетов таких дистрибутивов как Ubuntu. Утилита устанавливает, создаёт, удаляет, настраивает пакеты формата .deb .
- Синтаксис
- Параметры
- Использование команды Linux dpkg
- Установка пакета
- Список установленных пакетов
- Удаление пакетов
- Очистка пакета
- Проверка установки пакета
- Установка всех пакетов из каталога
- Список местоположений файлов установленных пакетов
- Получение имён пакетов
- Список установленных пакетов
- Установка выбора пакета
- Поиск пакета, содержащего конкретные файлы
- Поддержка нескольких архитектур
- Вывод версии команды dpkg
- Вывод справки
Синтаксис
Параметры
Использование команды Linux dpkg
Действия, изменяющие систему, такие как установка или удаление пакетов, требуют привилегий sudo .
Установка пакета
Утилиту можно использовать для установки пакета .deb следующей командой:
$ sudo dpkg -i имя_пакета.deb
Список установленных пакетов
Для вывода списка установленных пакетов утилита используется с опцией -l :
mensh@139-162-132-20:~$ sudo dpkg -l link* Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-==============-============-============-================================= un links (no description available) mensh@139-162-132-20:~$
Для вывода всех пакетов команда используется с опцией -l :
mensh@139-162-132-20:~$ sudo dpkg -l Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-=====================================-============================================-============-===================================> ii accountsservice 0.6.55-0ubuntu12~20.04.5 amd64 query and manipulate user account i> ii adduser 3.118ubuntu2 all add and remove users and groups ii alsa-topology-conf 1.2.2-1 all ALSA topology configuration files ii alsa-ucm-conf 1.2.2-1ubuntu0.13 all ALSA Use Case Manager configuration> ii amd64-microcode 3.20191218.1ubuntu1 amd64 Processor microcode firmware for AM> rc apache2 2.4.41-4ubuntu3.13 amd64 Apache HTTP Server ii apparmor 2.13.3-7ubuntu5.2 amd64 user-space parser utility for AppAr> ii apport 2.20.11-0ubuntu27.26 all automatically generate crash report> ii apport-symptoms 0.23 all symptom scripts for apport ii apt 2.0.9 amd64 commandline package manager ii apt-utils 2.0.9 amd64 package management related utility > ii at 3.1.23-1ubuntu1 amd64 Delayed job execution and batch pro> ii base-files 11ubuntu5.7 amd64 Debian base system miscellaneous fi> ii base-passwd 3.5.47 amd64 Debian base system master password > ii bash 5.0-6ubuntu1.2 amd64 GNU Bourne Again SHell ii bash-completion 1:2.10-1ubuntu1 all programmable completion for the bas> ii bc 1.07.1-2build1 amd64 GNU bc arbitrary precision calculat> ii bcache-tools 1.0.8-3ubuntu0.1 amd64 bcache userspace tools ii bind9-dnsutils 1:9.16.1-0ubuntu2.14 amd64 Clients provided with BIND 9 ii bind9-host 1:9.16.1-0ubuntu2.14 amd64 DNS Lookup Utility ii bind9-libs:amd64 1:9.16.1-0ubuntu2.14 amd64 Shared Libraries used by BIND 9 ii bolt 0.9.1-2~ubuntu20.04.2 amd64 system daemon to manage thunderbolt> ii bsdmainutils 11.1.2ubuntu3 amd64 collection of more utilities from F> ii bsdutils 1:2.34-0.1ubuntu9.3 amd64 basic utilities from 4.4BSD-Lite ii btrfs-progs 5.4.1-2 amd64 Checksumming Copy on Write Filesyst> ii busybox-initramfs 1:1.30.1-4ubuntu6.4 amd64 Standalone shell setup for initramfs ii busybox-static 1:1.30.1-4ubuntu6.4 amd64 Standalone rescue shell with tons o> lines 1-32
Команда отображает пакеты в режиме пейджера. Перемещайтесь по страницам с помощью клавиш со стрелками или пробела. Нажмите q, для выхода из списка. В столбцах перечислены имя, версия, архитектура и описание каждого пакета.
Первые три столбца предоставляют полный обзор состояния пакета:
u Неизвестный i Установить h Держать r Удалить p Очистить
n Не установлен c Файлы конфигурации H Половина установлена U Распакованный F Наполовину настроен W Ожидание триггеров t Ожидающие триггеры i Установлен
Для получения конкретного экземпляра из списка используется следующая команда:
mensh@139-162-132-20:~$ sudo dpkg -l bash Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-==============-==============-============-================================= ii bash 5.0-6ubuntu1.2 amd64 GNU Bourne Again SHell mensh@139-162-132-20:~$
Для перечисления нескольких пакетов их имена разделяются пробелом.
Удаление пакетов
Для удаления установленного пакета команда используется с опцией -r :
Очистка пакета
Для очистки пакета утилита используется с опцией -P :
Команда удаляет пакет вместе со всеми файлами конфигурации.
Используйте очистку, чтобы полностью удалить программу из системы.
Проверка установки пакета
Для проверки установки пакета команда используется с опцией -s :
mensh@139-162-132-20:~$ sudo dpkg -s apt Package: apt Status: install ok installed Priority: important Section: admin Installed-Size: 4207 Maintainer: Ubuntu Developers Architecture: amd64 Version: 2.0.9 Replaces: apt-transport-https (= 2.0.9), ubuntu-keyring, libc6 (>= 2.15), libgcc-s1 (>= 3.0), libgnutls30 (>= 3.6.12), libseccomp2 (>= 2.4.2), libstdc++6 (>= 9), libsystemd0 Recommends: ca-certificates Suggests: apt-doc, aptitude | synaptic | wajig, dpkg-dev (>= 1.17.2), gnupg | gnupg2 | gnupg1, powermgmt-base Breaks: apt-transport-https ( mensh@139-162-132-20:~$
Строка состояния показывает, установлен ли пакет.
Установка всех пакетов из каталога
Для рекурсивной установки пакетов выполняется следующая команда:
Команда устанавливает все пакеты, расположенные в каталоге и любых подкаталогах. Если несколько экземпляров одного и того же пакета распаковываются, происходит только одна конфигурация.
Список местоположений файлов установленных пакетов
Для перечисления файлов пакета и их расположение утилита используется с опцией -L :
mensh@139-162-132-20:~$ sudo dpkg -L wget /. /etc /etc/wgetrc /usr /usr/bin /usr/bin/wget /usr/share /usr/share/doc /usr/share/doc/wget /usr/share/doc/wget/AUTHORS /usr/share/doc/wget/MAILING-LIST /usr/share/doc/wget/NEWS.gz /usr/share/doc/wget/README /usr/share/doc/wget/changelog.Debian.gz /usr/share/doc/wget/copyright /usr/share/info /usr/share/info/wget.info.gz /usr/share/man /usr/share/man/man1 /usr/share/man/man1/wget.1.gz mensh@139-162-132-20:~$
В выводе перечислены все файловые каталоги и местоположения файлов.
Получение имён пакетов
Для получения имён пакетов по выбору используется следующая команда:
mensh@139-162-132-20:~$ sudo dpkg --get-selections accountsservice install adduser install alsa-topology-conf install alsa-ucm-conf install amd64-microcode install apache2 deinstall apparmor install apport install apport-symptoms install apt install apt-utils install at install base-files install base-passwd install bash install bash-completion install bc install bcache-tools install bind9-dnsutils install bind9-host install bind9-libs:amd64 install . unrar install unzip install update-manager-core install update-notifier-common install upower install usb-modeswitch install usb-modeswitch-data install usb.ids install usbmuxd install usbutils install util-linux install uuid-runtime install vim install vim-common install vim-runtime install vim-tiny install wget install whiptail install whois install wireless-regdb install xauth install xdg-user-dirs install xfsprogs install xkb-data install xxd install xz-utils install zerofree install zip install zlib1g:amd64 install mensh@139-162-132-20:~$
В списке показаны имена пакетов и маркировка выбора.
Список установленных пакетов
Для получения списка установленных пакетов используется следующая команда:
$ sudo dpkg --get-selections | grep -v "deinstall" | awk '< print $1 >'
- grep отфильтровывает пакеты с пометкой «deinstall» ;
- awk печатает только первый столбец с именами пакетов.
Используйте этот метод, когда вам требуется список установленных программ.
Установка выбора пакета
Установка выбора пакета в следующем формате:
$ sudo echo | dpkg --set-selections
Команда ожидает состояние пакета в качестве стандартного ввода. Возможные условия:
Например для остановки обновления пакета используется следующая команда:
$ sudo echo cowsay hold | sudo dpkg --set-selections
Пакет находится в состоянии ожидания, то есть программа не получает автоматических обновлений.
Поиск пакета, содержащего конкретные файлы
Для поиска пакета, содержащего необходимый файл утилита запускается с опцией -S :
Например, необходимо найти apt-get :
mensh@139-162-132-20:~$ sudo dpkg -S apt-get apt: /usr/share/man/ja/man8/apt-get.8.gz apt: /usr/share/man/man8/apt-get.8.gz apt: /usr/share/man/pt/man8/apt-get.8.gz apt: /usr/share/man/fr/man8/apt-get.8.gz apt: /usr/share/man/it/man8/apt-get.8.gz bash-completion: /usr/share/bash-completion/completions/apt-get apt: /usr/bin/apt-get bash-completion: /usr/share/bash-completion/completions/slapt-get apt: /usr/share/man/de/man8/apt-get.8.gz apt: /usr/share/man/nl/man8/apt-get.8.gz mensh@139-162-132-20:~$
Поддержка нескольких архитектур
Все пакеты .deb содержат информацию о поддерживаемой архитектуре. Ограничение гарантирует, что система не получит двоичные файлы для неправильной архитектуры.
Некоторые архитектуры изначально поддерживают разные архитектуры. Например, amd64 (64-разрядная система) поддерживает установку i386 (32-разрядная система).
Команда dpkg соответствует архитектуре хоста. Получить информацию можно с помощью следующей команды:
mensh@139-162-132-20:~$ sudo dpkg --print-architecture amd64 mensh@139-162-132-20:~$
Для добавления или удаления поддержки архитектуры используется:
$ sudo dpkg --add-architecture $ sudo dpkg --remove-architecture
В обоих случаях сторонние архитектуры сразу перечисляют обновления вместе с изменениями.
Вывод версии команды dpkg
Для проверки используемой версии dpkg выполняется следующая команда:
mensh@139-162-132-20:~$ sudo dpkg --version Debian 'dpkg' package management program version 1.19.7 (amd64). This is free software; see the GNU General Public License version 2 or later for copying conditions. There is NO warranty. mensh@139-162-132-20:~$
Вывод показывает версию dpkg вместе с архитектурой.
Вывод справки
Для отображения меню справки выполняется следующая команда:
mensh@139-162-132-20:~$ sudo dpkg --help Usage: dpkg [ . ] Commands: -i|--install . | -R|--recursive . --unpack . | -R|--recursive . -A|--record-avail . | -R|--recursive . --configure . | -a|--pending --triggers-only . | -a|--pending -r|--remove . | -a|--pending -P|--purge . | -a|--pending -V|--verify [. ] Verify the integrity of package(s). . Comparison operators for --compare-versions are: lt le eq ne ge gt (treat empty version as earlier than any version); lt-nl le-nl ge-nl gt-nl (treat empty version as later than any version); < = >> > (only for compatibility with control file syntax). Use 'apt' or 'aptitude' for user-friendly package management. mensh@139-162-132-20:~$
Для получения полной документации используется команда man .
Заключение
Из приведённой статьи понятна роль утилиты dpkg в дистрибутивах Linux, основанных на пакетах Debian.
Эта утилита пользователям может быть очень полезна.