dpkg проти apt проти apt-get: реальні відмінності та коли використовувати кожен з них

Останнє оновлення: 27/02/2026
Автор: Ісаак
  • dpkg — це низькорівневий менеджер пакетів, який встановлює та видаляє локальні файли .deb без вирішення залежностей.
  • APT діє як високорівневий шар над dpkg, керуючи репозиторіями, кешуванням та автоматичним вирішенням залежностей.
  • apt, apt-get та aptitude — це різні інтерфейси APT, призначені для різних цілей: для кінцевого користувача, для написання скриптів та розширеного керування.
  • Вибір правильного інструменту для контексту спрощує адміністрування та зменшує кількість помилок у Debian та похідних системах.

Менеджери пакетів dpkg apt та apt-get

У дистрибутивах на базі Debian (таких як Ubuntu, Linux Mint або Devuan) дуже часто виникає питання про Яка різниця між використанням dpkg, apt, apt-get або навіть aptitude?На перший погляд, здається, що всі вони роблять одне й те саме: встановлюють, оновлюють та видаляють програми. Однак кожен з них відіграє різну роль в екосистемі програмного забезпечення, і розуміння цього позбавить вас багатьох клопотів.

У цій статті ми спокійно розглянемо, як це працює dpkg як менеджер низького рівняЩо пропонує APT як верхній шар, і чим вони відрізняються? apt, apt-get та aptitudeі які основні команди вам слід опанувати в кожному випадку. Ідея полягає в тому, що до кінця читання ви матимете чітке розуміння. коли використовувати кожен інструмент і чомуяк у повсякденних завданнях, так і в більш складних завданнях або сценаріях.

Основа всього: dpkg, низькорівневий менеджер пакетів

Основою, на якій базується вся система пакетів у Debian, є dpkg, власний менеджер пакетів, який працює безпосередньо з файлами .debЦе був перший менеджер пакетів для Debian і донині залишається стандартом для всіх похідних дистрибутивів. Якщо ви переходите з RPM, ви можете конвертувати пакети за допомогою Конвертувати пакети за допомогою Alien для створення .deb-файлів, які можна встановити за допомогою dpkg.

На відміну від високорівневих інструментів, dpkg займається лише Встановлення, видалення та запит локальних .deb-пакетівВін не обробляє віддалені репозиторії, не завантажує пакети з інтернету та не вирішує залежності самостійно. Якщо ви встановлюєте щось за допомогою dpkg, а бібліотека відсутня, вам доведеться виправити це вручну.

Це робить dpkg ідеальним інструментом для керувати пакетами дуже точно та контрольовано (наприклад, коли ви завантажуєте .deb файл вручну або коли збираєте власні пакети), але це також означає, що вам потрібно точно знати, що ви робите із залежностями.

Бінарний пакет, що надає цю утиліту в Debian, містить, окрім dpkg, інші пов'язані інструменти, такі як dpkg-deb, dpkg-split, dpkg-query, dpkg-divert або dpkg-trigger, а також допоміжні утиліти, такі як update-alternatives o start-stop-daemonДля завдань зі створення пакетів існує окремий пакет. dpkg-dev, який додає інструменти компіляції.

Перелік пакетів та станів за допомогою dpkg

Одна з перших речей, яка зазвичай потрібна будь-якому адміністратору, це перевірити, які пакети встановлені в системіЗа допомогою dpkg це можна зробити кількома способами:

  • dpkg -l: відображає список пакетів з їх статусом (встановлено, видалено тощо).
  • dpkg -l nombre_paquete: фільтрує лише цей пакет і повідомляє, чи він встановлений, чи ні.
  • dpkg --get-selections: відображає повний список пакетів та ваш поточний вибір.
  • dpkg --get-selections paqueteШвидко перевіряє, чи певний пакет позначено як встановлений, видалений тощо.

Цікава деталь dpkg –get-selections також відображає пакети у стані «видалення»Це пакети, які було видалено, але все ще зберігають файли конфігурації або метадані в системі. Пізніше ми побачимо, як це по-різному відображається під час запитів за допомогою APT.

Встановлення, видалення та очищення пакетів за допомогою dpkg

Для безпосередньої роботи із завантаженим файлом .deb, dpkg надає дуже зрозумілі команди для Встановлення та видалення певних пакетів без перегляду репозиторіїв:

  • dpkg -i paquete.deb: встановити вказаний пакет (install).
  • dpkg -r nombre_paquete: видаляє пакет, але залишає його файли конфігурації (видалити).
  • dpkg -P nombre_paquete: виконує повне очищення, також видаляючи пов'язані файли конфігурації (очищення).

