- В чем разница между APT и dpkg в Ubuntu?
- APT vs dpkg: два важных установщика пакетов
- APT использует dpkg для установки пакетов
- APT может загружать пакеты
- Dpkg не будет устанавливать зависимости
- Dpkg индексирует только локальные пакеты
- Глава 8. Инструменты управления пакетами Debian
- 8.1. Какие программы для управления пакетами имеются в Debian?
- 8.1.1. dpkg
- 8.1.2. APT
В чем разница между APT и dpkg в Ubuntu?
Ubuntu и другие дистрибутивы на основе Debian управляют пакетами с помощью APT и dpkg. Но какой из них лучше подходит для ваших нужд?
Если вы используете 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 для восстановления зависимостей.
Dpkg индексирует только локальные пакеты
Если вы пытаетесь узнать о пакетах, установленных в вашей системе, функция —list в dpkg может сделать это лучше, чем APT. Это потому, что точно так же, как dpkg не может найти и загрузить удаленные пакеты, он также не может перечислить любые пакеты, которые не являются локальными для устройства.
Команда APT list перечислит каждый пакет, о котором он знает, локальный или иной.
Чтобы увидеть только установленные пакеты, вы должны передать опцию —installed или -i .
Глава 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 :