📦 Различия между dpkg и aptitude

Разница между dpkg и aptitude

by itisgood

1. Введение

Управление пакетами программного обеспечения в Linux включает в себя контроль за коллекциями файлов, которые включают в себя приложения, библиотеки, файлы конфигурации и ресурсы, необходимые для работы программного обеспечения в системе Linux.
Этот процесс включает в себя такие задачи, как установка, удаление, обновление, проверка пакетов и работа с зависимостями.
Цель – поддерживать работу программного обеспечения и обеспечивать стабильность и безопасность системы.
В этом руководстве мы сравним dpkg и aptitude и объясним, в каких случаях следует использовать один из них, а в каких – другой.
Сначала мы познакомимся с обзором dpkg и aptitude.
Затем мы изучим возможности dpkg и aptitude. И наконец, мы увидим разницу между dpkg и aptitude.

2. Обзор dpkg и aptitude

Для начала давайте сделаем обзор dpkg и aptitude.
dpkg – это основной инструмент управления пакетами в дистрибутивах Linux на базе Debian.
Его основное назначение – установка, удаление и управление пакетами программного обеспечения.
Кроме того, он может предоставлять информацию о пакетах, работать с конфигурационными файлами, проверять целостность пакетов, изменять конфигурацию пакетов и извлекать содержимое пакетов.
Таким образом, он работает только непосредственно с файлами пакетов.
Однако в нем отсутствуют некоторые расширенные возможности менеджеров пакетов более высокого уровня, таких как apt или aptitude.

aptitude – это сложный инструмент управления пакетами, используемый в Linux-системах на базе Debian. Он облегчает установку и удаление пакетов, эффективно работает с зависимостями и предоставляет возможности поиска пакетов.

📦 Параметры команды dpkg-reconfigure

Благодаря интерактивному интерфейсу пользователи могут легко управлять пакетами, отслеживать зависимости и беспрепятственно обновлять систему. aptitude – это универсальный инструмент, упрощающий задачи управления пакетами в средах на базе Debian.

3. Особенности dpkg

Теперь давайте рассмотрим возможности dpkg в Linux.

3.1. Установка пакетов

Мы можем установить пакеты Debian в систему с помощью dpkg:
$ dpkg -i package.deb

Далее установим пакет cowsay с помощью dpkg:

$ sudo dpkg -i cowsay_3.03+dfsg2-4_all.deb
[sudo] password for kali: 
Selecting previously unselected package cowsay.
(Reading database ... 405387 files and directories currently installed.)
Preparing to unpack cowsay_3.03+dfsg2-4_all.deb ...
Unpacking cowsay (3.03+dfsg2-4) ...
Setting up cowsay (3.03+dfsg2-4) ...
Processing triggers for man-db (2.12.0-3) ...

В приведённой выше команде dpkg устанавливает указанный файл пакета Debian в нашу систему.

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

3.2 . Удаление пакетов

Аналогичным образом мы можем удалить установленные пакеты из системы с помощью dpkg:

$ dpkg -r package_name

Теперь давайте удалим пакет cowsay, который мы установили выше, с помощью dpkg:

$ sudo dpkg -r cowsay
(Reading database ... 229238 files and directories currently installed.)
Removing cowsay (3.03+dfsg2-4) ...
Processing triggers for man-db (2.10.2-1) ...

Таким образом, использование команды dpkg эффективно удаляет указанный пакет из нашей системы.

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

3.3. Информация о пакете

Далее мы можем использовать dpkg для получения подробной информации об установленных пакетах.

Давайте получим подробную информацию о пакете cowsay:

$ sudo dpkg -I cowsay*
 new Debian package, version 2.0.
 size 17684 bytes: control archive=2140 bytes.
 	731 bytes,	17 lines  	control         	 
	3530 bytes,	52 lines  	md5sums         	 
 Package: cowsay
 Version: 3.03+dfsg2-4
 Architecture: all
 Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
 Original-Maintainer: Tony Maillefaud <maltouzes@gmail.com>
 Installed-Size: 87
 Depends: libtext-charwidth-perl, perl:any
 Suggests: filters, cowsay-off
 Section: games
 Priority: optional
 Homepage: https://web.archive.org/web/20120527202447/http://www.nog.net/~tony/warez/cowsay.shtml
 Description: configurable talking cow
  Cowsay (or cowthink) will turn text into happy ASCII cows, with
  speech (or thought) balloons. If you don't like cows, ASCII art is
  available to replace it with some other creatures (Tux, the BSD
  daemon, dragons, and a plethora of animals, from a turkey to
  an elephant in a snake).

После выполнения приведённой выше команды она получает и отображает информацию о пакетах Debian, соответствующих шаблону cowsay*.

Кроме того, она предоставляет такие подробности, как имя пакета, версия, архитектура, зависимости, информация о сопровождающем, описание и многое другое без фактической установки пакетов.

3.4. Содержимое пакета

Впоследствии мы можем использовать флаг -c, чтобы получить содержимое пакета.

Теперь давайте посмотрим содержимое пакета cowsay:

$ dpkg -c cowsay*
drwxr-xr-x root/root     	0 2017-11-22 22:17 ./
drwxr-xr-x root/root     	0 2017-11-22 22:17 ./usr/
drwxr-xr-x root/root     	0 2017-11-22 22:17 ./usr/games/
-rwxr-xr-x root/root  	4664 2017-11-22 22:17 ./usr/games/cowsay
drwxr-xr-x root/root     	0 2017-11-22 22:17 ./usr/share/
drwxr-xr-x root/root     	0 2017-11-22 22:17 ./usr/share/cowsay/
drwxr-xr-x root/root     	0 2017-11-22 22:17 ./usr/share/cowsay/cows/
-rw-r--r-- root/root   	115 2017-11-22 22:17 ./usr/share/cowsay/cows/apt.cow
-rw-r--r-- root/root   	310 1999-08-14 12:17 ./usr/share/cowsay/cows/bud-frogs.cow
-rw-r--r-- root/root   	123 1999-08-14 12:17 ./usr/share/cowsay/cows/bunny.cow
-rw-r--r-- root/root  	1127 2017-11-22 22:17 ./usr/share/cowsay/cows/calvin.cow
-rw-r--r-- root/root   	480 1999-08-14 12:17 ./usr/share/cowsay/cows/cheese.cow
...........

Приведённая выше команда перечисляет содержимое пакетов Debian.

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

3.5. Список всех установленных пакетов

dpkg позволяет просмотреть список всех пакетов, уже установленных в нашей системе.

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

$ 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                     	>
+++-==========================================-================================>
ii  accountsservice                        	22.07.5-2ubuntu1.4          	>
ii  acl                                    	2.3.1-1                     	>
ii  acpi-support                           	0.144                       	>
ii  acpid                                  	1:2.0.33-1ubuntu1           	>
ii  adduser                                	3.118ubuntu5                	>
ii  adwaita-icon-theme                     	41.0-1ubuntu1               	>
ii  aisleriot                              	1:3.22.22-1                 	>
ii  alsa-base                              	1.0.25+dfsg-0ubuntu7        	>
ii  alsa-topology-conf                     	1.2.5.1-2                   	>
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                     	>
+++-==========================================-================================>
ii  accountsservice                        	22.07.5-2ubuntu1.4 
.............

Команда dpkg -l предоставляет полный список всех установленных пакетов в системе Linux на базе Debian.

Этот список включает имена пакетов, версии, описания и другую необходимую информацию.

📦 Как составить список доступных обновлений и обновляемых пакетов с помощью команд Apt, Apt-Get, Aptitude

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

4. Возможности aptitude

Теперь мы рассмотрим функциональные возможности aptitude в Linux.

4.1. Установка пакетов

Для установки пакетов мы также можем использовать aptitude.

Теперь давайте установим плеер VLC с помощью aptitude:

$ sudo aptitude vlc
The following NEW packages will be installed:
  liba52-0.7.4{a} libaribb24-0{a} libcddb2{a} libdvbpsi10{a} libebml5{a}
  libixml11{a} liblirc-client0{a} libmad0{a} libmatroska7{a}
  libmpeg2-4{a} libopenmpt-modplug1{a} libprotobuf-lite32{a}
  libproxy-tools{a} libresid-builder0c2a{a} libsidplay2{a}
  libspatialaudio0{a} libupnp17{a} libva-wayland2{a} libvlc-bin{a}
  libvlc5{a} libvlccore9{a} libvncclient1{a} libxcb-composite0{a} vlc
  vlc-bin{a} vlc-data{a} vlc-l10n{a} vlc-plugin-access-extra{a}
  vlc-plugin-base{a} vlc-plugin-notify{a} vlc-plugin-qt{a}
  vlc-plugin-samba{a} vlc-plugin-skins2{a} vlc-plugin-video-output{a}
  vlc-plugin-video-splitter{a} vlc-plugin-visualization{a}
0 packages upgraded, 36 newly installed, 0 to remove and 434 not upgraded.
Need to get 14.4 MB of archives. After unpacking 70.5 MB will be used.
............

После выполнения команды выполняется поиск пакета vlc с помощью менеджера пакетов aptitude в дистрибутивах Linux на базе Debian.

4.2. Работа с зависимостями

Также мы можем использовать aptitude для отслеживания зависимостей между пакетами, гарантируя, что установленные пакеты будут согласованы и совместимы друг с другом:

$ sudo aptitude install -f
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 434 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.

Приведенная выше команда автоматически решает проблемы с зависимостями и исправляет поврежденные пакеты в процессе установки в системах Linux на базе Debian.

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

4.3. Поиск пакетов

aptitude предоставляет удобный способ поиска пакетов по таким критериям, как имя пакета, описание или ключевые слова.

Например, давайте поищем пакет firefox в нашей системе:

$ aptitude search firefox
p   activity-aware-firefox     	- wrapper to make Firefox aware of Plasma
p   firefox-developer-edition-en-u - Mozilla Firefox web browser - Developer
i A firefox-esr                	- Mozilla Firefox web browser - Extended S
p   firefox-esr-l10n-ach       	- Acoli language package for Firefox ESR  
p   firefox-esr-l10n-af        	- Afrikaans language package for Firefox E
p   firefox-esr-l10n-all       	- All language packages for Firefox ESR (m
p   firefox-esr-l10n-an        	- Aragonese language package for Firefox E
p   firefox-esr-l10n-ar        	- Arabic language package for Firefox ESR
p   firefox-esr-l10n-ast       	- Asturian language package for Firefox ES
p   firefox-esr-l10n-az        	- Azerbaijani language package for Firefox
p   firefox-esr-l10n-be        	- Belarusian language package for Firefox
p   firefox-esr-l10n-bg        	- Bulgarian language package for Firefox E
p   firefox-esr-l10n-bn        	- Bengali language package for Firefox ESR                              
p   firefox-esr-l10n-br        	- Breton language package for Firefox ESR
p   firefox-esr-l10n-bs        	- Bosnian language package for Firefox ESR
p   firefox-esr-l10n-ca        	- Catalan language package for Firefox ESR
............

Команда search позволяет нам использовать менеджер пакетов aptitude в системах на базе Debian для поиска пакетов, связанных с Firefox.

Она представляет список пакетов, соответствующих поисковому запросу firefox, с описанием и дополнительными деталями, помогая обнаружить и изучить пакеты, связанные с Firefox, в системе.

4.4. Интерактивный интерфейс

aptitude предоставляет интерактивный интерфейс командной строки с меню и сочетаниями клавиш, что позволяет легко ориентироваться и эффективно выполнять задачи по управлению пакетами:

$ aptitude

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

Этот интерфейс включает меню и сочетания клавиш.

Таким образом, эти функции делают навигацию и эффективное выполнение различных задач по управлению пакетами удобными.

4.5. Обновление системы

Таким образом, мы можем использовать aptitude для обновления всей системы до последних доступных пакетов, гарантируя, что все установленное программное обеспечение является актуальным:

$ sudo aptitude full-upgrade
The following NEW packages will be installed:
  gcr4{a} libgck-2-2{a} libgcr-4-4{a} libjq1{a} libonig5{a}
  python3-pyasyncore{a} python3-shtab{a}
The following packages will be REMOVED:
  libadwaita-1-0{u} libappstream5{u} libboost-dev{u} libboost1.83-dev{u}
  libopenblas-dev{u} libopenblas-pthread-dev{u} libopenblas0{u}
  libpython3-all-dev{u} libpython3.12{u} libpython3.12-dev{u}
  libstemmer0d{u} libxmlb2{u} libxsimd-dev{u} python3-all-dev{u}
  python3-beniget{u} python3-gast{u} python3-pythran{u}
  python3.12-dev{u} xtl-dev{u} zenity{u} zenity-common{u}
................

Эта команда используется в системах Linux на базе Debian для выполнения комплексного обновления системы.

Она обновляет все установленные пакеты до их последних версий.

Кроме того, она разрешает зависимости пакетов и обеспечивает обновление системы последними обновлениями программного обеспечения и безопасности.

4.6. Удаление пакетов

Мы можем использовать aptitude для удаления ненужных пакетов в нашей системе.

Теперь давайте удалим пакет vlc, который был установлен ранее с помощью aptitude:

$ sudo aptitude remove vlc
The following packages will be REMOVED:  
  liba52-0.7.4{u} libaribb24-0{u} libcddb2{u} libdvbpsi10{u} libebml5{u}
  libixml11{u} liblirc-client0{u} libmad0{u} libmatroska7{u}
  libmpeg2-4{u} libopenmpt-modplug1{u} libprotobuf-lite32{u}
  libproxy-tools{u} libresid-builder0c2a{u} libsidplay2{u}
  libspatialaudio0{u} libupnp17{u} libva-wayland2{u} libvlc-bin{u}
  libvlc5{u} libvlccore9{u} libvncclient1{u} libxcb-composite0{u} vlc
  vlc-bin{u} vlc-data{u} vlc-l10n{u} vlc-plugin-access-extra{u}
  vlc-plugin-base{u} vlc-plugin-notify{u} vlc-plugin-qt{u}
  vlc-plugin-samba{u} vlc-plugin-skins2{u} vlc-plugin-video-output{u}
  vlc-plugin-video-splitter{u} vlc-plugin-visualization{u}
0 packages upgraded, 0 newly installed, 36 to remove and 434 not upgraded.
Need to get 0 B of archives. After unpacking 70.5 MB will be freed.
Do you want to continue? [Y/n/?]

С помощью менеджера пакетов aptitude приведенная выше команда удаляет пакет медиаплеера VLC из системы Linux на базе Debian.

При этом удаляются все связанные с ним файлы, включая файлы конфигурации, и освобождается место на диске, ранее занимаемое пакетом.

4.7. Очистка пакета

Аналогичным образом функция aptitude purge удаляет из системы файлы пакетов и конфигурации.

Далее приступим к очистке пакета vlc из системы:

$ sudo aptitude purge vlc
The following packages will be REMOVED:  
  liba52-0.7.4{u} libaribb24-0{u} libcddb2{u} libdvbpsi10{u} libebml5{u}
  libixml11{u} liblirc-client0{u} libmad0{u} libmatroska7{u}
  libmpeg2-4{u} libopenmpt-modplug1{u} libprotobuf-lite32{u}
  libproxy-tools{u} libresid-builder0c2a{u} libsidplay2{u}
  libspatialaudio0{u} libupnp17{u} libva-wayland2{u} libvlc-bin{u}
  libvlc5{u} libvlccore9{u} libvncclient1{u} libxcb-composite0{u} vlc{p}
  vlc-bin{u} vlc-data{u} vlc-l10n{u} vlc-plugin-access-extra{u}
  vlc-plugin-base{u} vlc-plugin-notify{u} vlc-plugin-qt{u}
  vlc-plugin-samba{u} vlc-plugin-skins2{u} vlc-plugin-video-output{u}
  vlc-plugin-video-splitter{u} vlc-plugin-visualization{u}
0 packages upgraded, 0 newly installed, 36 to remove and 434 not upgraded.
Need to get 0 B of archives. After unpacking 70.5 MB will be freed.
Do you want to continue? [Y/n/?]

Приведенная выше команда полностью удаляет пакет медиаплеера VLC из системы Linux на базе Debian, включая его конфигурационные файлы.

Таким образом, это действие обеспечивает отсутствие пакета в системе, возвращая её в состояние, как если бы он никогда не был установлен.

Это обеспечивает полный возврат к состоянию пакета по умолчанию или удаляет любые остаточные файлы после деинсталляции.

Примечательно, что при управлении пакетами в Linux, если мы удаляем пакет, то удаляются и файлы.

Таким образом, настройки конфигурации пакета сохраняются.

Однако очистка пакета подразумевает удаление файлов и конфигураций и возврат к состоянию по умолчанию.

5. Различия между dpkg и aptitude

dpkg и aptitude – это инструменты управления пакетами в дистрибутивах Linux на базе Debian.

Однако они служат для разных целей и имеют разные возможности.

Давайте рассмотрим некоторые из основных различий между ними.

5.1. Назначение

dpkg – это низкоуровневый инструмент управления пакетами, который напрямую взаимодействует с файлами пакетов Debian *.deb. Он выполняет такие задачи, как установка, удаление и запрос информации о пакете.

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

5.2. Уровень взаимодействия

dpkg работает в основном через интерфейс командной строки или CLI и не имеет интерактивного интерфейса.

aptitude предоставляет интерактивный CLI с меню и сочетаниями клавиш, что упрощает навигацию и выполнение задач по управлению пакетами.

5.3. Разрешение зависимостей

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

aptitude автоматически разрешает зависимости при установке или удалении пакетов, гарантируя, что он установит или удалит все необходимые зависимости вместе с пакетом.

5.4. Возможности

dpkg предлагает основные функции управления пакетами, такие как установка, удаление, запрос информации о пакете, проверка, изменение конфигурации и извлечение.

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

5.5. Опыт пользователя

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

Аналогичным образом, aptitude предлагает более интуитивный и удобный интерфейс, подходящий как для новичков, так и для опытных пользователей.

Его функции упрощают задачи управления пакетами и обеспечивают более интерактивный контроль над состоянием пакетов в системе.

5.6. Резюме

В целом, dpkg является основополагающим инструментом управления пакетами в системах на базе Debian.

Он фокусируется на основных задачах, таких как установка, удаление и поиск информации непосредственно из файлов пакетов Debian *.deb.

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

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

Кроме того, его легко использовать для управления программными пакетами.

Заключение

В этом руководстве мы сравнили dpkg и aptitude и объяснили, в каких случаях следует использовать один из них, а в каких – другой.

Сначала мы получили представление о dpkg и aptitude, затем изучили их особенности и, наконец, рассмотрели различия между ними.

см. также:

 

 

You may also like

Leave a Comment