Коли використовується опція -P замість -r Очищаються як бінарні файли, так і файли конфігурації, що дуже корисно, якщо ви хочете залишити систему так, ніби ви ніколи не встановлювали цю програму. Чого dpkg не зробить, повторюємо, так це Автоматично видаляти залежності, встановлені лише для цього пакетаВам доведеться впоратися з цим самостійно або покластися на APT.

Перегляд інформації та вмісту пакетів .deb

Ще однією цікавою особливістю є можливість перевірити, що містить пакет .deb або які метадані він міститьОсь тут і вступає в гру корисність. dpkg-deb, що входить до складу самого пакета dpkg:

  • dpkg-deb -I paquete.deb: відображає детальну інформацію про пакет (назва, версія, залежності, розробник тощо).
  • dpkg-deb --contents paquete.deb: перераховує всі файли, які будуть встановлені в системі під час встановлення цього .deb-файлу.

Ці варіанти дуже практичні, коли вам потрібно точно перевірити, що пакет робитиме у вашій системі або під час налагодження проблем зі шляхами та файлами, встановленими певним .deb-файлом.

APT: високорівневий шар над dpkg

APT (Advanced Package Tool) був побудований на основі dpkg, який є колекція бібліотек та утиліт, що додають роздільну здатність залежностей та керування репозиторіямиЗамість безпосереднього спілкування з файлами .deb, більшість користувачів взаємодіють з цим шаром, який, у свою чергу, викликає dpkg для низькорівневих операцій.

  Що таке DupeGuru. Використання, особливості, думки, ціни

APT здебільшого записується як Бібліотека C++, яка надає функції для маніпулювання базою даних пакетів, версій, походження та зв'язків.Кілька фронтендів командного рядка покладаються на цю бібліотеку: apt-get, apt-cache, apt а також зовнішні інструменти, такі як aptitude або графічні інтерфейси типу Synaptic.

У всіх поточних версіях Debian пакет apt має «важливий» пріоритет, що означає, що Це є частиною будь-якої базової установки системиІ, хоча dpkg залишається основою, для пересічного користувача "менеджером пакетів" для щоденного використання є APT, який також Він співіснує з іншими форматами, такими як Flatpak на багатьох сучасних столах.

Одна з найпотужніших функцій APT полягає в тому, що організовує встановлення та видалення пакетів в оптимальному порядкуПеред запуском dpkg виконує топологічне сортування списку пакетів для мінімізації конфліктів, і лише у складних випадках вдається до примусового виконання внутрішніх дій dpkg з опціями. --force якщо ви не можете знайти безпечну альтернативу.

Репозиторії та файл sources.list

APT завжди працює з репозиторії програмного забезпечення, заявлені у файлах конфігураціїОсновний файл — це /etc/apt/sources.listТут визначено офіційні вихідні коди пакетів Debian або Ubuntu, а також можна додати додаткові репозиторії сторонніх розробників. Якщо вам потрібно створити власний репозиторій програмного забезпечення Це буде корисно для розуміння того, як налаштувати APT на користувацьке джерело.

Окрім основного файлу, зазвичай є додаткові файли в розділі /etc/apt/sources.list.d/ для конкретних репозиторіїв. Ці точки можуть стосуватися локальних каталогів або фізичних носіїв (таких як CD/DVD), а також віддалених серверів, доступних через HTTP, HTTPS або FTP.

APT також підтримує локальний кеш інформації про всі пакети, доступні в цих репозиторіяхВ основному зберігається під /var/lib/apt/ і оновлюється за допомогою звичної команди apt update o apt-get update.

Для зручного редагування шрифтів сам пакет включає команда apt edit-sources, що відкриває головний файл за допомогою текстового редактора терміналу за замовчуванням sources.list або вказаний вами файл. Якщо у вас не налаштовано редактор, програма попросить вас вибрати один (nano, vim, neovim тощо), і з того часу завжди використовуватиме його.

Залежність пакета та управління станом

Велика різниця порівняно з dpkg полягає в тому, що APT Він автоматично обробляє та завантажує залежності.Коли ви запитуєте встановлення пакета, програма обчислює, які інші пакети потрібні, які версії сумісні та які конфлікти можуть виникнути, і лише потім викликає dpkg для впровадження змін. Для завдань діагностики та налагодження ви можете дізнатися, як… список залежностей пакета та уникнути порушення системи під час встановлення чогось.

APT також підтримує додатковий файл, /var/lib/apt/extended_statesде записується, чи був пакет явно встановлений користувачем, чи як залежність від іншого. Ця інформація є ключовою для таких функцій, як apt autoremove щоб вони могли з'ясувати, які пакети є кандидатами на видалення, оскільки вони "осиротіли".

