1. Введение
2. Обзор dpkg и aptitude
aptitude – это сложный инструмент управления пакетами, используемый в Linux-системах на базе Debian. Он облегчает установку и удаление пакетов, эффективно работает с зависимостями и предоставляет возможности поиска пакетов.
📦 Параметры команды dpkg-reconfigure
Благодаря интерактивному интерфейсу пользователи могут легко управлять пакетами, отслеживать зависимости и беспрепятственно обновлять систему. aptitude – это универсальный инструмент, упрощающий задачи управления пакетами в средах на базе Debian.
3. Особенности dpkg
Теперь давайте рассмотрим возможности dpkg в Linux.
3.1. Установка пакетов
$ 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.
Этот список включает имена пакетов, версии, описания и другую необходимую информацию.
Кроме того, он предлагает обзор установленных пакетов программного обеспечения, помогая в управлении системой и устранении неполадок.
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, затем изучили их особенности и, наконец, рассмотрели различия между ними.
см. также:
- 🐧 Как проверить наличие ожидающих обновлений на Ubuntu
- 🐧 Как очищать кэш APT после каждой операции
- 📦 Как составить список установленных пакетов по размеру на Ubuntu/Debian
- 🐧 Лучшие менеджеры пакетов Linux для новичков в системах Linux
- 📦 Три различных способа дублирования установленных пакетов на нескольких машинах Linux