- dpkg je správce balíčků nízké úrovně, který instaluje a odstraňuje lokální soubory .deb bez řešení závislostí.
- APT funguje jako vrstva vysoké úrovně nad dpkg, spravuje repozitáře, ukládání do mezipaměti a automatické rozlišení závislostí.
- apt, apt-get a aptitude jsou různé APT frontendy určené pro různé účely: pro koncového uživatele, skriptování a pokročilou správu.
- Výběr správného nástroje pro daný kontext zjednodušuje administraci a snižuje počet chyb na Debianu a odvozených systémech.

V distribucích založených na Debianu (jako je Ubuntu, Linux Mint nebo Devuan) je velmi běžné, že se objeví otázka ohledně Jaký je rozdíl mezi použitím dpkg, apt, apt-get nebo dokonce aptitude?Na první pohled se zdá, že všechny dělají totéž: instalují, aktualizují a odstraňují programy. Každý z nich však hraje v softwarovém ekosystému jinou roli a pochopení této funkce vám ušetří spoustu starostí.
V tomto článku si klidně rozebereme, jak to funguje dpkg jako správce nízké úrovněCo přináší APT jako vrchní vrstva a jak se liší? apt, apt-get a aptitudea které základní příkazy byste měli v každém případě zvládnout. Cílem je, abyste na konci čtení měli jasnou představu. kdy a proč použít který nástrojjak v každodenních úkolech, tak i v pokročilejších úkolech nebo skriptech.
Základ všeho: dpkg, správce balíčků nízké úrovně
Pilíř, na kterém je založen celý systém balíčků v Debianu, je dpkg, nativní správce balíčků, který pracuje přímo se soubory .debByl to první správce balíčků pro Debian a dodnes zůstává standardem pro všechny odvozené distribuce. Pokud přecházíte z RPM, můžete konvertovat balíčky pomocí Převod balíčků pomocí Alien generovat soubory .deb, které lze nainstalovat pomocí dpkg.
Na rozdíl od nástrojů na vysoké úrovni se dpkg zabývá pouze Instalace, odinstalace a dotazování lokálních balíčků .debNezvládá vzdálené repozitáře, nestahuje balíčky z internetu ani sám neřeší závislosti. Pokud něco instalujete pomocí dpkg a chybí knihovna, budete to muset opravit ručně.
Díky tomu je dpkg ideálním nástrojem pro spravovat balíky velmi přesným a kontrolovaným způsobem (například když si ručně stahujete soubor .deb nebo když si vytváříte vlastní balíčky), ale také to znamená, že musíte přesně vědět, co se závislostmi děláte.
Binární balíček, který poskytuje tento nástroj v Debianu, obsahuje kromě dpkg i další související nástroje, jako například dpkg-deb, dpkg-split, dpkg-query, dpkg-divert nebo dpkg-trigger, spolu s pomocnými nástroji, jako je např. update-alternatives o start-stop-daemonPro úlohy sestavování balíčků existuje samostatný balíček. dpkg-dev, který přidává nástroje pro kompilaci.
Vypsat balíčky a stavy pomocí dpkg
Jedna z prvních věcí, které každý administrátor obvykle potřebuje, je zkontrolujte, které balíčky jsou nainstalovány v systémuS dpkg to lze provést několika způsoby:
dpkg -l: zobrazí seznam balíčků s jejich stavem (nainstalováno, smazáno atd.).dpkg -l nombre_paquete: filtruje pouze daný balíček a informuje vás, zda je nainstalován či nikoli.dpkg --get-selections: zobrazí kompletní seznam balíčků a váš aktuální výběr.dpkg --get-selections paqueteRychle zkontroluje, zda je konkrétní balíček označen jako nainstalovaný, odinstalovaný atd.
Zajímavý detail je to dpkg –get-selections také vypíše balíčky ve stavu „odeinstall“Jedná se o balíčky, které byly odinstalovány, ale stále si v systému zachovávají konfigurační soubory nebo metadata. Později uvidíme, jak se to projeví při dotazování pomocí APT.
Instalace, odebrání a vyčištění balíčků pomocí dpkg
Pro přímou práci se staženým souborem .deb nabízí dpkg velmi jasné příkazy pro Instalace a odinstalace konkrétních balíčků bez procházení repozitářů:
dpkg -i paquete.deb: nainstalovat zadaný balíček (install).dpkg -r nombre_paquete: odstraní balíček, ale ponechá jeho konfigurační soubory (odebrat).dpkg -P nombre_paquete: provede úplné vyčištění, které také smaže související konfigurační soubory (vyčištění).
Kdy se používá volba -P místo -r Vyčistí se jak binární soubory, tak konfigurační soubory, což je velmi užitečné, pokud chcete systém nechat tak, jako byste danou aplikaci nikdy nenainstalovali. Co dpkg neudělá, opakujeme... Automaticky odebrat závislosti, které byly nainstalovány pouze pro daný balíčekBudete si to muset zvládnout sami nebo se spolehnout na APT.
Zobrazení informací a obsahu balíčků .deb
Další zajímavou funkcí je možnost zkontrolovat, co balíček .deb obsahuje nebo jaká metadata obsahujeA právě tam přichází na řadu užitečnost. dpkg-deb, který je součástí samotného balíčku dpkg:
dpkg-deb -I paquete.deb: zobrazuje podrobné informace o balíčku (název, verze, závislosti, správce atd.).dpkg-deb --contents paquete.deb: vypíše všechny soubory, které by se do systému nainstalovaly při instalaci daného .deb souboru.
Tyto možnosti jsou velmi praktické, když potřebujete auditujte přesně, co bude balíček ve vašem systému dělat nebo při ladění problémů s cestami a soubory nainstalovanými konkrétním souborem .deb.
APT: vrstva vysoké úrovně nad dpkg
APT (Advanced Package Tool) byl postaven na nástroji dpkg, který je kolekce knihoven a utilit, které přidávají řešení závislostí a správu repozitářůMísto přímé komunikace se soubory .deb většina uživatelů interaguje s touto vrstvou, která následně volá dpkg pro nízkoúrovňové operace.
APT se z velké části píše jako Knihovna C++, která poskytuje funkce pro manipulaci s databází balíčků, verzí, původů a vztahů.Několik frontendů příkazového řádku se spoléhá na tuto knihovnu: apt-get, apt-cache, apt a také externí nástroje, jako např. aptitude nebo grafická rozhraní typu Synaptic.
Ve všech aktuálních verzích Debianu je balíček apt má „důležitou“ prioritu, což znamená, že Je součástí každé základní instalace systému.A ačkoliv dpkg zůstává jádrem, pro průměrného uživatele je „správcem balíčků“ pro každodenní použití APT, který také Existuje koexistence s dalšími formáty, jako je Flatpak na mnoha moderních stolech.
Jednou z nejsilnějších funkcí APT je, že organizuje instalaci a odinstalaci balíčků v optimálním pořadíPřed spuštěním dpkg provede topologické třídění seznamu balíčků, aby minimalizoval konflikty, a pouze v obtížných případech se uchýlí k vynucení interních akcí dpkg s volbami. --force pokud nemůžete najít bezpečnou alternativu.
Repozitáře a soubor sources.list
APT vždy funguje od softwarové repozitáře deklarované v konfiguračních souborechHlavní soubor je /etc/apt/sources.listZde jsou definovány oficiální zdrojové kódy balíčků Debianu nebo Ubuntu a lze přidat další repozitáře třetích stran. Pokud potřebujete vytvořit si vlastní softwarový repozitář To vám bude užitečné k pochopení toho, jak cílit APT na vlastní zdroj.
Kromě hlavního souboru je běžné mít další soubory pod /etc/apt/sources.list.d/ pro konkrétní repozitáře. Tyto body se mohou vztahovat na lokální adresáře nebo fyzická média (například CD/DVD), stejně jako na vzdálené servery přístupné přes HTTP, HTTPS nebo FTP.
APT také udržuje lokální mezipaměť informací o všech balíčcích dostupných v těchto repozitáříchJe uložen hlavně pod /var/lib/apt/ a aktualizuje se pomocí známého příkazu apt update o apt-get update.
Pro pohodlnou úpravu písem obsahuje samotná sada příkaz apt edit-sources, který otevře hlavní soubor ve vašem výchozím textovém editoru terminálu sources.list nebo soubor, který zadáte. Pokud nemáte nakonfigurovaný editor, systém vás požádá o výběr jednoho (nano, vim, neovim atd.) a od té doby bude vždy používat tento editor.
Správa závislostí balíčků a stavů
Velký rozdíl oproti dpkg je v tom, že APT Automaticky se stará o řešení a stahování závislostí.Když požádáte o instalaci balíčku, program vypočítá, které další balíčky jsou potřeba, které verze jsou kompatibilní a jaké konflikty mohou nastat, a teprve poté zavolá dpkg k implementaci změn. Pro diagnostické a ladicí úlohy se můžete podívat, jak… seznam závislostí balíčku a vyhnout se narušení systému při instalaci něčeho.
APT také uchovává další soubor, /var/lib/apt/extended_stateskde zaznamenává, zda byl balíček explicitně nainstalován uživatelem nebo jako závislost jiného. Tato informace je klíčová pro funkce jako apt autoremove aby mohli zjistit, které balíčky jsou kandidáty na smazání, protože jsou „osiřelé“.
Pokud jde o státy, je tu zajímavá nuance: APT, pokud je použit apt list --installed, Přeskočit balíčky označené jako „odinstall“ (ty, které byly odinstalovány, ale zachovaly si svou konfiguraci). Tyto se objeví ve výstupu apt list například „zbývající konfigurace“, zatímco dpkg --get-selections Ano, zobrazuje je přímo. Pokud některý seznam neodpovídá, je vhodné zkontrolovat původní výstupy a filtrovat je pomocí grep analyzovat ty hraniční případy.
Základní příkazy apt pro každodenní použití
S příchodem moderního velení aptDebian a Ubuntu poskytují uživatelsky přívětivější rozhraní pro běžné úkoly správy balíčkůsjednocující funkce, které byly dříve rozděleny mezi apt-get y apt-cacheAčkoli interně používá stejné knihovny, jeho syntaxe je pohodlnější a výstup je čitelnější; navíc koexistuje s dalšími formáty na ploše, jako například Správa AppImage v Linuxu.
Soubor /etc/apt/sources.list o kterých jsme se zmínili dříve, se standardně koncentrují Informace o všech repozitářích používaných službou apt, na rozdíl od nástrojů jako yum které obvykle zpracovávají více konfiguračních souborů. To výrazně zjednodušuje počáteční nastavení pro méně zkušené uživatele.
Aktualizace informací o úložišti
Před instalací čehokoli musí mít APT aktualizovaný seznam balíčků repozitářů Chcete-li zjistit, které verze jsou k dispozici, použijte:
apt update: znovu stáhne indexy balíčků ze všech nakonfigurovaných repozitářů.
Rozdíl oproti starému apt-get update je to, že apt zobrazuje velmi užitečné doplňující informace, například počet balíčků, které lze aktualizovat, a zpráva s návrhem na spuštění apt list --upgradable aby si je prohlédli podrobně.
Hledání balíčků v repozitářích
Abychom našli program nebo knihovnu mezi dostupnými, můžeme použijte vestavěné vyhledávání APTTradičně se to dělalo s apt-cache searchale příkaz apt zjednodušit syntaxi:
apt search nombreoapt-cache search nombre: Prohledávají staženou databázi balíčků a vyhledají zadaný text.
Takhle je to jednoduché zjistit, který balíček odpovídá konkrétní aplikaci (například vyhledejte „gimp“, „vlc“ nebo „libreoffice“) a zkontrolujte, zda je k dispozici pro vaši verzi distribuce.
Instalace a odinstalace balíčků pomocí apt
Nejběžnější operace, kterou budete provádět s APT, je instalace a odebrání softwaru z repozitářůSyntaxe je zde velmi přímočará:
apt install paquete: nainstaluje požadovaný balíček a vše potřebné jako závislost.apt remove paquete: odinstaluje balíček, ale zachová jeho konfigurační soubory.apt remove --purge paqueteoapt purge paquete: odstraní balíček a také jeho konfigurační soubory systému.
Pouze při použití remove, „Zbytky“ mohou zůstat ve formě konfiguračních adresářů nebo konfiguračních souborůTo je normální, protože pokud aplikaci znovu nainstalujete, vaše nastavení se zachová. Pokud chcete aplikaci úplně odstranit, je tou správnou volbou možnost Vymazat.
Vykliďte oddělení a odstraňte zbylé obaly
Po instalaci a odinstalaci aplikací se v průběhu času hromadí Balíčky, které byly nainstalovány jako závislosti jiných balíčků, ale již nejsou potřebaPro uvolnění místa a udržení čistého systému nabízí APT:
apt autoremove: odstraní automaticky instalované závislosti, které již nejsou vyžadovány žádným aktuálně nainstalovaným balíčkem.
Toto pořadí je obzvláště užitečné, protože pravidelná údržbaprotože odstraňuje staré knihovny a soubory, které pouze zabírají místo, aniž by jakkoli přispívaly k aktuálnímu systému.
Aktualizujte nainstalované balíčky pomocí apt
Jakmile jsou indexy repozitáře aktualizované, dalším krokem je Použít dostupné aktualizace pro nainstalované balíčkyAPT rozlišuje dvě úrovně aktualizace:
apt upgrade: aktualizuje nainstalované balíčky na jejich nejnovější verze, pokud nevyžadují drastickou instalaci nebo odebrání dalších balíčků.apt full-upgrade: provádí agresivnější aktualizaci, která vám umožňuje instalovat nebo odebírat balíčky, pokud je to nutné k dokončení procesu (ekvivalent staré verzeapt-get dist-upgrade).
Je běžné běžet první apt update následuje apt upgrade jako součást běžné údržby a rezervní full-upgrade při zásadních změnách verzí nebo při aktualizaci jádra a důležitých komponent.
Další užitečné příkazy ze sady apt
Kromě nejoblíbenějších objednávek zahrnuje APT Některé další příkazy, které vám usnadní život:
apt show paquete: zobrazuje podrobné informace o balíčku (popis, verze, závislosti, zdrojový repozitář atd.) s uspořádaným výstupem a bez irelevantních dat.apt list: zobrazit seznam balíčků podle různých filtrů; s--installedzobrazuje nainstalovaný a s--upgradablety, které mají k dispozici aktualizaci.apt edit-sources: Otevře zdrojový soubor APT pro úpravu repozitářů.
To vše dělá apt je jakýsi „švýcarský nůž“ pro správu balíčků, který pokrývá většinu úkolů, které průměrný uživatel denně provádí, aniž by si musel pamatovat obrovské množství dílčích příkazů.
Apt-get a aptitude: další klasické APT frontendy
I když příkaz apt v posledních letech získala na významu, apt-get a aptitude zůstávají velmi relevantními nástroji v ekosystému Debianu. Každý z nich má své místo a existují pádné důvody vědět, v jakém kontextu je vhodné je používat.
Historicky, apt-get byl první frontend pro příkazový řádek pro APTByl přítomný od konce 90. let a objevuje se v nespočtu skriptů a dokumentace. Byl navržen tak, aby nabízel stabilní a předvídatelné rozhraní, ideální pro automatizaci a neinteraktivní úkoly.
Pro jeho část, aptitude se narodil jako chytřejší a pohodlnější alternativa pro uživatele, kteří preferují interaktivní prostředíNabízí jak režim CLI kompatibilní se skripty, tak i textové rozhraní (ncurses) s nabídkami, filtry a organizovanými zobrazeními balíčků.
Typické funkce a příkazy apt-get
s apt-get můžete provádět prakticky stejné úkoly jako s aptMá však poněkud obsáhlejší syntaxi a méně uživatelsky přívětivý výstup. Jeho nejčastěji používané příkazy jsou:
apt-get update: aktualizuje indexy repozitáře.apt-get upgrade: aktualizuje nainstalované balíčky bez provádění příliš rušivých změn.apt-get dist-upgradeekvivalent kapt full-upgrademoderní, což vám umožňuje instalovat a odebírat balíčky pro dokončení komplexní aktualizace.apt-get install paquete: nainstaluje balíček z repozitářů řešením závislostí.apt-get remove paqueteyapt-get purge paqueteOdstraňují balíčky, s konfiguračními soubory nebo bez nich.
Klíčovou výhodou apt-get je, že Jeho chování zůstává mezi verzemi extrémně stabilníZ tohoto důvodu vývojáři Debianu doporučují nadále jej používat ve skriptech a automatizacíchJak apt Je více orientovaný na koncového uživatele a může v průběhu času měnit výstupní detaily nebo výchozí hodnoty.
Aptitude: rozhraní ncurses a pokročilé řešení závislostí
Na rozdíl od apt a apt-get, aptitude přispívá velmi kompletní textové rozhraní který se spouští jednoduše spuštěním sudo aptitude Bez argumentů. Z této obrazovky můžete:
- Procházejte podle kategorií balíčků (nainstalované, dostupné, zastaralé atd.).
- Vyhledávání a filtrování balíčků pomocí různých kritérií (jméno, popis, stav).
- Vyberte více balíčků k instalaci, aktualizaci nebo odebrání a aplikujte všechny změny najednou.
Jeho největší technická síla spočívá v systém řešení závislostí založený na skóre a alternativáchV případě složitého konfliktu aptitude obvykle nabízí několik řešení (například odinstalaci balíčku, ponechání starší verze nebo instalaci dalších) a umožňuje uživateli označit, které části návrhu si při dalším pokusu o řešení přeje ponechat nebo zahodit.
Z pohledu příkazového řádku, aptitude Podporuje také příkazy jako například:
aptitude update: aktualizace seznamu balíčků.aptitude install paqueteyaptitude remove paquete: instaluje a odebírá balíčky podobným způsobem jako apt-get.aptitude full-upgrade: provést kompletní aktualizaci s vlastní logikou řešení závislostí.
Dále, schopnosti Velmi podrobně zaznamenává, které balíčky byly nainstalovány ručně a které byly nainstalovány jako závislosti.a má možnosti zmrazit verze, označit balíčky, aby se zabránilo aktualizacím atd. Některé z těchto funkcí lze replikovat dnes pomocí apt-markNicméně, aptitude je stále vysoce ceněn administrátory, kteří jej používají již léta.
Klíčové rozdíly mezi dpkg, APT, apt-get, apt a aptitude
Po prohlédnutí každého nástroje zvlášť je užitečné pořídit si skupinovou fotografii, abyste si vše lépe představili. Jaké jsou přesně rozdíly mezi nimi a kdy je vhodné který z nich použít?Mohli bychom to shrnout do tří úrovní: nízká, střední a vysoká.
Na nejzákladnější úrovni existuje dpkg, který pracuje přímo s lokálními balíčky .debNeřeší závislosti ani nekomunikuje s repozitáři; jednoduše instaluje, odinstaluje nebo zobrazuje informace o konkrétním balíčku. Často se přirovnává k RPM ve světě Red Hatu, protože plní podobné funkce ve svých příslušných rodinách distribucí.
Na střední/vyšší úrovni máme APT jako systém správy balíčků s repozitáři, ukládáním informací do mezipaměti a automatickým rozlišením závislostíPoskytuje logiku pro to, co se instaluje a odkud, která verze je nejlepší atd. Ve světě Red Hatu by se paralelismus nacházel v nástrojích jako například YUM nebo DNF běžící na RPM.
Nad APT jsou jeho různé frontendy:
apt-get: klasické, robustní a stabilní rozhraní, vysoce orientované na skripty a automatizaci.apt: moderní uživatelské rozhraní, které konsoliduje funkce apt-get a apt-cache a nabízí přehlednější výstup.aptitude: správce balíčků na vysoké úrovni s volitelnými kurzy TUI a obzvláště sofistikovaným systémem pro řešení závislostí.
Pokud se zaměříme na APT versus DPKG, základní rozdíl spočívá v tom, že APT dokáže načítat balíčky ze vzdálených repozitářů, spravovat více zdrojů a zpracovávat všechny závislosti., zatímco DPKG instaluje a odstraňuje pouze balíčky, které mu předáte jako lokální soubor.
Pokud porovnáme apt a apt-get, oba nabízejí velmi podobné funkce pro instalaci, aktualizaci nebo odebrání balíčkůAle apt vylepšuje prezentaci informací, zahrnuje ukazatele průběhu instalace a kombinuje do jednoho příkazu věci, které se dříve dělaly pomocí apt-get y apt-cacheNaproti tomu apt-get poskytuje v průběhu času konzervativnější a stabilnější API příkazového řádku.
Pokud jde o schopnosti, jejich hlavním rozlišovacím znakem je rozhraní ncurses a pokročilé řešení konfliktů závislostíZatímco se apt a apt-get snaží najít „nejlepší“ řešení najednou, aptitude umožňuje uživateli interaktivně se zapojit do procesu a rozhodovat, které balíčky si ponechat, které snížit úroveň nebo které odstranit.
Kdy použít dpkg, apt, apt-get nebo aptitude na systémech Debian
Jakmile jsou rozdíly jasné, otázka, kterou si mnoho lidí klade, je který příkaz použít v každé konkrétní situaciNeexistuje jediná správná odpověď, ale existují poměrně rozumné vzorce, kterými se řídí mnoho administrátorů a pokročilých uživatelů.
Pro každodenní použití na stolním počítači nebo lehkém serverovém systému je obvykle nejpohodlnější možností použijte příkaz apt téměř na všechno: aktualizovat repozitáře, vyhledávat aplikace, instalovat a odinstalovat balíčky, kontrolovat, co lze aktualizovat, a vydávat pravidelné aktualizace.
Pokud se jedná o skripty pro plánování instalace, nasazení nebo údržbySamotná oficiální dokumentace doporučuje nadále se spoléhat na apt-get (y apt-cache (pro dotazy), protože jeho výstupní chování a možnosti jsou mezi verzemi mnohem stabilnější než u aptcož může změnit malé detaily, protože je navrženo pro lidi a ne tolik pro stroje.
dpkg je primárně vyhrazen pro nízkoúrovňové operace s ručně staženými balíčky .debJe to užitečné pro kontrolu obsahu nebo v případech, kdy potřebujete velmi přesnou kontrolu a nechcete, aby APT zasahoval do řešení závislostí. Je to také velmi užitečné pro sofistikované skripty pro balení nebo pro ladění specifických problémů se soubory .deb.
Schopnosti se obvykle projeví, když Čelíte opravdu složitým konfliktům závislostí ve starších nebo vysoce upravených prostředích Debianu. Jeho engine pro rozlišení obvykle nabízí více alternativ a rozhraní ncurses je velmi pohodlné pro prozkoumání, jaké změny budou provedeny před přijetím větší operace.
V konečném důsledku celý tento ekosystém nástrojů existuje proto, že Každá úroveň řeší jiný problém v rámci správy balíčků v Debianu.dpkg jako nízkoúrovňové vybavení, APT jako mozek, který rozhoduje o tom, co a odkud nainstalovat, a jeho různé frontendy (apt, apt-get, aptitude) jako viditelné tváře přizpůsobené různým uživatelským profilům, od úplného začátečníka až po administrátora, který žije přilepený k terminálu.
Vášnivý spisovatel o světě bytů a technologií obecně. Rád sdílím své znalosti prostřednictvím psaní, a to je to, co budu dělat v tomto blogu, ukážu vám všechny nejzajímavější věci o gadgetech, softwaru, hardwaru, technologických trendech a dalších. Mým cílem je pomoci vám orientovat se v digitálním světě jednoduchým a zábavným způsobem.