Щодо штатів, є цікавий нюанс: APT, коли використовується apt list --installed, Пропустити пакети, позначені як «видалення» (ті, що були видалені, але зберегли свою конфігурацію). Вони відображаються у виводі apt list наприклад, «залишкова конфігурація», тоді як dpkg --get-selections Так, він відображає їх безпосередньо. Якщо якийсь список не відповідає, рекомендується переглянути вихідні результати та відфільтрувати їх за допомогою grep проаналізувати ці пограничні випадки.

Основні команди apt для щоденного використання

З приходом сучасного командування aptDebian та Ubuntu пропонують зручніший інтерфейс для виконання поширених завдань управління пакетамиоб'єднуючі функції, які раніше були розділені між apt-get y apt-cacheХоча він використовує ті самі бібліотеки внутрішньо, його синтаксис зручніший, а вивід легше читається; крім того, він співіснує з іншими форматами на робочому столі, такими як Керування AppImage в Linux.

Файл /etc/apt/sources.list що ми згадували раніше, концентрується за замовчуванням Інформація про всі репозиторії, що використовуються apt, на відміну від таких інструментів, як yum які зазвичай обробляють кілька файлів конфігурації. Це значно спрощує початкове налаштування для менш досвідчених користувачів.

Оновити інформацію про репозиторій

Перш ніж встановлювати щось, APT повинен мати оновлений список пакетів репозиторіїв Щоб дізнатися, які версії доступні, скористайтеся:

  • apt update: знову завантажує індекси пакетів з усіх налаштованих репозиторіїв.

Різниця зі старим apt-get update це те apt відображає дуже корисну додаткову інформацію, наприклад, кількість пакетів, які можна оновити, та повідомлення з пропозицією запуску apt list --upgradable щоб побачити їх детально.

Пошук пакетів у репозиторіях

Щоб знайти програму чи бібліотеку серед доступних, ми можемо використовувати вбудований пошук APTТрадиційно це робилося за допомогою apt-cache searchале команда apt спростити синтаксис:

  • apt search nombre o apt-cache search nombreВони шукають зазначений текст у завантаженій базі даних пакетів.

Ось так це просто побачити, який пакет відповідає певній програмі (наприклад, знайдіть «gimp», «vlc» або «libreoffice») та перевірте, чи доступний він для вашої версії дистрибутива.

Встановлення та видалення пакетів за допомогою apt

Найпоширеніша операція, яку ви виконуватимете за допомогою APT, це встановлювати та видаляти програмне забезпечення з репозиторіївСинтаксис тут дуже простий:

  • apt install paquete: встановлює запитуваний пакет та все необхідне як залежність.
  • apt remove paquete: видаляє пакет, але зберігає його файли конфігурації.
  • apt remove --purge paquete o apt purge paquete: видаляє пакет, а також його файли конфігурації системи.
  Як завантажити та встановити Курсори для Windows 10

Тільки коли використовується remove, «Залишки» можуть залишатися у вигляді каталогів конфігурації або конфігураційних файлівЦе нормально, тому що якщо ви перевстановите програму, вона збереже ваші налаштування. Якщо ви хочете повністю видалити її, опція очищення – це правильний вибір.

Приберіть відділи та видаліть залишки упаковок

Після встановлення та видалення програм з часом вони накопичуються Пакети, які були встановлені як залежності від інших пакетів, але більше не потрібніЩоб звільнити місце та підтримувати чистоту системи, APT пропонує:

  • apt autoremove: видаляє автоматично встановлені залежності, які більше не потрібні жодному з встановлених пакетів.

Цей порядок особливо корисний, оскільки періодичне технічне обслуговуванняоскільки він видаляє старі бібліотеки та файли, які лише займають місце, не роблячи нічого корисного для поточної системи.

Оновіть встановлені пакети за допомогою apt

Після оновлення індексів репозиторію наступним кроком є Застосуйте доступні оновлення для встановлених пакетівAPT розрізняє два рівні оновлення:

  • apt upgrade: оновлює встановлені пакети до їхніх останніх версій, за умови, що вони не потребують кардинального встановлення або видалення додаткових пакетів.
  • apt full-upgrade: виконує більш агресивне оновлення, дозволяючи вам встановлювати або видаляти пакети, якщо це необхідно для завершення процесу (еквівалентно старому apt-get dist-upgrade).

Зазвичай бігають першими apt update слідує apt upgrade як частина планового технічного обслуговування та резерву full-upgrade для суттєвих змін версії або коли ядро ​​та важливі компоненти оновлюються.

Інші корисні команди з пакету apt

Окрім найпопулярніших замовлень, APT включає Деякі додаткові команди, які значно спрощують життя:

  • apt show paquete: відображає детальну інформацію про пакет (опис, версію, залежності, репозиторій вихідного коду тощо) з упорядкованим виводом та без зайвих даних.
  • apt list: список пакетів відповідно до різних фільтрів; з --installed показує встановлений та з --upgradable ті, для яких доступне оновлення.
  • apt edit-sources: Відкриває вихідний файл APT для зміни репозиторіїв.

Все це робить apt — це свого роду «швейцарський ніж» для управління пакетами, що охоплює більшість завдань, які пересічний користувач виконує щодня, без необхідності запам'ятовувати величезну кількість підкоманд.

Apt-get та aptitude: інші класичні APT-інтерфейси

Хоча команда apt набула популярності в останні роки, apt-get та aptitude залишаються дуже актуальними інструментами в екосистемі Debian. Кожен з них має своє місце, і є вагомі причини знати, в якому контексті їх доречно використовувати.

Історично, apt-get було перший інтерфейс командного рядка для APTІснуючий з кінця 90-х років та представлений у незліченних скриптах та документації, він був розроблений для забезпечення стабільного та передбачуваного інтерфейсу, ідеального для автоматизації та неінтерактивних завдань.

Зі свого боку, aptitude народився як розумніша та зручніша альтернатива для користувачів, які віддають перевагу інтерактивному середовищуВін пропонує як сумісний зі скриптами режим командного рядка (CLI), так і текстовий інтерфейс (ncurses) з меню, фільтрами та організованим переглядом пакетів.

Типові функції та команди apt-get

з apt-get ви можете виконувати практично ті ж завдання, що й з aptОднак, він має дещо більш багатослівний синтаксис та менш зручний для користувача вивід. Його найчастіше використовувані команди:

  • apt-get update: оновлює індекси репозиторію.
  • apt-get upgrade: оновлює встановлені пакети без надмірно нав'язливих змін.
  • apt-get dist-upgradeеквівалентно apt full-upgrade сучасний, що дозволяє встановлювати та видаляти пакети для виконання складного оновлення.
  • apt-get install paquete: встановлює пакет з репозиторіїв шляхом вирішення залежностей.
  • apt-get remove paquete y apt-get purge paqueteВони видаляють пакети, з файлами конфігурації або без них.

Ключовою перевагою apt-get є те, що Його поведінка залишається надзвичайно стабільною між версіямиЗ цієї причини розробники Debian рекомендують продовжуйте використовувати його в скриптах та автоматизаціяхЯк apt Він більше орієнтований на кінцевого користувача та може змінювати дані виводу або значення за замовчуванням з часом.

Aptitude: інтерфейс ncurses та розширене вирішення залежностей

На відміну від apt та apt-get, aptitude сприяє дуже повний текстовий інтерфейс який запускається простим виконанням sudo aptitude Без суперечок. З цього екрана ви можете:

  • Переглядайте за категоріями пакетів (встановлені, доступні, застарілі тощо).
  • Пошук та фільтрація пакетів за різними критеріями (назва, опис, статус).
  • Виберіть кілька пакетів для встановлення, оновлення або видалення та застосуйте всі зміни одночасно.

Його найбільша технічна сила полягає в система вирішення залежностей на основі балів та альтернативКоли виникає складний конфлікт, aptitude зазвичай пропонує кілька рішень (наприклад, видалення пакета, збереження старішої версії або встановлення додаткових) та дозволяє користувачеві позначити, які частини пропозиції він бажає зберегти або відкинути під час наступної спроби вирішення.

З точки зору командного рядка, aptitude Він також підтримує такі команди, як:

  • aptitude update: для оновлення списку пакетів.
  • aptitude install paquete y aptitude remove paquete: встановлювати та видаляти пакети аналогічно до apt-get.
  • aptitude full-upgrade: виконати повне оновлення з власною логікою вирішення залежностей.
  Виправте помилку Adobe Save For Web

Крім того, здібності Він дуже детально записує, які пакети були встановлені вручну, а які були встановлені як залежності.і має опції заморожування версій, позначення пакетів для запобігання оновленням тощо. Деякі з цих функцій можна відтворити сьогодні за допомогою apt-markОднак, aptitude все ще високо цінується адміністраторами, які використовують його вже багато років.

Ключові відмінності між dpkg, APT, apt-get, apt та aptitude

