Hva er den virkelige forskjellen mellom “ apt-get ” og “ aptitude ”? (Hva med “ wajig ”?)

Jeg vet at både apt-get og aptitude er grensesnitt for kommandolinjepakkehåndtering på Debian-avledet Linux, med forskjellige alternativer, men jeg er fortsatt litt forvirret. Bruker de ikke det samme APT-systemet under panseret?

Hvorfor vedlikeholder Debian disse parallelle verktøyene? (Bonusspørsmål: hva i all verden er wajig ?)

Kommentarer

  • Jeg vet at det ikke er riktig svar på spørsmålet ditt, men hvorfor kan du ikke prøve synaptisk? den er veldig vennlig og laster ned og installerer avhengigheter automatisk. Er gnome ikke tilstede på systemet ditt?
  • Jeg ‘ er skjev, men jeg tror dette spørsmålet om Ubuntu SE-nettstedet kan være relevant.
  • duplikat: unix.stackexchange.com/questions/244/apt-get-or-aptitude .
  • @Wim på grunn av wajig-delen av dette spørsmålet, bestemte jeg meg for å slå sammen 244 i dette spørsmålet i stedet for omvendt
  • Det er verdt å merke seg at evner er planlagt for fjerning fra standardinstallasjonen på neste versjon av Ubuntu (selv om du alltid kunne installere den ved hjelp av apt-get etterpå)

Svar

Den mest åpenbare forskjellen er at aptitude gir et terminalmenygrensesnitt (omtrent som Synaptic i en terminal), mens apt-get gjør ikke det.

Med tanke på bare kommandolinjegrensesnittene til hver, er de ganske like, og for det meste spiller det ingen rolle hvilken du bruker. Nyere versjoner av begge vil spore hvilke pakker som ble installert manuelt, og hvilke som ble installert som avhengigheter (og derfor kvalifisert for automatisk fjerning). Faktisk tror jeg at enda mer nylig ble de to verktøyene oppdatert for å faktisk dele den samme databasen med manuelt mot automatisk installerte pakker, så tilfeller der du installerer noe med apt-get og deretter aptitude ønsker å avinstallere det, er for det meste en ting av fortiden.

Det er noen få mindre forskjeller:

  • aptitude vil automatisk fjerne kvalifiserte pakker, mens apt-get krever en egen kommando for å gjøre det
  • kommandoer for oppgradering vs. dist-oppgradering har blitt omdøpt i egenskap til de sannsynligvis mer nøyaktige navnene sikker oppgradering og full oppgradering .
  • aptitude utfører faktisk funksjonene til ikke bare apt-get, men også noen av dets ledsagerverktøy, som apt-cache og apt-mark.
  • aptitude har en litt annen spørringssyntaks for søking (sammenlignet med apt-cache)
  • aptitude har kommandoene hvorfor og hvorfor-ikke å fortelle deg hvilke manuelt installerte pakker som forhindrer en handling du kanskje vil utføre.
  • Hvis handlingene (installering, fjerning, oppdatering av pakker) du vil utføre, forårsaker konflikter foreslå flere potensielle oppløsninger. apt-get vil bare si «jeg beklager Dave, jeg kan ikke tillate deg å gjøre det.»

Det er andre små forskjeller, men det er de viktigste jeg kan tenke på.

Kort fortalt hører aptitude riktigere til i kategorien med Synaptic og andre høyere nivå pakkebehandler frontender. Det har tilfeldigvis også kommet et kommandolinjegrensesnitt som ligner apt-get.

Bonusrunde: Hva er wajig?

Husk hvordan jeg nevnte disse «følgesvend» -verktøyene som apt- cache og apt-mark? Vel, det er en haug med dem, og hvis du bruker dem mye, husker du kanskje ikke hvilke som gir hvilke kommandoer. Wajig er en løsning på det problemet. Det er egentlig en utsender, en omslag rundt alle disse verktøyene. Det gjelder også sudo når det er nødvendig. Når du sier wajig install foo, sier wajig «Ok, install er levert av apt-get og krever administratorrettigheter, «og den kjører sudo apt-get install foo. Når du sier wajig search foo, sier wajig» Ok, search er levert av apt-cache og krever ikke administratorrettigheter, «og den kjører apt-cache search foo. bruk wajig i stedet for apt-get, apt-mark, apt-cache og andre, så vil du aldri ha dette problemet:

$ apt-get search foo E: Invalid operation search 

Hvis du vil vet hva wajig gjør bak kulissene, hvilke verktøy den bruker for å implementere en bestemt kommando, den har --simulate og --teaching m odes.

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

Kommentarer

  • Et stort problem jeg hadde med aptitude er at det tar lang tid å få fullført faner på pakkenavn (f.eks. aptitude install linux-im -fanen), mens det er veldig raskt for apt-get. Det ser ut til å være noe caching til stede i apt-get-familien som mangler evner.
  • aptitude har også den fantastiske aptitude search som du kan bruke med veldig kraftige søkemønstre . Du har aptitude reinstall. Du kan også bruke grensesnittet ncurses (terminalmeny) til å forberede komplekse pakkeoperasjoner som delvis oppgradering, fjerne en pakke, fryse en til, oppgradere denne, som du deretter kan utføre i en enkelt drift … Åh, og den har en interaktiv konfliktløser .
  • @Totor hellig ku, ved hjelp av aptitude ‘ s ncurses interface for å forberede kommandoer solgte meg bare på aptitude en gang for alle! (etter mange år med å tenke egnethet er verdt å gjøre, men å skrive apt-get fra muskelhukommelsen)
  • … og aptitude har også aptitude download package-name for å få pakken .deb-fil!
  • Den ‘ er bare en ting jeg har funnet at ikke ‘ t i aptitude men er i apt-get, og det er apt-get --compile source package-name . apt-get build-dep package-name eksisterer, men jeg tror at aptitude build-dep package-name gjør en bedre jobb.

Svar

Jeg har ofte lurt på meg selv. Wikipedia fremhever at det viktigste kjennetegnet er at egnethet har en grensesnitt i fullskjerms tekstmodus (forbannelser). Det faktum at du kan bruke de fleste apt-get kommandoargumenter med aptitude i seg selv er bare en design for å gjøre det enklere for apt-get brukere å flytte til aptitude og omvendt.

Jeg har aldri brukt wajig, men dokumentasjonen antyder at det bare er et skript som vet om du sender det til en deb -fil (når den kjører dpkg) eller et apt pakkenavn (når den kjører apt-get i stedet). Kan du prøve det og se om det er det det gjør?

Selvfølgelig er ekte forskjellen:

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

Kommentarer

  • Nei! aptitude har mer. Du glemte å sette de endeløse -v flaggene til moo. (Du kan gå opp til -vvvvvv)
  • Ikke ‘ Ikke glem alle viktige Super Cow Powers, som apt-get har men aptitude ikke. (Prøv --help på begge)
  • lmao. det er et morsomt svar å lese, selv om @ryan ‘ s svar er langt mer forseggjort;)

Svar

aptitude er det foretrukne programmet for pakkehåndtering fra konsoll både for pakkeinstallasjoner og pakke- eller systemoppgraderinger i Debian.

Her er en oversikt over verktøyet og funksjonene den har over apt-get: http://www.debian.org/doc/FAQ/ch-pkgtools.en.html#s-aptitude

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

Kommentarer

  • utgivelsesnotater si apt-get anbefales nå over evner for oppgraderinger å klemme.
  • Ja, men bare for det. Ellers betraktes de som like, men aptitude har mange mer avanserte funksjoner, som søk og fullskjermmodus, enn apt-get.
  • Av en eller annen grunn brukte egenskapen til å installere emacs og uten å se fjernet det gdm! Så foreløpig vil jeg bruke apt-get, men er veldig nysgjerrig på dyktighet.

Svar

aptitude husker hvilke pakker som ble eksplisitt forespurt og som bare ble installert på grunn av avhengigheter. Det vil automatisk avinstallere pakker som ikke eksplisitt ble forespurt når de ikke lenger er nødvendige.

apt-get behandler pakker som er forespurt eksplisitt og deres avhengighet den samme.

Så bedre bruk aptitude, dette bidrar til å holde systemet rent.

Kommentarer

  • Dette pleide å være sant, men jeg vet at apt-get har en apt-get autoremove -kommando for å fjerne pakker som bare er installert som avhengigheter. Jeg vet ikke ‘ når denne funksjonen ble lagt til, men et nettsted antyder at det kan ha skjedd med Debian Lenny (juni 2010).
  • apt-get autoremove ‘ for ikke å fjerne pakker som bare er installert som avhengigheter, det fjerner foreldreløse avhengigheter, noe som er en subtil forskjell ; den kan ‘ ikke fortelle om en ‘ blad ‘ pakke ble installert med hensikt eller som en avhengighet slik at den forlater den, der egnethet ville vite og fjerne den.
  • Jeg ‘ Jeg er solgt! Det er andre fine ting om aptitude, men dette er praktisk talt en morderfunksjon.

Svar

apt-get, så vel som de forskjellige ledsagerverktøyene, bruker betydelig mindre minne enn respektive kommandolinjeanrop på aptitude, og er litt raskere. Jeg var lykkelig uvitende om dette før jeg prøvde å oppgradere debian-installasjonen på en wizened gammel pentium-tankeflate med 32 MB ram. Det ville ta en time eller to med bytte-thrashing å kjøre apt-get, som fullførte vellykket; aptitude vil mislykkes etter at jeg tror en lengre periode.

Dette skillet er mer eller mindre irrelevant for noe som ligner et moderne skrivebordssystem.

Svar

På bakgrunn av @Gauravs svar er påskeeggene i de to pakkeforvalterne ganske 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 tilbyr samme grunnleggende funksjonalitet: installer og fjern pakker fra kommandolinjen.

Her er en mer detaljert sammenligning, lagt ut på Ubuntu Stack Exchange-nettsted : https://askubuntu.com/questions/1743/is-aptitude-really-better-than-apt-get/1749#1749

Kommentarer

  • De er ganske like, jeg kan bytte mellom dem enkelt nok.

Svar

Som nevnt være http://pthree.org/2007/08/12/aptitude-vs-apt-get/ , aptitude har slim h enklere å bruke kommandolinjegrensesnitt.

Bruker de ikke det samme APT-systemet under panseret? Ja.

Det underliggende systemet er ikke bare apt, men dpkg. Dette systemet er like dumt som RPM, det kan bare håndtere installasjon og administrasjon av enkeltpakker. Den sporer hvilke installerte filer som hører til hvilken pakke.

apt håndterer nedlastinger av arkiver, sporing av avhengigheter og så videre for alle individuelle pakker – som den deretter installeres ved hjelp av dpkg. aptitude gjør det samme, med et annet grensesnitt.

Svar

Begge apt -hent og egnethet stole på APT-biblioteket, ja.

Se mitt svar på serverfault.com .

Debian er ikke en monolitisk enhet, det er mennesker med forskjellige meninger, og dyktighetsholderen bestemte at apt-get hadde noen mangler og ønsket å bygge noe bedre med dyktighet. Han forbedret logikken for å finne løsninger for komplekse oppgraderingsscenarier, la til en GUI for konsollen osv. Og det er mer enn bare apt-get og aptitude, se artikkelen min apt -get, aptitude, … velg den rette pakkebehandleren for deg .

Svar

Jeg er ikke sikker hvis dette fremdeles holder, men Debian-utvikleren Joey Hess pleide alltid å argumentere for evner fremfor apt-get. Selvfølgelig ting å endre når programvaren utvikler seg. Apt-get håndterer avhengigheter bedre enn før. Fra http://lists.debian.org/debian-user/2004/04/msg03138.html

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

Ni grunner til at du skal bruke aptitude i stedet for apt-get eller dselect.

  1. aptitude kan se ut som apt-get

    Hvis du kjører «aptitude update» eller «aptitude upgrade» eller «aptitude install», ser det ut og fungerer akkurat som apt-get, med noen forbedringer. Så det er ingen læringskurve.

    (Hvis du velger en bruker, er læringskurve åpenbart ikke et av problemene dine.)

  2. egnethetsspor automatisk installerte pakker

    Slutt å bekymre deg for å beskjære ubrukte biblioteker og støttepakker fra systemet ditt. Hvis du bruker aptitude til å installere alt, vil det holde rede på hvilke pakker som blir trukket inn av avhengigheter alene, og fjerne disse pakkene når de trengs ikke lenger.

  3. aptitude sanely handles anbefaler

    En langvarig feil i apt-get har vært mangelen på støtte for forholdet Anbefaler Hvilket er et problem fordi mange pakker i Debian stoler på Anbefaler å hente inn programvare som gjennomsnittlig bruker vanligvis bruker med pakken. Dette er en ikke uvanlig årsak til problemer, selv om apt-get nylig ble i stand til i det minste å nevne anbefalte pakker. , det er lett å savne advarslene.

    Aptitude støtter anbefalinger som standard, og kan konfigureres til å støtte forslag også. Den støtter til og med å installere anbefalte pakker når de brukes i kommandolinjemodus.

  4. bruk aptitude som en vanlig bruker og unngå å koble til systemet ditt

    Kanskje du ikke gjorde det » ikke vet at du kan kjøre egnethet i gui-modus som en vanlig bruker. Gjør eventuelle endringer du vil prøve ut. Hvis du kommer i et virkelig rot, kan du trykke «q» og avslutte, endringene dine blir ikke lagret. (Aptitude lar deg også bruke ctrl-u for å angre endringene.) Siden det kjører som en vanlig bruker, kan du ikke slange systemet ditt før du ber deg om å gjøre noe, på hvilket tidspunkt det vil be deg om rotpassordet.

  5. aptitude har en kraftig brukergrensesnitt og søkefunksjoner

    Mellom aptitude «s kategoriske nettleser og dens store støtte for mutt-stil filtrering og søk av pakker etter navn, beskrivelse, vedlikeholder, avhengigheter osv., bør du kunne finne pakker raskere enn noensinne før du bruker aptitude.

  6. aptitude gjør det enkelt å holde oversikt over foreldet programvare

    Hvis Debian slutter å distribuere en pakke, vil apt legge den på systemet på ubestemt tid, uten advarsler og uten oppgraderinger. Aptitude lister opp slike pakker i delen «Foreldte og lokalt opprettet pakker», slik at du kan bli informert om problemet og gjøre noe med det.

  7. aptitude har et grensesnitt til Debian oppgavesystem

    Aptitude lar deg bruke Debians oppgavesystem slik det ble designet for å bli brukt. Du kan bla gjennom tilgjengelige oppgaver, velge en oppgave for installasjon, og deretter grave i det og fjerne markering av deler av oppgaven du ikke vil ha. apt-get har ingen støtte for oppgaver, og egnethet er bedre selv enn spesialverktøy som Tasksel.

  8. aptitude støtter flere kilder

    Hvis kildene dine. listen er konfigurert for å gjøre flere versjoner av en pakke tilgjengelig, med aptitude kan du gå ned for å se tilgjengelige versjoner og velge en ikke-standardversjon du vil installere. Hvis en pakke brytes ustabil, er det bare å rulle den tilbake til versjonen under testing.

  9. aptitude logger handlingene

    Aptitude logs-pakken den installerer, oppgraderer, og fjerner til / varlog / aptitude, som kan være nyttig for å finne ut hvorfor ting begynte å bryte etter gårsdagens oppgradering, eller når du fjernet en partiticlar-pakke.

– se sjenert jo

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

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *