Vad är den verkliga skillnaden mellan “ apt-get ” och “ aptitude ”? (Vad sägs om “ wajig ”?)

Jag vet att både apt-get och aptitude är gränssnitt för hantering av kommandoradspaket på Debian-härledda Linux, med olika alternativ, men jag är fortfarande lite förvirrad. Använder de inte samma APT-system under huven?

Varför upprätthåller Debian dessa parallella verktyg? (Bonusfråga: vad i helvete är wajig ?)

Kommentarer

  • Jag vet att det inte är rätt svarare för din fråga, men varför kan du inte prova synaptic? det är mycket vänligt och laddar ner och installerar beroenden automatiskt. Finns inte gnome i ditt system?
  • Jag ’ är partisk, men jag tror att den här frågan om Ubuntu SE-webbplatsen kan vara relevant.
  • duplikat: unix.stackexchange.com/questions/244/apt-get-or-aptitude .
  • @Wim på grund av wajig-delen av den här frågan bestämde jag mig för att slå samman 244 i denna fråga istället för tvärtom
  • Det är värt att notera att förmågan är planerad för borttagning från standardinstallationen i nästa version av Ubuntu (även om du alltid kan installera den med apt-get efteråt)

Svar

Den mest uppenbara skillnaden är att aptitude tillhandahåller ett terminalmenygränssnitt (ungefär som Synaptic i en terminal), medan apt-get gör det inte.

Med tanke på endast kommandoradsgränssnitten för var och en är de ganska lika, och för det mesta spelar det ingen roll vilken du använder. Nya versioner av båda spårar vilka paket som installerades manuellt och vilka som installerades som beroenden (och därför berättigade till automatisk borttagning). Jag tror faktiskt att ännu mer nyligen uppdaterades de två verktygen för att faktiskt dela samma databas med manuellt mot automatiskt installerade paket, så fall där du installerar något med apt-get och sedan aptitude vill avinstallera det är mest det förflutna.

Det finns några mindre skillnader:

  • aptitude tar automatiskt bort kvalificerade paket, medan apt-get kräver ett separat kommando för att göra det
  • kommandon för uppgradering kontra dist-upgrade har bytt namn på lämplighet till de troligtvis mer exakta namnen säker uppgradering och full uppgradering .
  • aptitude utför faktiskt inte bara apt-get utan också några av dess kompletterande verktyg, såsom apt-cache och apt-mark.
  • aptitude har en något annan frågesyntax för sökning (jämfört med apt-cache)
  • aptitude har kommandona varför och varför-inte vilka manuellt installerade paket som förhindrar en åtgärd som du kanske vill vidta.
  • Om de åtgärder (installation, borttagning, uppdatering av paket) som du vill vidta orsakar konflikter, kan aptitude föreslå flera potentiella lösningar. apt-get säger bara ”jag är ledsen Dave, jag kan inte tillåta dig att göra det.”

Det finns andra små skillnader, men det är de viktigaste som jag kan tänka på.

Sammanfattningsvis hör aptitude mer korrekt till kategorin med Synaptic och andra högre nivåer för pakethanterare. Det råkar bara ha ett kommandoradsgränssnitt som liknar apt-get.

Bonusrunda: Vad är wajig?

Kom ihåg hur jag nämnde dessa ”följeslagar” -verktyg som apt- cache och apt-mark? Det finns ett gäng av dem, och om du använder dem mycket kanske du inte kommer ihåg vilka som ger vilka kommandon. Wajig är en lösning på det problemet. Det är i huvudsak en avsändare, ett omslag runt alla dessa verktyg. Det gäller även sudo när det behövs. När du säger wajig install foo, säger wajig ”Ok, install tillhandahålls av apt-get och kräver administratörsbehörighet, ”och den kör sudo apt-get install foo. När du säger wajig search foo, säger wajig” Ok, search tillhandahålls av apt-cache och kräver inte administratörsbehörighet, ”och den kör apt-cache search foo. använd wajig istället för apt-get, apt-mark, apt-cache och andra, så kommer du aldrig att ha det här problemet:

$ apt-get search foo E: Invalid operation search 

Om du vill vet vad wajig gör bakom kulisserna, vilka verktyg den använder för att implementera ett visst kommando, den har --simulate och --teaching m odes.

Två wajig-kommandon som jag ofta använder är wajig listfiles foo och wajig whichpkg /usr/bin/foo.

Kommentarer

  • Ett stort problem jag hade med aptitude är att det tar lång tid att få flikavslutningar på paketnamn (t.ex. aptitude install linux-im -fliken), medan det är mycket snabbt för apt-get. Det verkar finnas lite cachning närvarande i apt-get-familjen som saknar skicklighet.
  • aptitude har också den fantastiska aptitude search som du kan använda med mycket kraftfulla sökmönster . Du har aptitude reinstall. Du kan också använda gränssnittet ncurses (terminalmenyn) för att förbereda komplexa paketåtgärder som partiell uppgradering, ta bort ett paket, frysa ett annat, uppgradera det här, som du sedan kan köra i operation … Åh, och den har en interaktiv konfliktlösare .
  • @Totor heliga ko, använder aptitude ’ s ncurses interface för att förbereda kommandon sålde mig bara på aptitude en gång för alla! (efter år av tänkande är lämplighet värt att göra, men att skriva apt-get från muskelminne)
  • … och aptitude har också aptitude download package-name för att få paketet .deb-fil!
  • Det ’ är bara en sak jag har hittat att det inte är ’ t i aptitude men finns i apt-get, och det är apt-get --compile source package-name . apt-get build-dep package-name finns men jag tror att aptitude build-dep package-name gör ett bättre jobb.

Svar

Jag har ofta undrat mig själv. Wikipedia framhäver att det viktigaste kännetecknet är att skicklighet har en Gränssnitt för helskärmstextläge (förbannelser). Det faktum att du kan använda de flesta apt-get kommandorargument med aptitude är bara ett designbeslut för att göra det lättare för apt-get användare att flytta till aptitude och vice versa.

Jag har aldrig använt wajig, men dokumentationen antyder att det bara är ett skript som vet om du skickar en deb -fil (när den körs dpkg) eller ett apt paketnamn (när det körs apt-get istället). Kan du prova det och se om det är vad det gör?

Naturligtvis är skillnaden verklig :

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

Kommentarer

  • Nej! aptitude har mer. Du glömde att sätta de ändlösa -v flaggorna till moo. (Du kan gå upp till -vvvvvv)
  • Don ’ glöm inte alla viktiga Super Cow Powers, som apt-get har men aptitude inte. (Försök med --help på båda)
  • lmao. det är ett roligt svar att läsa, även om @ryan ’ s svar är mycket mer detaljerat;)

Svar

aptitude är det föredragna programmet för pakethantering från konsolen både för paketinstallationer och paket- eller systemuppgraderingar i Debian.

Här är en översikt över verktyget och funktionerna som den har över apt-get: http://www.debian.org/doc/FAQ/ch-pkgtools.en.html#s-aptitude

Så mitt råd är att bara apt-get install aptitude 🙂

Kommentarer

  • release notes säg att apt-get nu rekommenderas över lämplighet för uppgraderingar att klämma.
  • Ja, men bara för det. Annars anses de vara lika men aptitude har många mer avancerade funktioner, som sökning och helskärmsläge, än apt-get.
  • Av någon anledning använde aptitude för att installera emacs och utan att titta bort tog det bort gdm! Så nu använder vi apt-get men är väldigt nyfiken på skicklighet.

Svar

aptitude kommer ihåg vilka paket som uttryckligen begärts och vilka som bara installerades på grund av beroenden. Det avinstallerar automatiskt paket som inte uttryckligen begärs när de inte längre behövs.

apt-get behandlar paket som begärs uttryckligen och deras beroenden samma.

Så använd bättre aptitude, detta hjälper till att hålla ditt system rent.

Kommentarer

  • Detta brukade vara sant, men jag vet att mitt apt-get har ett apt-get autoremove -kommando för att ta bort paket som bara är installerade som beroenden. Jag vet inte ’ när den här funktionen lades till, men en webbplats antyder att det kan ha hänt med Debian Lenny (juni 2010).
  • apt-get autoremove tar inte ’ inte bort paket installerade som beroenden, det tar bort föräldralösa beroenden, vilket är en subtil skillnad ; det kan ’ inte berätta om ett ’ blad ’ -paket installerades med avsikt eller som ett beroende så att det lämnar det, där skicklighet skulle känna till och ta bort det.
  • Jag ’ jag såld! Det finns andra fina saker om aptitude men det här är praktiskt taget en mördare-funktion.

Svar

apt-get, liksom de olika kompletterande verktygen, använder betydligt mindre minne än respektive kommandoradsinrop av aptitude, och är lite snabbare. Jag var lyckligt omedveten om detta tills jag försökte uppgradera debian-installationen på en wizened gammal pentium-tankeplatta med 32 MB ram. Det skulle ta en timme eller två av swap-thrashing att köra apt-get, som slutfördes framgångsrikt; aptitude skulle misslyckas efter att jag tror en längre tid.

Denna skillnad är mer eller mindre irrelevant för något som liknar ett modernt skrivbordssystem.

Svar

Baserat på @Gauravs svar är påskäggen i de två pakethanterarna ganska roliga !:

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. 

och så vidare.

Svar

De erbjuder samma grundläggande funktionalitet: installera och ta bort paket från kommandoraden.

Här är en mer detaljerad jämförelse, publicerad på Webbplats för Ubuntu Stack Exchange : https://askubuntu.com/questions/1743/is-aptitude-really-better-than-apt-get/1749#1749

Kommentarer

  • De är ganska lika, jag kan växla mellan dem tillräckligt enkelt.

Svar

Som nämnts vara http://pthree.org/2007/08/12/aptitude-vs-apt-get/ , aptitude har en muc h lättare att använda kommandoradsgränssnitt.

Använder de inte samma APT-system under huven? Ja.

Det underliggande systemet är inte bara apt utan dpkg. Detta system är lika dumt som RPM, det kan bara hantera installation och administration av enstaka paket. Det spårar vilka installerade filer som tillhör vilket paket.

apt hanterar nedladdningar av arkiv, spårning av beroenden och så vidare för alla enskilda paket – som det sedan installeras med dpkg. aptitude gör detsamma med ett annat gränssnitt.

Svar

Båda apt -get och skicklighet förlitar sig på APT-biblioteket, ja.

Se mitt svar på serverfault.com .

Debian är inte en monolitisk enhet, det finns människor med olika åsikter och lämplighetshållaren bestämde att apt-get hade några brister och ville bygga något bättre med skicklighet. Han förbättrade logiken för att hitta lösningar för komplexa uppgraderingsscenarier, lade till ett GUI för konsolen etc. Och det finns mer än bara apt-get och aptitude, se min artikel apt -get, aptitude, … välj rätt pakethanterare för dig .

Svar

Jag är inte säker om detta fortfarande håller men den blödande kanten Debian-utvecklaren Joey Hess brukade alltid förespråka skicklighet framför apt-get. Naturligtvis saker att förändras när programvaran utvecklas. Apt-get hanterar beroenden bättre än tidigare. Från http://lists.debian.org/debian-user/2004/04/msg03138.html

Datum: tis 20 april 2004 22:27:12 -0400 Från: Joey Hess

Nio skäl till varför du ska använda aptitude istället för apt-get eller dselect.

  1. aptitude kan se ut som apt-get

    Om du kör ”aptitude update” eller ”aptitude upgrade” eller ”aptitude install” ser det ut och fungerar precis som apt-get, med några förbättringar. Så det finns ingen inlärningskurva.

    (Om du väljer en användare är inlärningskurvan uppenbarligen inte ett av dina problem.)

  2. lämplighetsspår automatiskt installerade paket

    Sluta oroa dig för att beskära oanvända bibliotek och supportpaket från ditt system. Om du använder aptitude för att installera allt kommer det att hålla reda på vilka paket som dras in av beroenden ensam och ta bort dessa paket när de behövs inte längre.

  3. aptitude sanely handles rekommenderar

    Ett långvarigt misslyckande med apt-get har varit bristen på stöd för Relations-rekommendationen Vilket är ett problem eftersom många paket i Debian förlitar sig på Rekommenderar att hämta programvara som den genomsnittliga användaren brukar använda med paketet. Detta är en inte ovanlig orsak till problem, även om apt-get nyligen kunde åtminstone nämna rekommenderade paket. , det är lätt att missa sina varningar.

    Aptitude stöder rekommendationer som standard och kan konfigureras för att stödja förslag också. Det stöder till och med installation av rekommenderade paket när de används i kommandoradsläge.

  4. använd aptitude som en normal användare och undvik att spola i ditt system

    Du kanske inte ” vet inte att du kan köra skicklighet i gui-läge som en vanlig användare. Gör alla ändringar du vill prova. Om du hamnar i en riktig röra kan du trycka på ”q” och avsluta, dina ändringar sparas inte. (Aptitude låter dig också använda ctrl-u för att ångra ändringar.) Eftersom det körs som en vanlig användare kan du inte slanga ditt system förrän du säger att du kan göra något, vid vilken tidpunkt det kommer att be dig om ditt lösenord. / p>

  5. aptitude har ett kraftfullt användargränssnitt och sökfunktioner

    Mellan aptitudes kategoriska webbläsare och dess fantastiska stöd för filtrering och sökning av paket efter namn, beskrivning, underhåll, beroenden osv. bör du kunna hitta paket snabbare än någonsin tidigare med aptitude.

  6. aptitude gör det enkelt att hålla reda på föråldrad programvara

    Om Debian slutar distribuera ett paket, lämnar apt det på ditt system på obestämd tid, utan varningar och inga uppgraderingar. Aptitude listar sådana paket i avsnittet ”Föråldrade och lokalt skapade paket”, så att du kan informeras om problemet och göra något åt det.

  7. aptitude har ett gränssnitt till Debian uppgiftssystem

    Aptitude låter dig använda Debians uppgiftssystem som det var utformat för att användas. Du kan bläddra bland tillgängliga uppgifter, välja en uppgift för installation och sedan gräva i det och avmarkera delar av den uppgift du inte vill ha. apt-get har inget stöd för uppgifter och aptitude är bättre även än specialverktyg som taskel.

  8. aptitude stöder flera källor

    Om dina källor. listan är konfigurerad för att göra flera versioner av ett paket tillgängligt, med aptitude kan du gå ner för att se tillgängliga versioner och välja en icke-standardversion att installera. Om ett paket bryts in i instabil, rullar det bara tillbaka till versionen under testningen.

  9. aptitude loggar sina åtgärder

    Aptitude logs-paket som det installerar, uppgraderar, och tar bort till / varlog / aptitude, vilket kan vara användbart för att ta reda på varför saker började gå sönder efter gårdagens uppgradering, eller när du tog bort ett partiticlar-paket.

– se blyg jo

=================== Det finns också en nyare diskussion från 2010 här https://superuser.com/questions/93437/aptitude-vs-apt-get-which-is-the-recommended-aka-the-right-tool-to-use på StackExchange.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *