Dpkg i что это
Перейти к содержимому

Dpkg i что это

  • автор:

Пакетный менеджер Dpkg для Debian систем

Debian package — это основная система управления пакетами в Debian подобных системах. dpkg используется для установки, удаления и получения информации о .deb пакетах.

dpkg является низкоуровневой утилитой. В настоящий момент чаще всего используется набор утилит APT

Использование

Требуются права суперпользователя для работы

sudo dpkg -i имя_пакета.deb

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

dpkg -l [маска]
dpkg -r имя_пакета

Инструменты разработчика

Пакет dpkg-dev содержит серию инструментов, которые вызываются для создания пакета.

dpkg-source архивирует и распаковывает исходные файлы пакета Debian.
dpkg-deb архивирует и распаковывает двоичные пакеты.

dpkg-gencontrol читает информацию из распакованного пакета Debian о дереве исходных файлов и генерирует двоичный пакет.

dpkg-shlibdeps прослеживает зависимости пакета.

dpkg-genchanges читает информацию из распакованного пакета Debian о дереве исходных файлов. которые запущены единожды создают контрольный файл (.changes).

dpkg-buildpackage контрольный скрипт, который может быть использован для автоматического создания пакета.

dpkg-distaddfile добавляет файл в файлы Debian.

dpkg-parsechangelog читает информацию из файла с изменениями распакованного пакета Debian и создаёт удобный файл с этими изменениями для просмотра его пользователем.

dpkg

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

Для получения списка пакетов, установленных в системе, в терминале наберите:

dpkg -l

В зависимости от количества пакетов в вашей системе, эта команда может породить большой объем вывода. Пропустите выходной поток через grep чтобы увидеть установлен ли определенный пакет:

dpkg -l | grep apache2

Замените apache2 на любое имя пакета, часть имени или иное регулярное выражение.

Для получения списка файлов, установленных пакетом (в нашем случае ufw), введите:

dpkg -L ufw

Если вы не уверены каким пакетом установлен файл, dpkg -S может подсказать вам. Например:

dpkg -S /etc/host.conf base-files: /etc/host.conf

Вывод указывает, что /etc/host.conf принадлежит пакету base-files.

Многие файлы автоматически создаются в процессе установки пакета, но несмотря на то, что они находятся на файловой системе, dpkg -S может не знать какому пакету они принадлежат.

Вы можете установить локальный .deb файл, набрав:

sudo dpkg -i zip_3.0-4_i386.deb

Замените zip_3.0-4_i386.deb на реальное имя локального .deb файла, который вы собираетесь установить.

Удаление пакета может быть выполнено так:

sudo dpkg -r zip

Удаление пакетов с использованием dpkg в большинстве случаев не рекомендуется. Лучше использовать менеджер пакетов, отслеживающий зависимости, чтобы гарантировать, что система находится в связанном состоянии. Например, использование dpkg -r zip удалит пакет zip, однако любые пакеты, зависящие от него, останутся установленными и более не смогут работать правильно.

Для дополнительной информации смотрите страницу описания:

Глава 8. Инструменты управления пакетами Debian

8.1. Какие программы для управления пакетами имеются в Debian?

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

Важно понимать, что высокоуровневые инструменты управления пакетами, такие как aptitude или synaptic , для управления пакетами используют apt , который, в свою очередь, использует dpkg для управления пакетами системы.

See Chapter 2. Debian package management of the Debian reference for more information about the Debian package management utilities. This document is available in various languages and formats, see the Debian Reference entry in the DDP Users’ Manuals overview.

8.1.1. dpkg

Это основная программа управления пакетами. dpkg может вызываться с многими параметрами. Наиболее часто используемые из них:

  • Показать список всех параметров: dpkg —help
  • Показать управляющий файл (и другую информацию) для указанного пакета: dpkg —info foo_VVV-RRR.deb
  • Установить пакет на жёсткий диск (т. е. распаковать и настроить): dpkg —install foo_VVV-RRR.deb
  • Распаковать архив Debian на жёсткий диск (но не настраивать): dpkg —unpack foo_VVV-RRR.deb . Учтите, что в результате данной операции пакет не обязан быть в рабочем состоянии; для правильной работы может потребоваться внесение изменений в некоторые файлы. Данная команда удаляет любую ранее установленную версию программы и запускает сценарий preinst указанного пакета (см. Раздел 7.6, «Зачем нужны сценарии preinst, postinst, prerm и postrm?»).
  • Настроить пакет, который был распакован ранее: dpkg —configure foo . Кроме всего прочего, эта команда запускает сценарий postinst указанного пакета (см. Раздел 7.6, «Зачем нужны сценарии preinst, postinst, prerm и postrm?»). Она также обновляет файлы, перечисленные в conffiles . Обратите внимание, что в качестве аргумента для параметра configure указывается имя пакета (т. е. foo), а не имя файла-архива Debian (т. е. foo_VVV-RRR.deb).
  • Распаковать файл с именем «blurf» (или группу файлов с именем «blurf*») из архива Debian: dpkg —fsys-tarfile foo_VVV-RRR.deb | tar -xf — ‘blurf*’
  • Удалить пакет (но не его файлы настроек): dpkg —remove foo
  • Удалить пакет (вместе с файлами настроек): dpkg —purge foo
  • Вывести состояние установки пакетов, содержащих в имени строку (или регулярное выражение) «foo*»: dpkg —list ‘foo*’

8.1.2. APT

APT is the Advanced Package Tool , an advanced interface to the Debian packaging system which provides the apt-get program. It provides commandline tools for searching and managing packages, and for querying information about them, as well as low-level access to all features of the libapt-pkg library. For more information, see the User’s Guide in /usr/share/doc/apt-doc/guide.html/index.html (you will have to install the apt-doc package).

Starting with Debian Jessie, some frequently used apt-get and apt-cache commands have an equivalent via the new apt binary. This means some popular commands like apt-get update , apt-get install , apt-get remove , apt-cache search , or apt-cache show now can also be called simply via apt , say apt update , apt install , apt remove , apt search , or apt show . The following is an overview of the old and new commands:

apt-get update -> apt update apt-get upgrade -> apt upgrade apt-get dist-upgrade -> apt full-upgrade apt-get install package -> apt install package apt-get remove package -> apt remove package apt-get autoremove -> apt autoremove apt-cache search string -> apt search string apt-cache policy package -> apt list -a package apt-cache show package -> apt show package apt-cache showpkg package -> apt show -a package

Инструмент apt совмещает функциональность apt-get и apt-cache, а также по умолчанию использует красивый цветной формат вывода, что очень удобно. Для использования в сценариях или для продвинутого использования предпочтительнее использовать apt-get (а иногда он просто необходим).

apt-get provides a simple way to retrieve and install packages from multiple sources using the command line. Unlike dpkg , apt-get does not understand .deb files, it works with the packages proper name and can only install .deb archives from a source specified in /etc/apt/sources.list . apt-get will call dpkg directly after downloading the .deb archives [5] from the configured sources.

Часто используемые команды apt-get :

  • To update the list of packages known by your system, you can run:
apt update
apt install foo
apt remove foo
apt source имя_пакета

Основные команды Linux: как работает dpkg

Сегодня мы поговорим об одной из утилит управления пакетами в Linux — dpkg.

Пакеты помогают доставить или установить любое приложение в системе Linux. По сути, пакеты — это сжатые архивы файлов и зависимостей, которые нужны для установки программы или сервиса. Они используются, когда вы устанавливаете новую программу или сервис. Все пакеты в системе хранятся в локальном “репозитории”.

Что умеет команда dpkg?

Справочная страница описывает ее так: “dpkg — это утилита для установки, сборки, удаления и управления пакетами Debian”.

С помощью команды dpkg мы взаимодействуем с пакетами в системе. Она полностью управляется с помощью параметров командной строки, где первый параметр называется параметром действия (action), он указывает, что именно нужно делать. За этим параметром может следовать (или не следовать) любой другой параметр.

Позже был разработан новый инструмент aptitude, чтобы предоставить пользователям более удобный интерактивный интерфейс для управления пакетами без сложностей команды dpkg. Он взаимодействует с интерфейсом dpkg от имени пользователя.

Теперь давайте попробуем разобраться с командой dpkg в Linux.

Основы команды dpkg в Linux

Базовый синтаксис команды dpkg выглядит так:

dpkg [options] [.deb package name]

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

  • -i или –install — установить пакет с помощью команды dpkg. Команда извлекает все управляющие файлы для указанного пакета, удаляет все ранее установленные старые экземпляры и устанавливает новый пакет в систему.
  • -r или –remove — удалить установленный пакет из системы. Удаляет все файлы конкретного пакета, кроме файлов конфигурации (вариант деинсталяции).
  • -P или –purge — альтернативный способ удаления установленного пакета из системы. Полностью удаляет все файлы конкретного пакета, включая файлы конфигурации (вариант “полной деинсталяции”).
  • –update-avail — получить информацию команды dpkg о доступных пакетах в ее репозиториях. Если новые пакеты доступны, то они синхронизируются с официальными репозиториями.
  • –merge-avail — объединить информацию команды dpkg о доступных пакетах в ее репозиториях с ранее доступной информацией. Обычно выполняется сразу после предыдущей команды.
  • –help — вывод страницы справки для команды dpkg и выход.

Это некоторые из часто используемых опций команды dpkg. Чтобы узнать больше, вы можете обратиться к опции help в терминале.

Использование команды dpkg

Давайте рассмотрим обычное использование команды dpkg. Команда работает одинаково для систем Debian и Ubuntu, однако в этом туториале мы будем рассматривать только Ubuntu.

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

Основная функция команды dpkg в Ubuntu — это установка пакета. С помощью параметра dpkg -i можно установить пакет deb в Ubuntu или Debian.

Вот как можно установить пакет:

sudo dpkg -i [package name]

Мы устанавливаем проигрыватель VLC в систему Ubuntu. Посмотрите на скриншот ниже — так выглядит установка на экране.

Чтобы установить несколько пакетов одновременно, укажите их имена через пробел.

2: Удаление пакета

Когда вам больше не нужна программа или сервис, нет смысла держать ее в системе.

Здесь также поможет команда dpkg.

Удалить программу или сервис из системы можно с помощью опции dpkg -r.

Теперь давайте удалим проигрыватель VLC, который мы ранее установили.

sudo dpkg -r [package name]

Посмотрите на скриншот ниже. Там показано, как dpkg запускает изменения (аналогично команде apt) для всех зависимых меню, значков рабочего стола и т. д.

3: Обновление репозиториев

В репозитории dpkg хранятся все пакеты, которые доступны для установки в дистрибутиве Ubuntu или Debian.

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

Опция dpkg –update-avail поможет вам в этом.

Она проверит онлайн-репозитории и загрузит все обновленные пакеты в локальный репозиторий.

Мы обновим локальные репозитории до последней версии:

sudo dpkg —update-avail

Подводим итоги

На этом мы подошли к концу нашей сегодняшней темы. Это все, что вам понадобится знать при работе с командой dpkg в Linux. Большинству пользователей не потребуется больше этих трех опций для команды. Более продвинутые функции вы найдете, запустив man dpkg — там вы сможете получить полную информацию обо всем, что умеет эта команда.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *