Vím, že oba apt-get
a aptitude
jsou rozhraní pro správu balíčků příkazového řádku na Linuxu odvozeném od Debianu s různými možnostmi, ale stále jsem poněkud zmaten. Nepoužívají pod kapotou stejný systém APT?
Proč Debian udržuje tyto paralelní nástroje? (Bonusová otázka:co je to proboha wajig?)
Přijatá odpověď:
Nejviditelnější rozdíl je v tom, že aptitude
poskytuje rozhraní nabídky terminálu (podobně jako Synaptic v terminálu), zatímco apt-get
ne.
Když vezmeme v úvahu pouze rozhraní příkazového řádku každého z nich, jsou si docela podobná a z velké části opravdu nezáleží na tom, které z nich používáte. Nejnovější verze obou budou sledovat, které balíčky byly nainstalovány ručně a které byly nainstalovány jako závislosti (a tedy způsobilé k automatickému odstranění). Ve skutečnosti se domnívám, že ještě nedávno byly tyto dva nástroje aktualizovány tak, aby ve skutečnosti sdílely stejnou databázi ručně vs automaticky instalovaných balíčků, takže případy, kdy něco nainstalujete pomocí apt-get a pak to chce aptitude odinstalovat, jsou většinou záležitostí minulost.
Existuje několik drobných rozdílů:
- aptitude automaticky odstraní vhodné balíčky, zatímco apt-get k tomu vyžaduje samostatný příkaz
- Příkazy pro upgrade vs. dist-upgrade byly v aptitude přejmenovány na pravděpodobně přesnější názvy safe-upgrade a úplný upgrade , respektive.
- aptitude ve skutečnosti vykonává funkce nejen apt-get, ale také některých jeho doprovodných nástrojů, jako jsou apt-cache a apt-mark.
- aptitude má mírně odlišnou syntaxi dotazu pro vyhledávání (ve srovnání s apt-cache)
- aptitude má proč a proč-ne příkazy, které vám sdělí, které ručně nainstalované balíčky brání akci, kterou byste mohli chtít provést.
- Pokud akce (instalace, odstranění, aktualizace balíčků), které chcete provést, způsobí konflikty, aptitude může navrhnout několik možných řešení. apt-get jen řekne „Je mi líto, Dave, to ti nemůžu dovolit.“
Existují další malé rozdíly, ale to jsou ty nejdůležitější, které mě napadají.
Stručně řečeno, aptitude správněji patří do kategorie se Synaptic a dalšími frontendy správce balíčků vyšší úrovně. Náhodou má také rozhraní příkazového řádku, které se podobá apt-get.
Bonusové kolo:Co je to wajig?
Pamatujete si, jak jsem zmínil ty „doprovodné“ nástroje jako apt-cache a apt-mark? No, je jich spousta, a pokud je používáte hodně, možná si nepamatujete, které poskytují jaké příkazy. wajig je jedním z řešení tohoto problému. Je to v podstatě dispečer, obal kolem všech těchto nástrojů. V případě potřeby také použije sudo. Když řeknete wajig install foo
, wajig říká „Ok, install
poskytuje apt-get
a vyžaduje administrátorská práva,“ a spustí sudo apt-get install foo
. Když řeknete wajig search foo
wajig říká:„Dobře, search
poskytuje apt-cache
a nevyžaduje oprávnění správce,“ a spouští apt-cache search foo
. Pokud místo apt-get, apt-mark, apt-cache a dalších použijete wajig, nikdy nebudete mít tento problém:
$ apt-get search foo
E: Invalid operation search
Pokud chcete vědět, co wajig dělá v zákulisí, jaké nástroje používá k implementaci konkrétního příkazu, má --simulate
a --teaching
režimy.
Dva příkazy wajig, které často používám, jsou wajig listfiles foo
a wajig whichpkg /usr/bin/foo
.