Після окремого розгляду кожного інструменту корисно зробити групове фото для розуміння. Які саме відмінності між ними, і коли доречно використовувати кожен з них?Ми могли б узагальнити це трьома рівнями: низький, середній та високий.

На найбазовішому рівні є dpkg, який безпосередньо працює з локальними .deb-пакетамиВін не вирішує залежності та не взаємодіє з репозиторіями; він просто встановлює, видаляє або відображає інформацію про певний пакет. Його часто порівнюють з RPM у світі Red Hat, оскільки вони виконують подібні функції у відповідних сімействах розподілів.

На середньому/високому рівні ми маємо APT як система керування пакетами з репозиторіями, кешуванням інформації та автоматичним вирішенням залежностейВін забезпечує логіку того, що встановлюється і звідки, яка версія найкраща тощо. У світі Red Hat паралелізм можна знайти в таких інструментах, як YUM або DNF працює на RPM.

Вище APT знаходяться його різні інтерфейси:

  • apt-get: класичний, надійний та стабільний інтерфейс, високо орієнтований на скрипти та автоматизацію.
  • apt: сучасний інтерфейс кінцевого користувача, який об'єднує функції apt-get та apt-cache та пропонує чіткіший вивід.
  • aptitude: високорівневий менеджер пакетів з додатковими курсами TUI та особливо складною системою вирішення залежностей.

Якщо зосередитися на APT проти DPKG, то фундаментальна різниця полягає в тому, що APT може отримувати пакети з віддалених репозиторіїв, керувати кількома джерелами та обробляти всі залежності., тоді як DPKG встановлює та видаляє лише ті пакети, які ви передаєте йому як локальний файл.

Якщо порівняти apt та apt-get, обидва пропонують дуже схожі функції для встановлення, оновлення або видалення пакетівАле apt покращує представлення інформації, включає індикатори прогресу під час встановлення та об'єднує в одну команду речі, які раніше виконувалися за допомогою apt-get y apt-cacheНатомість, apt-get з часом забезпечує більш консервативний та стабільний API командного рядка.

Щодо здібностей, то їхньою головною відмінною рисою є інтерфейс ncurses та розширена обробка конфліктів залежностейХоча apt та apt-get намагаються знайти "найкраще" рішення одночасно, aptitude дозволяє користувачеві інтерактивно брати участь у процесі, вирішуючи, які пакети залишити, які понизити або які видалити.

Коли використовувати dpkg, apt, apt-get або aptitude на системах Debian

Як тільки відмінності стають зрозумілими, багато людей ставлять собі питання... яку команду використовувати в кожній конкретній ситуаціїНемає єдиної правильної відповіді, але є досить розумні закономірності, яких дотримуються багато адміністраторів та досвідчених користувачів.

Для щоденного використання на настільному комп'ютері або легкій серверній системі найзручнішим варіантом зазвичай є використовувати команду apt майже для всього: оновлення репозиторіїв, пошук програм, встановлення та видалення пакетів, перевірка доступних для оновлення опцій та випуск регулярних оновлень.

Коли маєш справу з сценарії планування встановлення, розгортання або обслуговуванняВ офіційній документації радиться продовжувати покладатися на apt-get (y apt-cache (для запитів), оскільки його вихідна поведінка та параметри набагато стабільніші між версіями, ніж у aptщо може змінити дрібні деталі, оскільки воно розроблене для людей, а не стільки для машин.

dpkg в основному зарезервовано для низькорівневі операції з вручну завантаженими пакетами .debЦе корисно для перевірки вмісту або у випадках, коли вам потрібен дуже точний контроль і ви не хочете, щоб APT втручався, вирішуючи залежності за вас. Це також дуже корисно для складних скриптів пакування або для налагодження специфічних проблем із файлами .deb.

Зі свого боку, здібності зазвичай проявляються, коли Ви стикаєтеся з справді складними конфліктами залежностей у старіших або сильно налаштованих середовищах Debian. Його механізм вирішення проблем зазвичай пропонує більше альтернатив, а інтерфейс ncurses дуже зручний для дослідження змін, які будуть внесені, перш ніж прийняти важливу операцію.

Зрештою, вся ця екосистема інструментів існує тому, що Кожен рівень вирішує окрему проблему в управлінні пакетами в Debian.dpkg як низькорівневий механізм, APT як мозок, який вирішує, що встановлювати і звідки, а його різні інтерфейси (apt, apt-get, aptitude) як видимі обличчя, адаптовані до різних профілів користувачів, від найпочатківців до адміністраторів, які живуть прикуті до терміналу.

Встановлення пакетів deb та rpm без команд
Пов'язана стаття:
Повний посібник з встановлення DEB та RPM-пакетів без ускладнень