dpkg vs apt vs apt-get: reelle forskelle og hvornår man skal bruge hver enkelt

Sidste ændring: 27/02/2026
Forfatter: Isaac
  • dpkg er den lavniveau-pakkehåndtering, der installerer og fjerner lokale .deb-filer uden at løse afhængigheder.
  • APT fungerer som et overordnet lag over dpkg, der administrerer arkiver, caching og automatisk afhængighedsforløsning.
  • apt, apt-get og aptitude er forskellige APT-frontends, designet til forskellige anvendelser: slutbruger, scripting og avanceret administration.
  • At vælge det rigtige værktøj til konteksten forenkler administrationen og reducerer fejl på Debian og afledte systemer.

Pakkeadministratorer dpkg apt og apt-get

I Debian-baserede distributioner (såsom Ubuntu, Linux Mint eller Devuan) er det meget almindeligt, at spørgsmålet opstår om Hvad er forskellen på at bruge dpkg, apt, apt-get eller endda aptitude?Ved første øjekast ser de alle ud til at gøre det samme: installere, opdatere og slette programmer. Men hver enkelt spiller en forskellig rolle i softwareøkosystemet, og at forstå dette vil spare dig for en masse hovedpine.

I denne artikel vil vi roligt gennemgå, hvordan det fungerer. dpkg som en lavniveau-managerHvad har APT som toplag, og hvordan adskiller de sig? apt, apt-get og aptitudeog hvilke grundlæggende kommandoer du bør mestre i hvert tilfælde. Ideen er, at du ved afslutningen af ​​læsningen vil have en klar forståelse. hvornår man skal bruge hvert værktøj og hvorforbåde i hverdagsopgaver og i mere avancerede opgaver eller scripts.

Fundamentet for det hele: dpkg, pakkehåndteringen på lavt niveau

Den søjle, som hele pakkesystemet i Debian er baseret på, er dpkg, den indbyggede pakkehåndtering, der arbejder direkte med .deb-filerDet var den første pakkehåndtering for Debian, og den dag i dag er den stadig standarden for alle afledte distributioner. Hvis du kommer fra RPM, kan du konvertere pakker med Konverter pakker med Alien at generere .deb-filer, der kan installeres med dpkg.

I modsætning til værktøjer på højt niveau beskæftiger dpkg sig kun med Installer, afinstaller og forespørg lokale .deb-pakkerDen håndterer ikke fjernarkiver, downloader ikke pakker fra internettet eller løser afhængigheder på egen hånd. Hvis du installerer noget med dpkg, og der mangler et bibliotek, skal du rette det manuelt.

Det gør dpkg til et ideelt værktøj til administrere pakker på en meget præcis og kontrolleret måde (for eksempel når du downloader en .deb manuelt eller når du bygger dine egne pakker), men det betyder også, at du skal vide præcis, hvad du gør med afhængigheder.

Den binære pakke, der leverer dette værktøj i Debian, inkluderer, udover dpkg, andre relaterede værktøjer såsom dpkg-deb, dpkg-split, dpkg-query, dpkg-divert eller dpkg-triggersammen med hjælpeværktøjer som f.eks. update-alternatives o start-stop-daemonTil pakkeopbygningsopgaver er der en separat pakke. dpkg-dev, som tilføjer kompileringsværktøjer.

Liste over pakker og tilstande med dpkg

En af de første ting, som enhver administrator normalt har brug for, er tjek hvilke pakker der er installeret på systemetMed dpkg kan dette gøres på flere måder:

  • dpkg -lviser en liste over pakker med deres status (installeret, slettet osv.).
  • dpkg -l nombre_paquete: filtrerer kun for den pakke og fortæller dig, om den er installeret eller ej.
  • dpkg --get-selections: viser den komplette liste over pakker og dit nuværende valg.
  • dpkg --get-selections paqueteTjekker hurtigt om en specifik pakke er markeret som installeret, afinstalleret osv.

En mærkelig detalje er det dpkg –get-selections viser også pakker i "afinstallations"-tilstanden.Dette er pakker, der er blevet afinstalleret, men som stadig indeholder konfigurationsfiler eller metadata på systemet. Vi vil senere se, hvordan dette afspejles forskelligt, når der forespørges med APT.

Installer, fjern og ryd pakker med dpkg

For at arbejde direkte med en downloadet .deb-fil, leverer dpkg meget klare kommandoer til Installer og afinstaller specifikke pakker uden at gå gennem arkiver:

  • dpkg -i paquete.deb: installer den angivne pakke (install).
  • dpkg -r nombre_paquetefjerner pakken, men beholder dens konfigurationsfiler (fjern).
  • dpkg -P nombre_paqueteudfører en fuldstændig rydning, og sletter også tilhørende konfigurationsfiler (rydning).

Hvornår er det brugt -P-indstillingen i stedet for -r Både binære filer og konfigurationsfiler renses, hvilket er meget nyttigt, hvis du vil efterlade systemet, som om du aldrig havde installeret det pågældende program. Hvad dpkg ikke vil gøre, gentager vi, er Fjern automatisk afhængigheder, der kun var installeret for den pakkeDu bliver nødt til at klare det selv eller stole på APT.

Se oplysninger om og indhold af .deb-pakker

En anden interessant funktion er muligheden for at undersøge hvad en .deb-pakke indeholder, eller hvilke metadata den inkludererDet er her, nytten kommer i spil. dpkg-deb, inkluderet i selve dpkg-pakken:

  • dpkg-deb -I paquete.debviser detaljerede pakkeoplysninger (navn, version, afhængigheder, vedligeholder osv.).
  • dpkg-deb --contents paquete.deb: viser alle de filer, der ville blive installeret på systemet, når .deb-filen installeres.

Disse muligheder er meget praktiske, når du har brug for det gransk præcis, hvad en pakke vil gøre i dit system eller når du fejlfinder problemer med stier og filer installeret af en specifik .deb.

APT: laget på højt niveau over dpkg

APT (Advanced Package Tool) blev bygget oven på dpkg, som er en samling af biblioteker og værktøjer, der tilføjer afhængighedsopløsning og arkivstyringI stedet for at kommunikere direkte med .deb-filer, interagerer de fleste brugere med dette lag, som igen kalder dpkg til lavniveauoperationer.

  Hvad er DupeGuru. Anvendelser, funktioner, meninger, priser

APT skrives stort set som Et C++-bibliotek, der tilbyder funktioner til at manipulere databasen med pakker, versioner, oprindelser og relationer.Adskillige kommandolinjegrænseflader er afhængige af dette bibliotek: apt-get, apt-cache, apt og også eksterne værktøjer som f.eks. aptitude eller grafiske grænseflader af Synaptic-typen.

I alle nuværende versioner af Debian, pakken apt har "vigtig" prioritet, hvilket betyder, at Det er en del af enhver grundlæggende systeminstallationOg selvom dpkg stadig er kernen, er "pakkehåndteringen" til daglig brug for den gennemsnitlige bruger APT, som også Det sameksisterer med andre formater såsom Flatpak på mange moderne skriveborde.

En af APT's mest kraftfulde funktioner er, at organiserer installation og afinstallation af pakker i en optimal rækkefølgeFør dpkg startes, udfører den en topologisk sortering af pakkelisten for at minimere konflikter, og kun i vanskelige tilfælde tyr den til at tvinge interne dpkg-handlinger med indstillinger. --force hvis du ikke kan finde et sikkert alternativ.

Arkiver og sources.list-filen

APT arbejder altid fra softwarelagre deklareret i konfigurationsfilerHovedfilen er /etc/apt/sources.listDet er her, de officielle Debian- eller Ubuntu-pakkekilder er defineret, og yderligere tredjepartsarkiver kan tilføjes. Hvis du har brug for det. opret dit eget softwarelager Dette vil være nyttigt for dig at forstå, hvordan du målretter APT mod en brugerdefineret kilde.

Ud over hovedfilen er det almindeligt at have ekstra filer under /etc/apt/sources.list.d/ for specifikke arkiver. Disse punkter kan henvise til lokale mapper eller fysiske medier (såsom en cd/dvd) samt eksterne servere, der er tilgængelige via HTTP, HTTPS eller FTP.

APT vedligeholder også en lokal cache med information om alle pakker, der er tilgængelige i disse arkiverDen opbevares hovedsageligt under /var/lib/apt/ og den opdateres ved hjælp af den velkendte kommando apt update o apt-get update.

For nem redigering af skrifttyper inkluderer selve pakken kommandoen apt edit-sources, som åbner hovedfilen med din standard terminalteksteditor sources.list eller den fil, du angiver. Hvis du ikke har konfigureret en editor, vil den bede dig om at vælge en (nano, vim, neovim osv.), og fra da af vil den altid bruge den.

Pakkeafhængighed og tilstandsstyring

Den store forskel i forhold til dpkg er, at APT Den håndterer automatisk løsning og download af afhængigheder.Når du anmoder om at installere en pakke, beregner den, hvilke andre pakker der er nødvendige, hvilke versioner der er kompatible, og hvilke konflikter der kan opstå, og kalder først derefter dpkg for at implementere ændringerne. Til diagnosticerings- og fejlfindingsopgaver kan du se, hvordan liste afhængigheder af en pakke og undgå at ødelægge systemet, når du installerer noget.

APT vedligeholder også en ekstra fil, /var/lib/apt/extended_stateshvor den registrerer, om en pakke blev eksplicit installeret af brugeren eller som en afhængighed af en anden. Disse oplysninger er vigtige for funktioner som f.eks. apt autoremove så de kan finde ud af, hvilke pakker der er kandidater til at blive slettet, fordi de er "forældreløse".

Med hensyn til staterne er der en interessant nuance: APT, når den bruges apt list --installed, Spring pakker over, der er markeret som "afinstallation" (dem der blev afinstalleret, men som bevarer deres konfiguration). Disse vises i outputtet fra apt list såsom "restkonfiguration", mens dpkg --get-selections Ja, den viser dem direkte. Hvis en liste ikke matcher, anbefales det at gennemgå de oprindelige output og filtrere med grep at analysere disse grænsetilfælde.

Grundlæggende apt-kommandoer til daglig brug

Med ankomsten af ​​den moderne kommando aptDebian og Ubuntu leverer en mere brugervenlig grænseflade til almindelige pakkehåndteringsopgaversamlende funktioner, der tidligere var opdelt mellem apt-get y apt-cacheSelvom den bruger de samme biblioteker internt, er dens syntaks mere praktisk, og dens output er mere læsbart; desuden sameksisterer den med andre formater på skrivebordet, såsom Administrer AppImage i Linux.

filen /etc/apt/sources.list som vi nævnte tidligere koncentrater som standard Information om alle arkiver brugt af apti modsætning til værktøjer som yum som typisk håndterer flere konfigurationsfiler. Dette forenkler den indledende opsætning betydeligt for mindre erfarne brugere.

Opdater information om arkivet

Før installation af noget, skal APT have den opdaterede liste over repositories-pakker For at finde ud af hvilke versioner der er tilgængelige, brug:

  • apt update: downloader pakkeindekserne igen fra alle konfigurerede arkiver.

Forskellen med det gamle apt-get update er, at apt viser meget nyttige yderligere oplysninger, såsom antallet af pakker, der kan opdateres, og en meddelelse, der foreslår at køre apt list --upgradable at se dem i detaljer.

Søg efter pakker i arkiverne

For at finde et program eller bibliotek blandt de tilgængelige, kan vi brug APT's indbyggede søgningTraditionelt blev dette gjort med apt-cache searchmen kommandoen apt forenkle syntaksen:

  • apt search nombre o apt-cache search nombreDe søger i den downloadede pakkedatabase efter den angivne tekst.

Sådan her er det simpelt se hvilken pakke der svarer til en specifik applikation (for eksempel, søg efter "gimp", "vlc" eller "libreoffice") og tjek, om det er tilgængeligt for din version af distributionen.

Installer og afinstaller pakker med apt

Den mest almindelige handling, du udfører med APT, er installere og fjerne software fra arkiverSyntaksen her er meget ligetil:

  • apt install paqueteinstallerer den anmodede pakke og alt den behøver som en afhængighed.
  • apt remove paqueteafinstallerer pakken, men beholder dens konfigurationsfiler.
  • apt remove --purge paquete o apt purge paquetefjerner pakken og dens systemkonfigurationsfiler.
  Sådan downloades og installeres markører til Windows 10

Når den kun bruges remove, "Rester" kan forblive i form af konfigurationsmapper eller konfigurationsfilerDette er normalt, så hvis du geninstallerer appen, bevarer den dine indstillinger. Hvis du ønsker en fuldstændig fjernelse, er sletningsmuligheden den rigtige.

Ryd op i afdelinger og fjern resterende emballager

Efter installation og afinstallation af programmer over tid, ophobes de Pakker, der blev installeret som afhængigheder af andre pakker, men som ikke længere er nødvendigeFor at frigøre plads og holde systemet rent tilbyder APT:

  • apt autoremovefjerner automatisk installerede afhængigheder, der ikke længere kræves af nogen aktuelt installeret pakke.

Denne ordre er især nyttig, da periodisk vedligeholdelsesforanstaltningfordi det fjerner gamle biblioteker og filer, der kun bruger plads uden at bidrage med noget til det nuværende system.

Opdater installerede pakker med apt

Når repository-indekserne er opdaterede, er næste trin Anvend tilgængelige opdateringer til installerede pakkerAPT skelner mellem to opdateringsniveauer:

  • apt upgradeopdaterer installerede pakker til deres nyeste versioner, så længe de ikke kræver drastisk installation eller fjernelse af yderligere pakker.
  • apt full-upgradeudfører en mere aggressiv opdatering, der giver dig mulighed for at installere eller fjerne pakker, hvis det er nødvendigt for at fuldføre processen (svarende til den gamle apt-get dist-upgrade).

Det er almindeligt at løbe først apt update efterfulgt af apt upgrade som en del af rutinemæssig vedligeholdelse og reserve full-upgrade ved større versionsændringer eller når kernen og vigtige komponenter opdateres.

Andre nyttige kommandoer fra apt-pakken

Udover de mest populære ordrer inkluderer APT Nogle ekstra kommandoer, der gør livet meget lettere:

  • apt show paqueteviser detaljerede oplysninger om en pakke (beskrivelse, version, afhængigheder, kildekode-arkiv osv.) med et ordnet output og ingen irrelevante data.
  • apt list: liste pakker i henhold til forskellige filtre; med --installed viser den installerede og med --upgradable dem, der har en tilgængelig opdatering.
  • apt edit-sourcesÅbner APT-kildefilen for at ændre arkiverne.

Alt dette gør apt er en slags "schweizerkniv" inden for pakkehåndtering, der dækker de fleste af de opgaver, som en gennemsnitlig bruger udfører dagligt uden at skulle huske et enormt batteri af underkommandoer.

Apt-get og aptitude: andre klassiske APT-brugerflader

Selvom kommandoen apt har vundet fremtrædende plads i de senere år, apt-get og aptitude er fortsat yderst relevante værktøjer i Debians økosystem. Hver af dem har sin plads, og der er overbevisende grunde til at vide, i hvilken kontekst det er passende at bruge dem.

Historisk set apt-get var den første kommandolinjegrænseflade til APTDet har været til stede siden slutningen af ​​90'erne og er omtalt i utallige scripts og dokumentation, og det blev designet til at tilbyde en stabil og forudsigelig brugerflade, ideel til automatisering og ikke-interaktive opgaver.

For sin del, aptitude blev født som et smartere og mere bekvemt alternativ for brugere, der foretrækker et interaktivt miljøDen tilbyder både en script-kompatibel CLI-tilstand og en teksttilstandsgrænseflade (ncurses) med menuer, filtre og organiserede pakkevisninger.

Typiske apt-get-funktioner og -kommandoer

med apt-get du kan udføre stort set de samme opgaver som med aptDen har dog en noget mere detaljeret syntaks og et mindre brugervenligt output. Dens mest almindeligt anvendte kommandoer er:

  • apt-get updateopdaterer arkivets indekser.
  • apt-get upgradeopdaterer installerede pakker uden at foretage alt for påtrængende ændringer.
  • apt-get dist-upgrade: svarende til apt full-upgrade moderne, så du kan installere og fjerne pakker for at fuldføre en kompleks opgradering.
  • apt-get install paqueteinstallerer en pakke fra arkiverne ved at løse afhængigheder.
  • apt-get remove paquete y apt-get purge paqueteDe fjerner pakker, med eller uden deres konfigurationsfiler.

En vigtig fordel ved apt-get er, at Dens opførsel forbliver ekstremt stabil mellem versionerAf denne grund anbefaler Debian-udviklerne fortsæt med at bruge det i scripts og automatiseringerfordi apt Den er mere slutbrugerorienteret og kan ændre outputdetaljer eller standardværdier over tid.

Aptitude: ncurses-grænseflade og avanceret afhængighedsopløsning

I modsætning til apt og apt-get, aptitude bidrager en meget komplet teksttilstandsgrænseflade som startes blot ved at køre sudo aptitude Uden argumenter. Fra den skærm kan du:

  • Gennemse efter pakkekategorier (installeret, tilgængelig, forældet osv.).
  • Søg og filtrer pakker ved hjælp af forskellige kriterier (navn, beskrivelse, status).
  • Vælg flere pakker, der skal installeres, opdateres eller fjernes, og anvend alle ændringer på én gang.

Dens største tekniske styrke ligger i afhængighedsopløsningssystem baseret på scorer og alternativerNår der er en kompleks konflikt, tilbyder aptitude normalt flere løsninger (for eksempel at afinstallere en pakke, beholde en ældre version eller installere yderligere) og giver brugeren mulighed for at markere, hvilke dele af forslaget de foretrækker at beholde eller kassere i det næste forsøg på løsning.

Fra et kommandolinjeperspektiv, aptitude Den understøtter også kommandoer som:

  • aptitude update: for at opdatere pakkelisten.
  • aptitude install paquete y aptitude remove paquete: installer og fjern pakker på en måde svarende til apt-get.
  • aptitude full-upgradeudfør en komplet opdatering med sin egen afhængighedsløsningslogik.
  Ret Adobe Save For Web-fejl

Desuden egnethed Den registrerer i detaljer, hvilke pakker der blev installeret manuelt, og hvilke der blev installeret som afhængigheder.og har muligheder for at fryse versioner, markere pakker for at forhindre opdateringer osv. Nogle af disse funktioner kan replikeres i dag ved hjælp af apt-markImidlertid værdsættes evner stadig højt af administratorer, der har brugt dem i årevis.

Vigtige forskelle mellem dpkg, APT, apt-get, apt og aptitude

Efter at have set på hvert værktøj separat, er det nyttigt at tage et gruppebillede for at forstå. Hvad er præcis forskellene mellem dem, og hvornår er det passende at bruge hver enkelt?Vi kan opsummere det i tre niveauer: lav, mellem og høj.

På det mest grundlæggende niveau er der dpkg, som virker direkte på lokale .deb-pakkerDen løser ikke afhængigheder eller kommunikerer med arkiver; den installerer, afinstallerer eller viser blot oplysninger om en bestemt pakke. Den sammenlignes ofte med RPM i Red Hat-verdenen, da de udfører lignende funktioner i deres respektive distributionsfamilier.

På mellemniveau/højt niveau har vi APT som et pakkehåndteringssystem med arkiver, informationscache og automatisk afhængighedsopløsningDet giver logikken for, hvad der er installeret og hvorfra, hvilken version der er bedst osv. I Red Hat-verdenen ville parallelisme findes i værktøjer som f.eks. YUM eller DNF kører på RPM.

Ovenstående lejligheder er dens forskellige frontends:

  • apt-getDen klassiske, robuste og stabile brugerflade, der er stærkt orienteret mod scripts og automatisering.
  • apt: den moderne slutbrugergrænseflade, som konsoliderer apt-get og apt-cache funktioner og tilbyder et klarere output.
  • aptitudeen pakkehåndtering på højt niveau med valgfrie TUI-ncurses og et særligt sofistikeret system til løsning af afhængigheder.

Hvis vi fokuserer på APT versus DPKG, er den grundlæggende forskel, at APT kan hente pakker fra eksterne arkiver, administrere flere kilder og håndtere alle afhængigheder., hvorimod DPKG kun installerer og fjerner pakker, som du sender til den som en lokal fil.

Hvis vi sammenligner apt og apt-get, tilbyder begge meget lignende funktioner til installation, opdatering eller fjernelse af pakkerMen apt forbedrer præsentationen af ​​information, inkorporerer statuslinjer under installationer og kombinerer ting, der tidligere blev gjort med, i én kommando. apt-get y apt-cacheI modsætning hertil giver apt-get et mere konservativt og stabilt kommandolinje-API over tid.

Med hensyn til evner er dens vigtigste kendetegn ncurses-grænsefladen og avanceret håndtering af afhængighedskonflikterMens apt og apt-get forsøger at finde den "bedste" løsning på én gang, tillader aptitude brugeren at deltage interaktivt i processen og beslutte, hvilke pakker der skal beholdes, hvilke der skal degraderes, eller hvilke der skal fjernes.

Hvornår skal man bruge dpkg, apt, apt-get eller aptitude på Debian-systemer

Når forskellene er tydelige, er spørgsmålet, som mange stiller sig hvilken kommando der skal bruges i hver specifik situationDer er ikke noget enkelt korrekt svar, men der er ret fornuftige mønstre, som mange administratorer og avancerede brugere følger.

Til daglig brug på et desktop- eller letvægtsserversystem er den mest bekvemme løsning normalt brug kommando apt til næsten altOpdater arkiver, søg efter applikationer, installer og afinstaller pakker, tjek hvad der kan opdateres, og frigiv regelmæssige opdateringer.

Når vi beskæftiger os med planlægning af installations-, implementerings- eller vedligeholdelsesscriptsDen officielle dokumentation anbefaler selv at fortsætte med at stole på apt-get (y apt-cache (for forespørgsler), da dens outputadfærd og indstillinger er meget mere stabile mellem versioner end dem af apthvilket kan ændre små detaljer, fordi det er designet til mennesker og ikke så meget til maskiner.

dpkg er primært reserveret til Lavniveauoperationer med manuelt downloadede .deb-pakkerDet er nyttigt til inspektion af indhold eller i tilfælde, hvor du har brug for meget fin kontrol og ikke ønsker, at APT blander sig ved at løse afhængigheder for dig. Det er også meget nyttigt til sofistikerede pakkescripts eller til fejlfinding af specifikke problemer med .deb-filer.

For sin del skinner evner normalt, når Du står over for virkelig komplicerede afhængighedskonflikter i ældre eller meget tilpassede Debian-miljøer. Dens løsningsmotor tilbyder normalt flere alternativer, og dens ncurses-grænseflade er meget praktisk til at undersøge, hvilke ændringer der vil blive foretaget, før en større operation accepteres.

I sidste ende eksisterer hele dette økosystem af værktøjer fordi Hvert niveau løser et forskelligt problem inden for pakkehåndtering i Debiandpkg som lavniveau-udstyret, APT som hjernen, der bestemmer, hvad der skal installeres og hvorfra, og dens forskellige brugerflader (apt, apt-get, aptitude) som synlige ansigter tilpasset forskellige brugerprofiler, fra den mest nybegynder til administratoren, der lever klistret til terminalen.

Installer deb- og rpm-pakker uden kommandoer
relateret artikel:
Komplet guide til installation af DEB- og RPM-pakker uden komplikationer