it-swarm-eu.dev

Jaký je skutečný rozdíl mezi „apt-get“ a „aptitude“? (A co „wajig“?)

Vím, že oba apt-get a aptitude jsou rozhraní pro správu balíků příkazového řádku v Linuxu odvozeném od Debianu s různými možnostmi, ale stále jsem trochu zmatená. Nepoužívají pod kapotou stejný systém APT?

Proč Debian udržuje tyto paralelní nástroje? (Bonusová otázka: co na zemi je wajig ?)

259
Kevin Cantu

Nejzřetelně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.

Pokud vezmeme v úvahu pouze rozhraní příkazového řádku každého z nich, jsou si docela podobná a z velké části to opravdu nezáleží na tom, které používáte. Poslední verze obou budou sledovat, které balíčky byly nainstalovány ručně a které byly nainstalovány jako závislosti (a proto 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, aby skutečně sdílely stejnou databázi ručně nainstalovaných balíčků s automaticky nainstalovanými balíčky, takže případy, kdy instalujete něco pomocí apt-get a pak aptitude chce odinstalovat, jsou většinou věcí minulost.

Existuje několik drobných rozdílů:

  • aptitude automaticky odstraní způsobilé balíčky, zatímco apt-get vyžaduje k tomu samostatný příkaz
  • Příkazy pro pgrade vs. dist-upgrade byly přejmenovány v aptitude na pravděpodobně přesnější jména safe-upgrade a full -upgrade, resp.
  • aptitude ve skutečnosti vykonává funkce nejen apt-get, ale také některých svých doprovodných nástrojů, jako je apt-cache a apt-mark.
  • aptitude má pro vyhledávání trochu odlišnou syntaxi dotazu (ve srovnání s apt-cache)
  • aptitude má příkazy why a why-not, které vám sdělí, které balíčky ručně nainstalované zabraňují akci, kterou byste mohli chtít provést.
  • Pokud akce (instalace, odebrání, aktualizace balíčků), které chcete provést, způsobují konflikty, může aptitude navrhnout několik možných řešení. apt-get jen řekne: "Je mi líto Dave, nemůžu ti to dovolit."

Existují další malé rozdíly, ale to jsou ty nejdůležitější, na které si vzpomenu.

Krátce řečeno, aptitude přesněji patří do kategorie s frontami Synaptic a dalších nadřazených manažerů balíčků. Prostě se stane, že také budete mít 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 jsou apt-cache a apt-mark? No, je jich spousta, a pokud je používáte hodně, možná si nebudete pamatovat, které z nich poskytují, jaké příkazy. wajig je jedno ř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é aplikuje Sudo. Když řeknete wajig install foo, wajig říká: „Ok, install poskytuje apt-get a vyžaduje administrátorská oprávnění, "a spustí Sudo apt-get install foo. Když řeknete wajig search foo, wajig říká: „Ok, search poskytuje apt-cache a nevyžaduje administrátorská oprávnění, "a spustí apt-cache search foo. Pokud namísto apt-get, apt-mark, apt-cache a dalších používáte 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á za scénami, 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.

225
Ryan C. Thompson

Často jsem se divil. Wikipedia zdůrazňuje , že hlavní rozlišovací vlastností je, že aptitude má rozhraní textového režimu (kletby) na celé obrazovce. Skutečnost, že můžete použít většinu argumentů příkazu apt-get Se samotným aptitude, je pouze návrhem rozhodnutí, které uživatelům apt-get Usnadní snahu přejít na aptitude a obráceně.

Nikdy jsem nepoužil wajig, ale dokumentace naznačuje, že je to jen skript, který ví, zda předáváte soubor deb (když běží dpkg) nebo apt název balíčku (když místo toho spustí apt-get). Mohl byste to vyzkoušet a zjistit, jestli to je to, co dělá?

skutečný rozdíl je samozřejmě:

[email protected]:~$ apt-get moo
         (__) 
         (oo) 
   /------\/ 
  / |    ||   
 *  /\---/\ 
    ~~   ~~   
...."Have you mooed today?"...
[email protected]:~$ aptitude moo
There are no Easter Eggs in this program.
71
Gaurav

aptitude je preferovaný program pro správu balíků z konzoly jak pro instalace balíků, tak pro aktualizace balíků nebo systémů v Debianu.

Zde je přehled nástroje a funkcí, které má oproti apt-get: http://www.debian.org/doc/FAQ/ch-pkgtools.cs.html#s-aptitude

Takže moje rada je prostě apt-get install aptitude :)

26
dsp

aptitude si pamatuje, které balíčky byly explicitně vyžádány a které byly nainstalovány pouze kvůli závislostem. Automaticky odinstaluje balíčky, které nebyly explicitně vyžádány, když již nejsou potřeba.

apt-get zachází s explicitně požadovanými balíčky a se stejnými závislostmi.

Takže lepší využití aptitude, to pomáhá udržovat váš systém čistý.

20
starblue

apt-get, stejně jako různé doprovodné nástroje, používají podstatně méně paměti než příslušné vyvolání příkazového řádku aptitude, a jsou o něco rychlejší. To jsem si blaženě neuvědomoval, dokud jsem se nepokusil upgradovat instalaci debianu na rozlehlé staré pentium thinkpad s 32 MB RAM. Trvalo to hodinu nebo dvě výměny, aby se spustilo apt-get, který byl úspěšně dokončen; aptitude by selhal poté, co myslím delší dobu.

Toto rozlišení je víceméně irelevantní u všeho, co se podobá modernímu stolnímu systému.

12
intuited

Na základě odpovědi @ Gaurav jsou velikonoční vejce ve dvou správcích balíčků docela zábavná !:

[email protected]:~$ apt-get  moo
             (__) 
             (oo) 
       /------\/ 
      / |    ||   
     *  /\---/\ 
        ~~   ~~   
..."Have you mooed today?"...

[email protected]:~$ aptitude  moo
There are no Easter Eggs in this program.
[email protected]:~$ aptitude -v moo
There really are no Easter Eggs in this program.
[email protected]:~$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?
[email protected]:~$ aptitude -vvv moo
Stop it!
[email protected]:~$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?
[email protected]:~$ aptitude -vvvvv moo
All right, you win.

                               /----\
                       -------/      \
                      /               \
                     /                |
   -----------------/                  --------\
   ----------------------------------------------
[email protected]:~$ aptitude -vvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course.
[email protected]:~$ aptitude -vvvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course.
[email protected]:~$ aptitude -vvvvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course.

a tak dále.

9
Siddhartha

Nabízejí stejnou základní funkci: instalovat a odebírat balíčky z příkazového řádku.

Zde je podrobnější srovnání zveřejněné na web Ubuntu Stack Exchange : https://askubuntu.com/questions/1743/is-aptitude-really- lepší než apt-get/1749 # 1749

8
Riccardo Murri

Jak již bylo uvedeno http://pthree.org/2007/08/12/aptitude-vs-apt-get/ , aptitude má mnohem jednodušší použití rozhraní příkazového řádku.

Nepoužívají pod kapotou stejný systém APT? Ano).

Základní systém není jen apt, ale dpkg. Tento systém je stejně hloupý jako RPM, zvládne pouze instalaci a správu jednotlivých balíčků. Sleduje, které nainstalované soubory patří do kterého balíčku.

apt zpracovává stahování repozitářů, sledování závislostí atd. pro všechny jednotlivé balíčky - které pak nainstaluje pomocí dpkg. aptitude provede totéž s jiným rozhraním.

7
vdboor

Nejsem si jistý, jestli to stále platí, ale krvácející vývojář Edge Debian Joey Hess vždycky hájil aptitude nad apt-get. S vývojem softwaru se samozřejmě musí věci změnit. Apt-get nyní zpracovává závislosti lépe než dříve. Od http://lists.debian.org/debian-user/2004/04/msg03138.html

Datum: Út, 20. dubna 2004 22:27:12 -0400 Od: Joey Hess

Devět důvodů, proč byste měli používat aptitude místo apt-get nebo dselect.

  1. aptitude může vypadat jako apt-get

    Pokud spustíte 'aptitude update' nebo 'aptitude upgrade' nebo 'aptitude install', vypadá to a funguje stejně jako apt-get s několika vylepšeními. Neexistuje tedy žádná křivka učení.

    (Pokud jste uživatelem služby dselect, křivka učení zjevně není jedním z vašich problémů.)

  2. aptitude sleduje automaticky nainstalované balíčky

    Přestaňte se obávat ořezávání nepoužitých knihoven a balíků podpory z vašeho systému. Používáte-li aptitude k instalaci všeho, bude sledovat, jaké balíčky jsou stahovány pouze závislostmi, a tyto balíčky odebrat, pokud již nejsou potřeba.

  3. aptitude Sanely Handles doporučuje

    Dlouhodobým selháním apt-get je jeho nedostatek podpory vztahu Doporučuje. Což je problém, protože mnoho balíčků v Debianu spoléhá na Doporučuje stahovat software, který průměrný uživatel s balíčkem obvykle používá. To není neobvyklá příčina problémů, ačkoli apt-get nedávno dokázal alespoň zmínit doporučené balíčky, je snadné zmeškat jeho varování.

    Aptitude podporuje ve výchozím nastavení doporučení a může být nakonfigurován tak, aby podporoval i návrhy. Podporuje dokonce instalaci doporučených balíčků při použití v režimu příkazového řádku.

  4. používat aptitude jako běžný uživatel a vyhýbat se hadici systému

    Možná jste nevěděli, že můžete běžně používat aptitude v gui módu. Proveďte jakékoli změny, které chcete vyzkoušet. Pokud se dostanete do skutečné nepořádku, můžete stisknout 'q' a ukončit, vaše změny nebudou uloženy. (Aptitude vám také umožňuje vrátit zpět změny pomocí ctrl-u.) Protože běží jako běžný uživatel, nemůžete systém otáčet, dokud neřeknete aptitude, aby něco udělal. V tom okamžiku vás vyzve k zadání hesla root.

  5. aptitude má výkonné uživatelské rozhraní a možnosti vyhledávání

    Mezi kategorickým prohlížečem aptitude a jeho velkou podporou pro filtrování ve stylu mutt a prohledávání balíků podle názvu, popisu, správce, závislostí atd. Byste měli být schopni najít balíčky rychleji než kdykoli předtím pomocí aptitude.

  6. aptitude usnadňuje sledování zastaralého softwaru

    Pokud Debian přestane distribuovat balíček, apt ho ponechá na vašem systému neomezeně dlouho, bez varování a bez upgradu. Aptitude uvádí takové balíčky v části „Zastaralé a lokálně vytvořené balíčky“, abyste mohli být o problému informováni a udělat s tím něco.

  7. aptitude má rozhraní se systémem úloh Debian

    Aptitude vám umožňuje používat systém úloh systému Debian tak, jak byl navržen k použití. Můžete procházet dostupné úkoly, vybrat úkol pro instalaci, poté do něj kopat a zrušit výběr částí úkolu, které nechcete. apt-get nemá žádnou podporu pro úkoly a aptitude je lepší než speciální nástroje jako taskel.

  8. aptitude podporuje více zdrojů

    Pokud je váš sources.list nakonfigurován tak, aby zpřístupňoval více verzí balíčku, aptitude vám umožní podrobně rozhlédnout dostupné verze a vybrat jinou než výchozí verzi k instalaci. Pokud se balíček rozpadne v nestabilním stavu, stačí jej během testování vrátit zpět na verzi.

  9. aptitude zaznamenává své akce

    Balíček aptitude protokoly, který nainstaluje, upgraduje a odebere do/varlog/aptitude, což může být užitečné zjistit, proč se věci začaly po včerejší aktualizaci rozpadat nebo když jste odstranili partiticlar balíček.

- viz plachý jo

=================== zde je také novější diskuse od roku 2010 zde https://superuser.com/questions/93437/aptitude-vs-apt- get-what-is-the-recommend-aka-the-right-tool-to-use na StackExchange.

6
manselton

Apt-get i aptitude se spoléhají na knihovnu APT, ano).

Viz moje odpověď na serverfault.com .

Debian není monolitická entita, existují lidé s odlišnými názory a udržovatel aptitude rozhodl, že apt-get měl nějaké nedostatky a chtěl aptitude postavit něco lepšího. Vylepšil logiku, aby našel řešení pro komplexní scénáře upgradu, přidal GUI pro konzoli atd. A je tu víc než jen apt-get a aptitude, viz můj článek apt-get, aptitude,… vyberte ten správný balíček manažer pro vás .

6
Raphaël Hertzog