В чем разница между APT и dpkg в Ubuntu?

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

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

APT vs dpkg: два важных установщика пакетов

APT и dpkg – это интерфейсы управления пакетами командной строки, которые вы можете использовать в терминале в Ubuntu и других системах на основе Debian. Они могут, среди прочего, устанавливать файлы DEB и перечислять установленные пакеты.

Но вам может быть интересно, так ли они похожи, зачем вам и APT, и dpkg?

Фактически, два интерфейса работают вместе, а APT действует как полноценный инструмент управления пакетами с помощью dpkg.

Смущенный? Давайте разберем основные отличия.

APT использует dpkg для установки пакетов

Когда APT (или его двоюродный брат, Apt-get) устанавливает пакет, он фактически использует для этого dpkg на сервере. Таким образом, dpkg действует скорее как скрытый инструмент для более удобного интерфейса APT.

APT может загружать пакеты

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

С помощью dpkg вы можете устанавливать только локальные файлы, которые вы уже скачали сами. Он не может выполнять поиск в удаленных репозиториях или извлекать из них пакеты.

Dpkg не устанавливает зависимости

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

Однако APT будет автоматически проверять и получать соответствующие зависимости, чтобы убедиться, что все, что вы пытаетесь установить, функции правильно. Вот почему мы рекомендуем после установки пакета с dpkg по-прежнему использовать специальную команду APT для восстановления зависимостей.

 sudo apt install -f

Dpkg индексирует только локальные пакеты

Если вы пытаетесь узнать о пакетах, установленных в вашей системе, функция –list в dpkg может помочь вам лучше, чем APT. Это связано с тем, что dpkg не может найти и загрузить удаленные пакеты, а также не может перечислить какие-либо пакеты, которые не являются локальными для устройства.

 dpkg --list

Команда APT list выведет список всех известных ей пакетов, локальных или иных.

 apt list

Чтобы увидеть только установленные пакеты, вы должны передать параметр –installed или -i .

 apt list --installed

Dpkg против Apt: что лучше для вас?

Если вы хотите установить локальные пакеты с помощью dpkg, вы можете сделать это без каких-либо проблем. Однако вам лучше использовать APT или Apt-get, если вы регулярно ищите пакеты в удаленных репозиториях программного обеспечения.

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