Hvad er den reelle forskel mellem “ apt-get ” og “ aptitude ”? (Hvad med “ wajig ”?)

Jeg ved at både apt-get og aptitude er kommandolinjepakkehåndteringsgrænseflader på Debian-afledt Linux med forskellige muligheder, men jeg er stadig noget forvirret. Brug de ikke det samme APT-system under emhætten?

Hvorfor vedligeholder Debian disse parallelle værktøjer? (Bonusspørgsmål: hvad i alverden er wajig ?)

Kommentarer

  • Jeg ved, det er ikke det rigtige svar på dit spørgsmål, men hvorfor kan du ikke prøve synaptic? det er meget brugervenligt og downloader og installerer afhængigheder automatisk. Er gnome ikke til stede på dit system?
  • Jeg ‘ er forudindtaget, men jeg tror dette spørgsmål om Ubuntu SE-webstedet kan være relevant.
  • duplikat: unix.stackexchange.com/questions/244/apt-get-or-aptitude .
  • @Wim på grund af wajig-delen af dette spørgsmål besluttede jeg at fusionere 244 i dette spørgsmål i stedet for omvendt
  • Det er værd at bemærke, at evnen er planlagt til fjernelse fra standardinstallationen på den næste version af Ubuntu (selvom du altid kunne installere den ved hjælp af apt-get bagefter)

Svar

Den mest åbenlyse forskel er, at aptitude giver en terminalmenugrænseflade (ligesom Synaptic i en terminal), mens apt-get gør ikke.

I betragtning af kun kommandolinjegrænsefladerne for hver er de ret ens, og for det meste betyder det ikke noget, hvilken du bruger. Nylige versioner af begge sporer, hvilke pakker der blev installeret manuelt, og hvilke der blev installeret som afhængigheder (og derfor berettiget til automatisk fjernelse). Faktisk tror jeg, at endnu mere for nylig blev de to værktøjer opdateret til faktisk at dele den samme database med manuelt vs automatisk installerede pakker, så tilfælde, hvor du installerer noget med apt-get og derefter aptitude ønsker at afinstallere det, er for det meste en ting af fortiden.

Der er et par mindre forskelle:

  • aptitude fjerner automatisk kvalificerede pakker, mens apt-get kræver en separat kommando for at gøre det
  • kommandoer til opgradering vs. dist-opgradering er omdøbt i egnethed til de sandsynligvis mere nøjagtige navne sikker opgradering og fuld opgradering hhv.
  • aptitude udfører faktisk funktionerne ikke kun apt-get, men også nogle af dets ledsagende værktøjer, såsom apt-cache og apt-mark.
  • aptitude har en lidt anden forespørgselsyntaks til søgning (sammenlignet med apt-cache)
  • aptitude har kommandoerne hvorfor og hvorfor-ikke til at fortælle dig hvilke manuelt installerede pakker forhindrer en handling, som du måske vil foretage.
  • Hvis de handlinger (installation, fjernelse, opdatering af pakker), som du vil foretage, forårsager konflikter, kan aptitude foreslå flere potentielle opløsninger. apt-get vil bare sige “jeg er ked af Dave, jeg kan ikke tillade dig at gøre det.”

Der er andre små forskelle, men det er de vigtigste, som jeg kan tænke på.

Kort fortalt hører aptitude mere korrekt til kategorien med Synaptic og andre højere pakkehåndteringsfront. Det sker bare også med en kommandolinjegrænseflade, der ligner apt-get.

Bonusrunde: Hvad er wajig?

Husk, hvordan jeg nævnte disse “ledsagende” værktøjer som apt- cache og apt-mark? Der er en flok af dem, og hvis du bruger dem meget, kan du muligvis ikke huske, hvilke der giver hvilke kommandoer. Wajig er en løsning på dette problem. Det er i det væsentlige en afsender, en indpakning omkring alle disse værktøjer. Det gælder også sudo når det er nødvendigt. Når du siger wajig install foo, siger wajig “Ok, install leveres af apt-get og kræver administratorrettigheder, “og den kører sudo apt-get install foo. Når du siger wajig search foo, siger wajig” Ok, search leveres af apt-cache og kræver ikke administratorrettigheder, “og den kører apt-cache search foo. Brug wajig i stedet for apt-get, apt-mark, apt-cache og andre, så har du aldrig dette problem:

$ apt-get search foo E: Invalid operation search 

Hvis du vil ved hvad wajig laver bag kulisserne, hvilke værktøjer det bruger til at implementere en bestemt kommando, den har --simulate og --teaching m odes.

To wajig-kommandoer, som jeg ofte bruger, er wajig listfiles foo og wajig whichpkg /usr/bin/foo.

Kommentarer

  • Et stort problem, jeg havde med aptitude, er, at det tager lang tid at få udfyldt faner på pakkenavne (f.eks. aptitude install linux-im -fanen), mens det er meget hurtigt for apt-get. Der ser ud til at være noget caching til stede i apt-get-familien, der mangler evne.
  • aptitude har også den fantastiske aptitude search, som du kan bruge med meget kraftige søgemønstre . Du har aptitude reinstall. Du kan også bruge interface ncurses (terminal menu) til at forberede komplekse pakkehandlinger som delvis opgradering, fjerne en pakke, fryse en anden, opgradere denne, som du derefter kan udføre i en enkelt operation … Åh, og den har en interaktiv konfliktløsning .
  • @Totor hellig ko, ved hjælp af aptitude ‘ s ncurses interface til at forberede kommandoer har lige solgt mig på aptitude en gang for alle! (efter mange års tænkning er dygtighed værd at gøre, men at skrive apt-get fra muskelhukommelse)
  • … og aptitude har også aptitude download package-name for at hente pakken .deb-fil!
  • Det ‘ er bare en ting, jeg har fundet, at det ikke er ‘ t i aptitude men er i apt-get, og det er apt-get --compile source package-name . apt-get build-dep package-name findes, men jeg tror, at aptitude build-dep package-name gør et bedre stykke arbejde.

Svar

Jeg har ofte spekuleret på mig selv. Wikipedia fremhæver , at det vigtigste kendetegn er, at aptitude har en grænseflade til fuld skærm tekst-tilstand (forbandelser). Det faktum, at du kan bruge de fleste apt-get kommandor argumenter med aptitude i sig selv er kun en designbeslutning for at gøre det lettere for apt-get brugere at flytte til aptitude og omvendt.

Jeg har aldrig brugt wajig, men dokumentationen antyder, at det bare er et script, der ved, om du sender det til en deb -fil (når den kører dpkg) eller et apt pakkenavn (når det kører apt-get i stedet). Kan du prøve det og se, om det er, hvad det gør?

Selvfølgelig er den virkelige forskel:

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 mere. Du glemte at sætte de uendelige -v flag til moo. (Du kan gå op til -vvvvvv)
  • Don ‘ glem ikke de alle vigtige Super Cow Powers, som apt-get har, men aptitude ikke. (Prøv --help på begge)
  • lmao. det er et sjovt svar at læse, selvom @ryan ‘ s svar er langt mere detaljeret;)

Svar

aptitude er det foretrukne program til pakkehåndtering fra konsol både til pakkeinstallationer og pakke- eller systemopgraderinger i Debian.

Her er en oversigt over værktøjet og de funktioner, den har over apt-get: http://www.debian.org/doc/FAQ/ch-pkgtools.en.html#s-aptitude

Så mit råd er at bare apt-get install aptitude 🙂

Kommentarer

  • release notes siger apt-get anbefales nu over evner til opgraderinger at klemme.
  • Ja, men kun for det. Ellers betragtes de som lige, men aptitude har mange mere avancerede funktioner som søgning og fuldskærmstilstand end apt-get.
  • Af en eller anden grund brugte egnethed til at installere emacs og uden at se det fjernede det gdm! Så nu bruger apt-get men er meget nysgerrig efter aptitude.

Svar

aptitude husker, hvilke pakker der blev udtrykkeligt anmodet om, og hvilke der kun blev installeret på grund af afhængigheder. Det afinstallerer automatisk pakker, der ikke udtrykkeligt blev anmodet om, når de ikke længere er nødvendige.

apt-get behandler pakker, der anmodes om eksplicit, og deres afhængighed er den samme.

Så brug bedre aptitude, dette hjælper med at holde dit system rent.

Kommentarer

  • Dette plejede at være sandt, men jeg ved, at min apt-get har en apt-get autoremove -kommando til at fjerne pakker, der kun er installeret som afhængigheder. Jeg ved ‘ ikke, hvornår denne funktion blev tilføjet, men et websted antyder, at det muligvis er sket med Debian Lenny (juni 2010).
  • apt-get autoremove fjerner ‘ ikke pakker, der kun er installeret som afhængigheder, det fjerner forældreløse afhængigheder, hvilket er en subtil forskel ; det kan ‘ ikke fortælle om en ‘ blad ‘ pakke blev installeret med hensigt eller som en afhængighed, så den efterlader den, hvor egnethed vil vide og fjerne den.
  • Jeg ‘ er solgt! Der er andre gode ting ved aptitude men dette er praktisk taget en dræberfunktion.

Svar

apt-get, såvel som de forskellige ledsagende værktøjer, bruger betydeligt mindre hukommelse end respektive kommandolinjeopkald af aptitude, og er lidt hurtigere. Jeg var lykkeligt uvidende om dette, indtil jeg prøvede at opgradere debian-installationen på en wizened gammel pentium-tænkeflade med 32 MB ram. Det ville tage en time eller to swap-thrashing at køre apt-get, som blev gennemført med succes; aptitude ville mislykkes, efter jeg tror en længere periode.

Denne sondring er mere eller mindre irrelevant for noget, der ligner et moderne desktop-system.

Svar

På baggrund af @Gauravs svar er påskeægene i de to pakkeforvaltere ret morsomme !:

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. 

og så videre.

Svar

De tilbyder den samme grundlæggende funktionalitet: installer og fjern pakker fra kommandolinjen.

Her er en mere detaljeret sammenligning, der er offentliggjort på Ubuntu Stack Exchange-websted : https://askubuntu.com/questions/1743/is-aptitude-really-better-than-apt-get/1749#1749

Kommentarer

  • De er ret ens, jeg kan skifte mellem dem let nok.

Svar

Som nævnt være http://pthree.org/2007/08/12/aptitude-vs-apt-get/ , aptitude har slim h lettere at bruge kommandolinjegrænsefladen.

Brug de ikke det samme APT-system under emhætten? Ja.

Det underliggende system er ikke bare apt, men dpkg. Dette system er lige så dumt som RPM, det kan kun håndtere installation og administration af enkeltpakker. Det sporer, hvilke installerede filer der hører til hvilken pakke.

apt håndterer downloads af arkiver, sporing af afhængigheder osv. For alle individuelle pakker – som det derefter installerer ved hjælp af dpkg. aptitude gør det samme med en anden grænseflade.

Svar

Begge apt -get og aptitude er afhængige af APT-biblioteket, ja.

Se mit svar på serverfault.com .

Debian er ikke en monolitisk enhed, der er mennesker med forskellige meninger, og dygtighedsholderen besluttede, at apt-get havde nogle mangler og ønskede at opbygge noget bedre med evne. Han forbedrede logikken for at finde løsninger til komplekse opgraderingsscenarier, tilføjede en GUI til konsollen osv. Og der er mere end bare apt-get og aptitude, se min artikel apt -get, aptitude, … vælg den rigtige pakkehåndtering til dig .

Svar

Jeg er ikke sikker hvis dette stadig holder, men Debian-udvikleren Joey Hess plejede altid at anbefale dygtighed frem for apt-get. Naturligvis ting at ændre sig efterhånden som software udvikler sig. Apt-get håndterer afhængigheder bedre end det plejede at gøre. Fra http://lists.debian.org/debian-user/2004/04/msg03138.html

Dato: Tirsdag 20. april 2004 22:27:12 -0400 Fra: Joey Hess

Ni grunde til, at du skal bruge aptitude i stedet for apt-get eller dselect.

  1. aptitude kan ligne apt-get

    Hvis du kører “aptitude update” eller “aptitude upgrade” eller “aptitude install”, ser det ud og fungerer ligesom apt-get med et par forbedringer. Så der er ingen indlæringskurve.

    (Hvis du er en vælger bruger, er indlæringskurve naturligvis ikke et af dine problemer.)

  2. egnethedsspor automatisk installerede pakker

    Stop med at bekymre dig om at beskære ubrugte biblioteker og supportpakker fra dit system. Hvis du bruger aptitude til at installere alt, vil det holde styr på, hvilke pakker der trækkes af afhængigheder alene, og fjerne disse pakker, når de er ikke længere nødvendige.

  3. aptitude sanely handles anbefaler

    En langvarig fiasko med apt-get har været manglen på støtte til forholdet Anbefaler Hvilket er et problem, fordi mange pakker i Debian stoler på Anbefaler at hente software, som den gennemsnitlige bruger generelt bruger med pakken. Dette er en ikke ualmindelig årsag til problemer, selvom apt-get for nylig blev i stand til i det mindste at nævne anbefalede pakker. , det er let at gå glip af sine advarsler.

    Aptitude understøtter anbefalinger som standard og kan også konfigureres til at understøtte forslag. Det understøtter endda installation af anbefalede pakker, når de bruges i kommandolinjemodus.

  4. brug aptitude som en normal bruger og undgå at sprøjte dit system

    Måske gjorde du ikke ” ikke ved, at du kan køre aptitude i gui-tilstand som en almindelig bruger. Foretag de ændringer, du gerne vil prøve. Hvis du kommer i et rigtigt rod, kan du trykke på “q” og afslutte, dine ændringer gemmes ikke. (Aptitude giver dig også mulighed for at bruge ctrl-u til at fortryde ændringer.) Da det kører som en normal bruger, kan du ikke slange dit system, før du fortæller evnen til at gøre noget, på hvilket tidspunkt det beder dig om din root-adgangskode.

  5. aptitude har en stærk brugergrænseflade og søgefunktioner

    Mellem aptitudes kategoriske browser og dens store understøttelse af mutt-stil filtrering og søgning af pakker efter navn, beskrivelse, vedligeholdelse, afhængigheder osv., skal du være i stand til at finde pakker hurtigere end nogensinde før ved hjælp af aptitude.

  6. aptitude gør det nemt at holde styr på forældet software

    Hvis Debian holder op med at distribuere en pakke, efterlader apt den på dit system på ubestemt tid uden advarsler og ingen opgraderinger. Aptitude lister sådanne pakker i sektionen “Forældede og lokalt oprettede pakker”, så du kan blive informeret om problemet og gøre noget ved det.

  7. aptitude har en grænseflade til Debian opgavesystem

    Aptitude giver dig mulighed for at bruge Debians opgavesystem, som det var designet til at blive brugt. Du kan gennemse de tilgængelige opgaver, vælge en opgave til installation og derefter grave i det og fravælge dele af den opgave, som du ikke ønsker. apt-get har ingen understøttelse af opgaver, og egnethed er bedre end værktøjer til specielle formål som f.eks. taskel.

  8. aptitude understøtter flere kilder

    Hvis dine kilder. listen er konfigureret til at gøre flere versioner af en pakke tilgængelige, med aptitude kan du bore ned for at se de tilgængelige versioner og vælge en ikke-standardversion, der skal installeres. Hvis en pakke bryder i ustabil, skal du bare rulle den tilbage til versionen under testning.

  9. aptitude logger sine handlinger

    Aptitude logs-pakke, den installerer, opgraderer, og fjerner til / varlog / aptitude, hvilket kan være nyttigt for at finde ud af, hvorfor ting begyndte at gå i stykker efter gårsdagens opgradering, eller når du fjernede en partiticlar-pakke.

– se genert jo

==================== der er også en nyere diskussion fra 2010 her https://superuser.com/questions/93437/aptitude-vs-apt-get-which-is-the-recommended-aka-the-right-tool-to-use på StackExchange.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *