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

vím že apt-get a aptitude jsou rozhraní pro správu balíků příkazového řádku v systému Linux 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 na Zemi wajig ?)

Komentáře

  • Vím, že to není správný odpověď na vaši otázku, ale proč nemůžete zkusit synaptický? je velmi uživatelský a automaticky stahuje a instaluje závislosti. Není ve vašem systému gnome?
  • Jsem ‚ m zaujatý, ale myslím si, že tuto otázku web Ubuntu SE může být relevantní.
  • duplikát: unix.stackexchange.com/questions/244/apt-get-or-aptitude .
  • @Wim kvůli wajigové části této otázky jsem se rozhodl sloučit 244 do této otázky namísto obráceně
  • Stojí za zmínku, že aptitude je kritizovaný pro odstranění z výchozí instalace na další verzi Ubuntu (i když ji můžete vždy nainstalovat pomocí apt-get)

Odpovědět

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.

Vezmeme-li v úvahu pouze rozhraní příkazového řádku, jsou si velmi podobná a většinou 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 tedy způsobilé k automatickému odebrá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ě vs. automaticky nainstalovaných balíčků, takže případy, kdy něco nainstalujete pomocí apt-get a poté to aptitude chce odinstalovat, jsou většinou věcí minulost.

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

  • aptitude automaticky odebere způsobilé 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 full-upgrade respektive.
  • aptitude ve skutečnosti plní nejen funkce apt-get, ale také některé z jejích doprovodných nástrojů, jako je 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á příkazy proč a proč ne které ručně nainstalované balíčky zabraňují akci, kterou možná budete chtít provést.
  • Pokud akce (instalace, odebrání, aktualizace balíčků), které chcete provést, způsobují konflikty, aptitude může navrhnout několik možných řešení. apt-get řekne „Je mi líto, Davide, nemůžu ti to dovolit.“

Existují i další malé rozdíly, ale ty jsou nejdůležitější, které může myslet.

Stručně řečeno, aptitude přesněji patří do kategorie se Synaptic a dalšími rozhraními správce balíčků vyšší úrovně. Stává se, že má také rozhraní příkazového řádku, které se podobá apt-get.

Bonus Round: 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 hodně používáte, možná si nebudete pamatovat, které příkazy poskytují. Wajig je jedním z řešení tohoto problému. Je to v podstatě dispečer, obal všech těchto nástrojů. v případě potřeby také použije sudo. Když řeknete wajig install foo, wajig řekne „Ok, install poskytuje apt-get a vyžaduje oprávnění administrátora, „a běží sudo apt-get install foo. Když řeknete wajig search foo, wajig řekne:“ Ok, search poskytuje apt-cache a nevyžaduje oprávnění správce, „a běží apt-cache search foo. Pokud použijte wajig místo apt-get, apt-mark, apt-cache a dalších, pak „tento problém nikdy nebudete mít:

$ apt-get search foo E: Invalid operation search 

Pokud chcete vědět, co dělá wajig v zákulisí, jaké nástroje používá k implementaci konkrétního příkazu, má --simulate a --teaching m ódy.

Dva příkazy wajig, které často používám, jsou wajig listfiles foo a wajig whichpkg /usr/bin/foo.

Komentáře

  • Jedním velkým problémem, který jsem s aptitude měl, je to, že získání názvů balíčků trvá dlouho (např. aptitude install linux-im), zatímco pro apt-get je velmi rychlý. Zdá se, že v rodině apt-get existuje nějaké ukládání do mezipaměti, které pro aptitude chybí.
  • aptitude mají také úžasné aptitude search které můžete použít s velmi výkonnými vyhledávacími vzory . Máte aptitude reinstall. Rozhraní ncurses (nabídka terminálu) můžete také použít k přípravě komplexních operací s balíčky , jako je částečný upgrade, odebrání jednoho balíčku, zmrazení dalšího, upgrade tohoto, který pak můžete spustit v jediném operace … A má interaktivní řešení konfliktů .
  • @Totor svatá kráva, pomocí aptitude ‚ s ncurses rozhraní pro přípravu příkazů mě právě jednou prodalo na aptitude! (po letech přemýšlení stojí za to udělat aptitude, ale psaní apt-get ze svalové paměti)
  • … a aptitude má také aptitude download package-name získat soubor .deb balíčku!
  • Je to ‚ jen jedna věc, kterou jsem zjistil, že není ‚ t v aptitude, ale jsou v apt-get, a to je apt-get --compile source package-name . apt-get build-dep package-name existují, ale myslím si, že aptitude build-dep package-name odvede lepší práci.

odpověď

Často jsem se sám sebe divil. Wikipedia zdůrazňuje , že hlavním rozlišovacím znakem je, že aptitude má rozhraní na celou obrazovku v textovém režimu (kletby). Skutečnost, že většinu argumentů příkazu apt-get můžete použít se samotným aptitude, je pouze návrhovým rozhodnutím. usnadnit uživatelům apt-get přechod na aptitude a naopak.

Nikdy jsem nepoužíval wajig, ale dokumentace naznačuje, že je to jen skript, který ví, zda jej předáváte deb soubor (když se spustí dpkg) nebo apt název balíčku (pokud je místo toho spuštěn apt-get). Můžete to vyzkoušet a zjistit, jestli to tak je?

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

gaurav@fern:~$ apt-get moo (__) (oo) /------\/ / | || * /\---/\ ~~ ~~ ...."Have you mooed today?"... gaurav@fern:~$ aptitude moo There are no Easter Eggs in this program. 

Komentáře

  • Ne! aptitude má více. Zapomněli jste umístit nekonečné -v příznaky do moo. (Můžete přejít -vvvvvv)
  • Nezapomeňte na všechny důležité Super Cow Powers, které apt-get má, ale aptitude nikoli. (Zkuste --help na obou)
  • lmao. to je zábavná odpověď ke čtení, i když odpověď @ryan ‚ je mnohem komplikovanější;)

odpověď

aptitude je upřednostňovaný program pro správu balíků z konzoly jak pro instalaci balíků, tak pro upgrade balíků nebo systémů v Debianu.

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

Takže moje rada je stačí apt-get install aptitude 🙂

Komentáře

  • Poznámky k verzi řekněme, že apt-get je nyní doporučován přes aptitude, aby se aktualizace mohly zmáčknout.
  • Ano, ale pouze za to. Jinak jsou považovány za rovnocenné, ale aptitude má mnohem pokročilejší funkce, jako je režim vyhledávání a režim celé obrazovky, než apt-get.
  • Z nějakého důvodu použil aptitude k instalaci emacs a bez toho, aby to vypadalo, odstranil gdm! Zatím tedy budu používat apt-get, ale jsem velmi zvědavý na aptitude.

Odpověď

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

apt-get zachází s balíčky, které jsou výslovně požadovány, a jejich závislosti jsou stejné.

Takže lépe používejte aptitude, což pomáhá udržovat váš systém čistý.

Komentáře

  • To dříve platilo, ale vím, že můj apt-get má příkaz apt-get autoremove pro odebrání balíčků nainstalovaných pouze jako závislosti. Nevím ‚ kdy byla tato funkce přidána, ale jeden web naznačuje, že se to mohlo stát s Debianem Lenny (červen 2010).
  • apt-get autoremove neodstraní ‚ t odebrané balíčky nainstalované pouze jako závislosti, odstraní osiřelé závislosti, což je jemný rozdíl ; nedokáže ‚ zjistit, zda byl balíček ‚ leaf ‚ nainstalován se záměrem nebo jako závislost, takže ji nechává, kde by ji aptitude věděl a odstranil.
  • Prodal jsem ‚! O aptitude existují i další pěkné věci, ale toto je praktická funkce zabijáka.

Odpovědět

apt-get a 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ší. Blaženě jsem si toho nebyl vědom, dokud jsem se nepokusil upgradovat instalaci debian na starém starém pentiovém thinkpadu s 32 MB RAM. Spuštění apt-get, které bylo úspěšně dokončeno, by trvalo hodinu nebo dvě výměny swapů; aptitude by selhal, když si myslím, že delší dobu.

Tento rozdíl je víceméně irelevantní u čehokoli, co se podobá modernímu desktopovému systému.

Odpověď

V návaznosti na odpověď @Gaurav jsou velikonoční vajíčka ve dvou správcích balíčků docela zábavná !:

siddhartha@siddhartha-dev:~$ apt-get moo (__) (oo) /------\/ / | || * /\---/\ ~~ ~~ ..."Have you mooed today?"... siddhartha@siddhartha-dev:~$ aptitude moo There are no Easter Eggs in this program. siddhartha@siddhartha-dev:~$ aptitude -v moo There really are no Easter Eggs in this program. siddhartha@siddhartha-dev:~$ aptitude -vv moo Didn"t I already tell you that there are no Easter Eggs in this program? siddhartha@siddhartha-dev:~$ aptitude -vvv moo Stop it! siddhartha@siddhartha-dev:~$ aptitude -vvvv moo Okay, okay, if I give you an Easter Egg, will you go away? siddhartha@siddhartha-dev:~$ aptitude -vvvvv moo All right, you win. /----\ -------/ \ / \ / | -----------------/ --------\ ---------------------------------------------- siddhartha@siddhartha-dev:~$ aptitude -vvvvvv moo What is it? It"s an elephant being eaten by a snake, of course. siddhartha@siddhartha-dev:~$ aptitude -vvvvvvv moo What is it? It"s an elephant being eaten by a snake, of course. siddhartha@siddhartha-dev:~$ aptitude -vvvvvvvv moo What is it? It"s an elephant being eaten by a snake, of course. 

atd.

Odpověď

Nabízejí stejné základní funkce: nainstalujte a odeberte 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-better-than-apt-get/1749#1749

Komentáře

  • Jsou si docela podobné, mohu mezi nimi snadno přepínat.

Odpovědět

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

Pod kapotou nepoužívají 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ří ke kterému balíčku.

apt zpracovává stahování úložišť, sledování závislostí atd. Pro všechny jednotlivé balíčky – které pak se nainstaluje pomocí dpkg. aptitude dělá totéž s jiným rozhraním.

Odpovědět

Oba výstižné -get a aptitude závisí na knihovně APT, ano.

Viz moje odpověď na serverfault.com .

Debian není monolitická entita, existují lidé s různými názory a správce aptitude se rozhodl, že apt-get má nějaké nedostatky a chce pomocí aptitude vytvořit něco lepšího. Vylepšil logiku, aby našel řešení pro složité scénáře upgradu, přidal grafické uživatelské rozhraní pro konzolu atd. A existuje více než jen apt-get a aptitude, viz můj článek apt -get, aptitude, … vyberte si správného správce balíčků .

Odpovědět

Nejsem si jistý pokud to stále platí, ale krvácející hrana, kterou vývojář Debianu Joey Hess vždy obhajoval aptitude nad apt-get. Samozřejmě věci, které se mají měnit s vývojem softwaru. Apt-get nyní zpracovává závislosti lépe než dříve. Od http://lists.debian.org/debian-user/2004/04/msg03138.html

Datum: Úterý, 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á a funguje stejně jako apt-get s několika vylepšeními. Neexistuje tedy žádná křivka učení.

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

  2. stopy aptitude automaticky nainstalované balíčky

    Přestaňte si dělat starosti s prořezáváním nepoužívaných knihoven a podpůrných balíků z vašeho systému. Pokud používáte aptitude k instalaci všeho, bude sledovat, jaké balíčky jsou stahovány pouze závislostmi, a tyto balíčky odebrat již nejsou potřeba.

  3. aptitude sanely handles doporučuje

    Dlouhodobým selháním apt-get byla jeho nedostatečná podpora vztahu Doporučuje . Což je problém, protože mnoho balíčků v Debianu spoléhá na Doporučuje stahovat software, který běžný uživatel s balíčkem obvykle používá. To není neobvyklá příčina potíží, přestože apt-get nedávno dokázal zmínit alespoň doporučené balíčky , je snadné přehlédnout jeho varování.

    Aptitude podporuje Doporučuje se ve výchozím nastavení a lze jej nakonfigurovat tak, aby podporoval také návrhy. Dokonce podporuje instalaci doporučených balíčků při použití v režimu příkazového řádku.

  4. Používejte aptitude jako běžný uživatel a vyhněte se hadici systému

    Možná jste neudělali “ Nevíte, že aptitude můžete spustit v režimu gui jako běžný uživatel. Proveďte jakékoli změny, které byste chtěli vyzkoušet. Pokud se dostanete do skutečného nepořádku, můžete stisknout „q“ a ukončit, změny se neuloží. (Aptitude vám také umožňuje použít ctrl-u k vrácení změn.) Protože běží jako normální uživatel, nemůžete systém hadicí hadicí, dokud neřeknete aptitude, abyste něco udělali, a poté 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 skvělou podporou filtrování podle stylu mutt a vyhledávání balíků podle názvu, popis, správce, závislosti atd., pomocí aptitude byste měli být schopni najít balíčky rychleji než kdykoli předtím.

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

    Pokud Debian přestane distribuovat balíček, apt jej ponechá ve vašem systému na dobu neurčitou, bez varování a bez upgradů. Aptitude uvádí tyto balíčky v sekci „Zastaralé a lokálně vytvořené balíčky“, takže můžete být informováni o problému a něco s ním dělat.

  7. aptitude má rozhraní k Debianu systém úkolů

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

  8. aptitude podporuje více zdrojů

    Pokud vaše zdroje. seznam je nakonfigurován tak, aby zpřístupňoval více verzí balíčku, aptitude vám umožní podrobně zobrazit dostupné verze a vybrat jinou než výchozí verzi k instalaci. Pokud se balíček rozpadne na nestabilní, stačí jej vrátit zpět na testovanou verzi.

  9. aptitude protokoluje své akce

    Aptitude logs balíček, který instaluje, upgraduje, a odstraní do / varlog / aptitude, což může být užitečné pro řešení, proč se věci začaly lámat po včerejším upgradu, nebo když jste odebrali 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-which-is-the-recommended-aka-the-right-tool-to-use na StackExchange.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *