- dpkg je nizkonivojski upravitelj paketov, ki namešča in odstranjuje lokalne datoteke .deb brez razreševanja odvisnosti.
- APT deluje kot visokonivojska plast nad dpkg, upravlja repozitorije, predpomnilnik in samodejno razreševanje odvisnosti.
- apt, apt-get in aptitude so različni vmesniki APT, zasnovani za različne namene: končnega uporabnika, skriptanje in napredno upravljanje.
- Izbira pravega orodja za kontekst poenostavi administracijo in zmanjša napake v Debianu in izpeljanih sistemih.

V distribucijah, ki temeljijo na Debianu (kot so Ubuntu, Linux Mint ali Devuan), se zelo pogosto pojavi vprašanje o Kakšna je razlika med uporabo dpkg, apt, apt-get ali celo aptitude?Na prvi pogled se zdi, da vsi počnejo isto stvar: nameščajo, posodabljajo in brišejo programe. Vendar pa ima vsaka drugačno vlogo v ekosistemu programske opreme in razumevanje tega vam bo prihranilo veliko glavobolov.
V tem članku bomo mirno razložili, kako deluje dpkg kot upravitelj nizke ravniKaj prinaša APT kot zgornja plast in kako se razlikujeta? apt, apt-get in aptitudein katere osnovne ukaze bi morali obvladati v vsakem primeru. Ideja je, da boste do konca branja imeli jasno razumevanje. kdaj uporabiti vsako orodje in zakajtako pri vsakodnevnih opravilih kot pri bolj zahtevnih opravilih ali skriptih.
Temelj vsega: dpkg, nizkonivojski upravljalnik paketov
Steber, na katerem temelji celoten sistem paketov v Debianu, je dpkg, izvorni upravitelj paketov, ki deluje neposredno z datotekami .debBil je prvi upravljalnik paketov za Debian in do danes ostaja standard za vse izpeljane distribucije. Če prihajate iz RPM-ja, lahko pakete pretvorite z Pretvori pakete z Alienom za ustvarjanje datotek .deb, ki jih je mogoče namestiti z dpkg.
Za razliko od orodij visoke ravni se dpkg ukvarja le z Namestitev, odstranitev in poizvedba lokalnih .deb paketovNe obvladuje oddaljenih repozitorijev, ne prenaša paketov z interneta in ne razrešuje odvisnosti sam. Če namestite nekaj z dpkg in manjka knjižnica, boste morali to popraviti ročno.
Zaradi tega je dpkg idealno orodje za upravljajte pakete na zelo natančen in nadzorovan način (na primer, ko ročno prenesete datoteko .deb ali ko gradite lastne pakete), vendar to pomeni tudi, da morate natančno vedeti, kaj počnete z odvisnostmi.
Binarni paket, ki ponuja ta pripomoček v Debianu, poleg dpkg vključuje tudi druga sorodna orodja, kot so dpkg-deb, dpkg-split, dpkg-query, dpkg-divert ali dpkg-trigger, skupaj s pomožnimi pripomočki, kot so update-alternatives o start-stop-daemonZa naloge gradnje paketov obstaja ločen paket. dpkg-dev, ki dodaja orodja za prevajanje.
Seznam paketov in stanj z dpkg
Ena prvih stvari, ki jih običajno potrebuje vsak administrator, je preverite, kateri paketi so nameščeni v sistemuZ dpkg lahko to storimo na več načinov:
dpkg -l: prikaže seznam paketov z njihovim stanjem (nameščeni, izbrisani itd.).dpkg -l nombre_paquete: filtrira samo za ta paket in vam pove, ali je nameščen ali ne.dpkg --get-selections: prikaže celoten seznam paketov in vašo trenutno izbiro.dpkg --get-selections paqueteHitro preveri, ali je določen paket označen kot nameščen, odstranjen itd.
Zanimiva podrobnost je, da dpkg –get-selections izpiše tudi pakete v stanju »deinstall«To so paketi, ki so bili odstranjeni, vendar še vedno ohranjajo konfiguracijske datoteke ali metapodatke v sistemu. Kasneje bomo videli, kako se to drugače odraža pri poizvedovanju z APT.
Namestitev, odstranitev in čiščenje paketov z dpkg
Za neposredno delo s preneseno datoteko .deb dpkg ponuja zelo jasne ukaze za Namestite in odstranite določene pakete brez pregledovanja repozitorijev:
dpkg -i paquete.deb: namesti določeni paket (install).dpkg -r nombre_paquete: odstrani paket, vendar pusti njegove konfiguracijske datoteke (odstrani).dpkg -P nombre_paquete: izvede popolno čiščenje, vključno z brisanjem povezanih konfiguracijskih datotek (purge).
Kdaj se uporablja možnost -P namesto -r Očistijo se tako binarne datoteke kot konfiguracijske datoteke, kar je zelo uporabno, če želite, da sistem deluje, kot da te aplikacije sploh ne bi namestili. Česar dpkg ne bo storil, ponavljamo, je Samodejno odstrani odvisnosti, ki so bile nameščene samo za ta paketTo boste morali urediti sami ali pa se zanesti na APT.
Ogled informacij in vsebine paketov .deb
Druga zanimiva lastnost je možnost preverite, kaj vsebuje paket .deb ali katere metapodatke vključujeTu pride v poštev uporabnost. dpkg-deb, vključen v sam paket dpkg:
dpkg-deb -I paquete.deb: prikaže podrobne informacije o paketu (ime, različica, odvisnosti, vzdrževalec itd.).dpkg-deb --contents paquete.deb: našteje vse datoteke, ki bi bile nameščene v sistemu ob namestitvi te datoteke .deb.
Te možnosti so zelo praktične, ko jih potrebujete natančno preverite, kaj bo paket naredil v vašem sistemu ali ko odpravljate težave s potmi in datotekami, ki jih namesti določena datoteka .deb.
APT: visokonivojska plast nad dpkg
APT (Advanced Package Tool) je bil zgrajen na osnovi dpkg, ki je zbirka knjižnic in pripomočkov, ki dodajajo razreševanje odvisnosti in upravljanje repozitorijevNamesto neposredne komunikacije z datotekami .deb večina uporabnikov komunicira s to plastjo, ki nato za nizkonivojske operacije pokliče dpkg.
APT se večinoma zapiše kot Knjižnica C++, ki ponuja funkcije za upravljanje baze podatkov paketov, različic, izvorov in relacij.Več vmesnikov ukazne vrstice se zanaša na to knjižnico: apt-get, apt-cache, apt in tudi zunanja orodja, kot so aptitude ali grafične vmesnike tipa Synaptic.
V vseh trenutnih različicah Debiana je paket apt ima "pomembno" prioriteto, kar pomeni, da Je del vsake osnovne namestitve sistemaIn čeprav dpkg ostaja jedro, je za povprečnega uporabnika "upravljalnik paketov" za vsakodnevno uporabo APT, ki prav tako Soobstaja z drugimi formati, kot je Flatpak na mnogih sodobnih mizah.
Ena najmočnejših lastnosti APT je, da organizira namestitev in odstranitev paketov v optimalnem vrstnem reduPred zagonom dpkg izvede topološko razvrščanje seznama paketov, da zmanjša konflikte, in le v težkih primerih se zateče k vsiljevanju notranjih dejanj dpkg z možnostmi. --force če ne najdete varne alternative.
Repozitoriji in datoteka sources.list
APT vedno deluje od repozitoriji programske opreme, deklarirani v konfiguracijskih datotekahGlavna datoteka je /etc/apt/sources.listTukaj so definirane uradne izvorne kode paketov Debian ali Ubuntu, lahko pa se dodajo tudi dodatni repozitoriji tretjih oseb. Če potrebujete ustvarite lastno skladišče programske opreme To vam bo koristno za razumevanje, kako ciljati APT na vir po meri.
Poleg glavne datoteke je običajno imeti dodatne datoteke pod /etc/apt/sources.list.d/ za določena skladišča. Te točke se lahko nanašajo na lokalne imenike ali fizične medije (kot je CD/DVD) ter oddaljene strežnike, do katerih je mogoče dostopati prek HTTP, HTTPS ali FTP.
APT vzdržuje tudi lokalni predpomnilnik informacij o vseh paketih, ki so na voljo v teh repozitorijihShranjuje se predvsem pod /var/lib/apt/ in se posodobi z znanim ukazom apt update o apt-get update.
Za priročno urejanje pisav paket vključuje ukaz apt edit-sources, ki odpre glavno datoteko z vašim privzetim urejevalnikom besedil v terminalu sources.list ali datoteko, ki jo določite. Če nimate konfiguriranega urejevalnika, vas bo program pozval, da izberete enega (nano, vim, neovim itd.) in od takrat naprej bo vedno uporabljal tega.
Upravljanje odvisnosti paketov in stanja
Velika razlika v primerjavi z dpkg je v tem, da APT Samodejno obravnava razreševanje in prenos odvisnosti.Ko zahtevate namestitev paketa, program izračuna, kateri drugi paketi so potrebni, katere različice so združljive in kakšni konflikti lahko nastanejo, nato pa pokliče dpkg za uvedbo sprememb. Za diagnostična opravila in odpravljanje napak si lahko ogledate, kako seznam odvisnosti paketa in se izognite okvari sistema pri nameščanju nečesa.
APT vzdržuje tudi dodatno datoteko, /var/lib/apt/extended_stateskjer beleži, ali je bil paket izrecno namestil uporabnik ali kot odvisnost od drugega. Ta informacija je ključna za funkcije, kot so apt autoremove da lahko ugotovijo, kateri paketi so kandidati za izbris, ker so "osirote".
Glede držav obstaja zanimiv odtenek: APT, ko se uporablja apt list --installed, Preskoči pakete, označene kot »odstrani« (tiste, ki so bile odstranjene, vendar so ohranile svojo konfiguracijo). Te se pojavijo v izpisu programa apt list kot na primer »preostala konfiguracija«, medtem ko dpkg --get-selections Da, prikaže jih neposredno. Če se kateri koli seznam ne ujema, je priporočljivo pregledati izvirne izhode in jih filtrirati z grep analizirati te mejne primere.
Osnovni ukazi apt za vsakodnevno uporabo
S prihodom sodobnega poveljstva aptDebian in Ubuntu ponujata uporabniku prijaznejši vmesnik za pogosta opravila upravljanja paketovzdruževanje funkcij, ki so bile prej razdeljene med apt-get y apt-cacheČeprav interno uporablja iste knjižnice, je njegova sintaksa bolj priročna in izhod je bolj berljiv; poleg tega sobiva z drugimi formati na namizju, kot je Upravljanje AppImage v Linuxu.
Datoteka /etc/apt/sources.list ki smo ga prej omenili, se privzeto koncentrira Informacije o vseh repozitorijih, ki jih uporablja apt, za razliko od orodij, kot so yum ki običajno obravnavajo več konfiguracijskih datotek. To močno poenostavi začetno nastavitev za manj izkušene uporabnike.
Posodobi informacije o repozitoriju
Preden karkoli namesti, mora imeti APT posodobljen seznam paketov repozitorijev Če želite ugotoviti, katere različice so na voljo, uporabite:
apt update: ponovno prenese indekse paketov iz vseh konfiguriranih repozitorijev.
Razlika s starim apt-get update je to apt prikaže zelo uporabne dodatne informacije, na primer število paketov, ki jih je mogoče posodobiti, in sporočilo, ki predlaga zagon apt list --upgradable da si jih ogledajo podrobno.
Iskanje paketov v repozitorijih
Da bi med razpoložljivimi programi ali knjižnicami našli želeni, lahko uporabite vgrajeno iskanje APTTradicionalno se je to delalo z apt-cache searchampak ukaz apt poenostavite sintakso:
apt search nombreoapt-cache search nombre: V preneseni zbirki podatkov paketov iščejo določeno besedilo.
Tako je preprosto preverite, kateri paket ustreza določeni aplikaciji (na primer, poiščite »gimp«, »vlc« ali »libreoffice«) in preverite, ali je na voljo za vašo različico distribucije.
Namestitev in odstranitev paketov z apt
Najpogostejša operacija, ki jo boste izvajali z APT, je namestitev in odstranitev programske opreme iz repozitorijevSintaksa je tukaj zelo preprosta:
apt install paquete: namesti zahtevani paket in vse, kar potrebuje, kot odvisnost.apt remove paquete: odstrani paket, vendar ohrani njegove konfiguracijske datoteke.apt remove --purge paqueteoapt purge paquete: odstrani paket in tudi njegove sistemske konfiguracijske datoteke.
Samo ko se uporablja remove, "Ostanki" lahko ostanejo v obliki konfiguracijskih imenikov ali konfiguracijskih datotekTo je normalno, saj če aplikacijo znova namestite, se vaše nastavitve ohranijo. Če želite popolno odstranitev, je možnost »Počisti« prava izbira.
Očistite oddelke in odstranite ostanke paketov
Po nameščanju in odstranjevanju aplikacij se sčasoma kopičijo Paketi, ki so bili nameščeni kot odvisnosti od drugih paketov, vendar niso več potrebniZa sprostitev prostora in ohranjanje čistega sistema APT ponuja:
apt autoremove: odstrani samodejno nameščene odvisnosti, ki jih trenutno nameščeni paketi ne potrebujejo več.
To naročilo je še posebej uporabno, saj redni vzdrževalni ukrepker odstrani stare knjižnice in datoteke, ki samo porabljajo prostor, ne da bi karkoli prispevale k trenutnemu sistemu.
Posodobite nameščene pakete z apt
Ko so indeksi repozitorija posodobljeni, je naslednji korak Uporabite razpoložljive posodobitve za nameščene paketeAPT razlikuje dve ravni posodobitve:
apt upgrade: posodobi nameščene pakete na njihove najnovejše različice, če le-ti ne zahtevajo drastične namestitve ali odstranitve dodatnih paketov.apt full-upgrade: izvede agresivnejšo posodobitev, ki vam omogoča namestitev ali odstranitev paketov, če je potrebno za dokončanje postopka (enakovredno staremuapt-get dist-upgrade).
Običajno je teči prvi apt update sledi apt upgrade kot del rednega vzdrževanja in rezerve full-upgrade za večje spremembe različic ali ko se posodobi jedro in pomembne komponente.
Drugi uporabni ukazi iz paketa apt
Poleg najbolj priljubljenih naročil APT vključuje Nekaj dodatnih ukazov, ki olajšajo življenje:
apt show paquete: prikaže podrobne informacije o paketu (opis, različica, odvisnosti, repozitorij izvorne kode itd.), z urejenim izhodom in brez nepomembnih podatkov.apt list: seznam paketov glede na različne filtre; z--installedprikazuje nameščeno in z--upgradabletisti, ki imajo na voljo posodobitev.apt edit-sources: Odpre izvorno datoteko APT za spreminjanje repozitorijev.
Vse to naredi apt je nekakšen "švicarski nož" za upravljanje paketov, ki pokriva večino nalog, ki jih povprečen uporabnik opravlja dnevno, ne da bi si moral zapomniti ogromno podukazov.
Apt-get in aptitude: drugi klasični vmesniki APT
Čeprav ukaz apt je v zadnjih letih pridobil na veljavi, apt-get in aptitude ostajata zelo pomembni orodji v ekosistemu Debian. Vsak od njih ima svoje mesto in obstajajo tehtni razlogi, da vemo, v kakšnem kontekstu je primerno jih uporabljati.
Zgodovinsko oz. apt-get je bila prvi vmesnik ukazne vrstice za APTPrisoten je bil od poznih devetdesetih let prejšnjega stoletja in predstavljen v neštetih skriptah in dokumentaciji, zasnovan pa je bil tako, da ponuja stabilen in predvidljiv vmesnik, idealen za avtomatizacijo in neinteraktivna opravila.
Na svoji strani aptitude se je rodil kot pametnejša in priročnejša alternativa za uporabnike, ki imajo raje interaktivno okoljePonuja tako s skripti združljiv način CLI kot tudi besedilni vmesnik (ncurses) z meniji, filtri in organiziranimi pogledi paketov.
Tipične funkcije in ukazi apt-get
z apt-get lahko opravljate praktično enaka opravila kot z aptVendar ima nekoliko bolj podrobno sintakso in manj uporabniku prijazen izpis. Njegovi najpogosteje uporabljeni ukazi so:
apt-get update: posodobi indekse repozitorija.apt-get upgrade: posodablja nameščene pakete brez preveč vsiljivih sprememb.apt-get dist-upgrade: enakovrednoapt full-upgradesodoben, ki vam omogoča namestitev in odstranjevanje paketov za dokončanje kompleksne nadgradnje.apt-get install paquete: namesti paket iz repozitorijev z razrešitvijo odvisnosti.apt-get remove paqueteyapt-get purge paqueteOdstranijo pakete, z njihovimi konfiguracijskimi datotekami ali brez njih.
Ključna prednost apt-get je, da Njegovo vedenje ostaja izjemno stabilno med različicamiZaradi tega razvijalci Debiana priporočajo nadaljujte z uporabo v skriptih in avtomatizacijahod takrat apt Bolj je usmerjen na končnega uporabnika in lahko sčasoma spreminja izhodne podrobnosti ali privzete vrednosti.
Aptitude: vmesnik ncurses in napredno razreševanje odvisnosti
Za razliko od apt in apt-get, aptitude prispeva zelo dovršen vmesnik v besedilnem načinu ki se zažene preprosto z zagonom sudo aptitude Brez argumentov. Na tem zaslonu lahko:
- Brskajte po kategorijah paketov (nameščeni, razpoložljivi, zastareli itd.).
- Iskanje in filtriranje paketov z uporabo različnih meril (ime, opis, stanje).
- Izberite več paketov za namestitev, posodobitev ali odstranitev in uporabite vse spremembe hkrati.
Njegova največja tehnična moč je v sistem za reševanje odvisnosti, ki temelji na rezultatih in alternativahKo pride do zapletenega konflikta, aptitude običajno ponudi več rešitev (na primer odstranitev paketa, ohranitev starejše različice ali namestitev dodatnih) in uporabniku omogoči, da označi, katere dele predloga želi obdržati ali zavreči pri naslednjem poskusu rešitve.
Z vidika ukazne vrstice, aptitude Podpira tudi ukaze, kot so:
aptitude update: za posodobitev seznama paketov.aptitude install paqueteyaptitude remove paquete: namešča in odstranjuje pakete na podoben način kot apt-get.aptitude full-upgrade: izvede popolno posodobitev z lastno logiko razreševanja odvisnosti.
Poleg tega, sposobnost Zelo podrobno beleži, kateri paketi so bili nameščeni ročno in kateri kot odvisnosti.in ima možnosti za zamrznitev različic, označevanje paketov za preprečevanje posodobitev itd. Nekatere od teh funkcij je mogoče danes ponoviti z uporabo apt-markVendar pa administratorji, ki ga uporabljajo že leta, še vedno zelo cenijo aptitude.
Ključne razlike med dpkg, APT, apt-get, apt in aptitude
Ko si ogledate vsako orodje posebej, je koristno narediti skupinsko fotografijo, da boste razumeli. Kakšne so točno razlike med njimi in kdaj je primerno uporabiti vsakega od njih?Lahko bi ga povzeli v tri ravni: nizka, srednja in visoka.
Na najosnovnejši ravni obstaja dpkg, ki deluje neposredno na lokalne .deb paketeNe razrešuje odvisnosti ali komunicira z repozitoriji; preprosto namesti, odstrani ali prikaže informacije o določenem paketu. Pogosto ga primerjajo z RPM v svetu Red Hata, saj v svojih družinah porazdelitev izpolnjujejo podobne funkcije.
Na srednji/visoki ravni imamo APT kot sistem za upravljanje paketov z repozitoriji, predpomnjenjem informacij in samodejnim razreševanjem odvisnostiZagotavlja logiko za to, kaj je nameščeno in od kod, katera je najboljša različica itd. V svetu Red Hata bi vzporednost našli v orodjih, kot so YUM ali DNF se izvaja na RPM.
Zgornji APT so njegove različne sprednje strani:
apt-get: klasičen, robusten in stabilen vmesnik, močno usmerjen v skripte in avtomatizacijo.apt: sodoben uporabniški vmesnik, ki združuje funkcije apt-get in apt-cache ter ponuja jasnejši izpis.aptitude: upravljalnik paketov na visoki ravni z izbirnimi TUI ncurses in posebej dovršenim sistemom za razreševanje odvisnosti.
Če se osredotočimo na APT v primerjavi z DPKG, je temeljna razlika v tem, da APT lahko pridobiva pakete iz oddaljenih repozitorijev, upravlja več virov in obravnava vse odvisnosti., medtem ko DPKG namesti in odstrani le pakete, ki mu jih posredujete kot lokalno datoteko.
Če primerjamo apt in apt-get, oba ponujata zelo podobne funkcije za nameščanje, posodabljanje ali odstranjevanje paketovVendar pa apt izboljša predstavitev informacij, med namestitvami vključuje vrstice napredka in združuje v en sam ukaz stvari, ki so bile prej narejene z apt-get y apt-cacheV nasprotju s tem apt-get sčasoma zagotavlja bolj konzervativen in stabilen API ukazne vrstice.
Kar zadeva sposobnost, je njena glavna odlika Vmesnik ncurses in napredno obvladovanje konfliktov odvisnostiMedtem ko apt in apt-get poskušata hkrati najti "najboljšo" rešitev, aptitude uporabniku omogoča interaktivno sodelovanje v procesu in odločanje o tem, katere pakete bo obdržal, katere bo znižal ali katere bo odstranil.
Kdaj uporabiti dpkg, apt, apt-get ali aptitude v sistemih Debian
Ko so razlike jasne, se mnogi ljudje sprašujejo, kateri ukaz uporabiti v posamezni situacijiNi enega samega pravilnega odgovora, obstajajo pa dokaj razumni vzorci, ki jim sledijo številni skrbniki in napredni uporabniki.
Za vsakodnevno uporabo na namiznem računalniku ali lahkem strežniškem sistemu je običajno najprimernejša možnost uporabite ukaz apt za skoraj vse: posodabljanje repozitorijev, iskanje aplikacij, namestitev in odstranitev paketov, preverjanje, kaj je mogoče posodobiti, in izdajanje rednih posodobitev.
Pri obravnavi skripte za načrtovanje namestitve, uvajanja ali vzdrževanjaUradna dokumentacija sama svetuje, da se še naprej zanašate na apt-get (y apt-cache (za poizvedbe), saj so njegovo izhodno vedenje in možnosti med različicami veliko bolj stabilne kot pri aptkar lahko spremeni majhne podrobnosti, ker je zasnovano za ljudi in ne toliko za stroje.
dpkg je primarno rezerviran za nizkonivojske operacije z ročno prenesenimi paketi .debUporaben je za pregledovanje vsebine ali v primerih, ko potrebujete zelo natančen nadzor in ne želite, da se APT vmešava z reševanjem odvisnosti namesto vas. Zelo uporaben je tudi za dovršene skripte za pakiranje ali za odpravljanje težav s specifičnimi datotekami .deb.
S svoje strani pa sposobnost običajno zasije, ko Soočate se z res zapletenimi konflikti odvisnosti v starejših ali zelo prilagojenih okoljih Debian. Njegov mehanizem za ločljivost običajno ponuja več možnosti, vmesnik ncurses pa je zelo priročen za raziskovanje sprememb, ki bodo narejene pred sprejetjem večje operacije.
Navsezadnje celoten ekosistem orodij obstaja zato, ker Vsaka raven rešuje drugačen problem znotraj upravljanja paketov v Debianudpkg kot nizkonivojsko orodje, APT kot možgani, ki odločajo, kaj namestiti in od kod, in njegovi različni vmesniki (apt, apt-get, aptitude) kot vidni obrazi, prilagojeni različnim uporabniškim profilom, od najmanjšega začetnika do skrbnika, ki živi prilepljen na terminal.
Strasten pisec o svetu bajtov in tehnologije nasploh. Rad delim svoje znanje s pisanjem in to je tisto, kar bom počel v tem blogu, saj vam bom pokazal vse najbolj zanimive stvari o pripomočkih, programski opremi, strojni opremi, tehnoloških trendih in še več. Moj cilj je, da vam pomagam krmariti po digitalnem svetu na preprost in zabaven način.