Hopp til innhold

Dpkg

Fra Wikipedia, den frie encyklopedi
Dpkg
Utvikler(e)The Debian Project, Ian Murdock
Utgitt Januar 1994
Nyeste versjon1.21.22 (24. mai 2023)[1]
Kodelagerhttps://git.dpkg.org/git/dpkg/dpkg.git
OperativsystemUnix-liknende
Skrevet iC,[2] C++,[3] Perl[2][3]
TypePakkebehandler
LisensGPLv2[4]
Nettstedwiki.debian.org (en)
www.dpkg.org (en)

dpkg er pakkesystemet i Linuxdistribusjonen Debian og alle dens tallrike derivater.

Selve dpkg er et underliggende verktøy eller en back end. Det benyttes av andre verktøy på høyere nivåer. Advanced Packaging Tool (APT) er en front-end til dpkg.

Første versjon ble lansert i januar 1994. Siste versjon er 1.21.22 som ble lansert 24. mai 2024.

Debianpakken dpkg-dev inkluderer verktøyene som kreves for å lage .deb-pakker og beskrives under:

Det første pakkesystemet for Linux var StopAlop. Det ble laget av Greg Wettstein ved Roger Maris Cancer Center i Fargo, Nord-Dakota. Det ga inspirasjon til skapelsen av dpkg.[5][6][7]

dpkg ble laget av Ian Murdock (1973–2015) i januar 1994 som et skallskript.[8]

Senere i 1994 ble det omskrevet av Matt Welsh, Carl Streeter og Ian Murdock i programmeringsspråket Perl.[9]

Enda senere i 1994 ble mesteparten omskrevet i programmeringsspråket C av Ian Jackson.[10][11]

Etymologi

[rediger | rediger kilde]

dpkg var opprinnelig en forkortelse for Debian Package, men kan også stå for filetternavnet .deb og for Debian Policy Manual.

Utbredelse

[rediger | rediger kilde]

Det finnes mange pakkesystemer for Linux. Dkpg er et av de mest utbredte. Det benyttes av distribusjonen Debian og dens tallrike derivater.

Pakkesystemet dpkg brukes blant annet av distribusjonene Ubuntu, Linux Mint, Tails, Proxmox, Kali Linux, Pardus og Astra Linux. Nettstedet DistroWatch oppramset 14. oktober 2024 hele 420 nåværende og tidligere Linuxdistribusjoner som bruker eller har brukt pakkesystemet dpkg.[12]

Et annet utbredt pakkesystem er RPM Package Manager (RPM). Det ble utviklet av Red Hat for Red Hat Linux, og benyttes idag av Fedora, Red Hat Enterprise Linux, og deriverte distribusjoner som SUSE Linux og OpenMandriva Lx. Nettstedet DistroWatch oppramset 14. oktober 2024 hele 213 nåværende og tidligere Linuxdistribusjoner som bruker eller har brukt pakkesystemet RPM.[13]

Liksom dpkg har sin opprinnelse i StopAlop, slik er RMP en videreutvikling av pms. Og slik dpkg har APT som front-end, slik er DNF front-end til RMP.

Tilleggsprogrammer

[rediger | rediger kilde]

Flere tilleggsprogrammer er nødvendige for å gi dpkg kjøretidsfunksjonalitet. Av disse kan nevnes dpkg-statoverride, dpkg-divert og update-alternatives.[14]

Det omfatter også programmer som start-stop-daemon [15] og install-info. Det siste beholdes mest for bakoverkompatibilitet. Det utvikles og distribueres separat i dag.[16][17]

Å lage .deb-filer

[rediger | rediger kilde]

.deb-filer bygges vanligvis ved å kalle dpkg-buildpackage. dpkg-buildpackage leser flere filer for å finne ut hvordan pakken skal bygges. Disse filene finnes i debian underkatalogen av kildetreet.

Det er fire filer som kreves, copyright-filen inneholder lisensbetingelsene. control-filen inneholder pakkenavnet, -beskrivelse, og avhengigheter. rules-filen er en Makefile som har regler for å bygge debianpakken. Programmer fra debhelper programpakken blir ofte kalt i 'rules-filen. I tillegg inkluderer noen pakker Makefile-linjer fra CDBS, for å forenkle rules-filen. Til slutt er changelog-filen, som burde inneholde en logg over forandringene. Det fleste pakkene inkluderer også andre filer for å gjøre forskjellige ting.

Så snart en debianpakke blir bygget, kan den bli sjekket for vanlige problemer ved hjelp av et lintian verktøy.

dpkg kompileringsverktøy

[rediger | rediger kilde]

Debian har en rekke verktøy som kalles for å bygge en pakke. De er følgende:

  • dpkg-source pakker og pakker ut kildekode filene fra en debianpakke.
  • dpkg-deb pakker og pakker ut binærpakker.
  • dpkg-gencontrol leser informasjon fra en ikke utpakket debian-trekilde og generer en binær pakke-kontroll pakke, som lager en innføring i Debian/files.
  • dpkg-shlibdeps kalkulerer avhengighetene og kjører med hensyn til bibliotekene.
  • dpkg-genchanges leser informasjon fra et utpakket Debian-trekilde som med en gang den er laget, lager en kontrollfil. (.changes).
  • dpkg-buildpackage er et kontrollskript som kan brukes til å konstruere pakken automatisk.
  • dpkg-distaddfile legger en fils input til debian/files.
  • dpkg-parsechangelog leser changes-filen (endringsloggen) til et utpakket Debian-trekilde og lager passelig forberedt utdata med informasjon for disse endringene.

ipkg er en avart av dpkg. Det er et pakkesystem for Linux-installasjoner med begrenset harddiskplass.

wpkg er en avart som ble utviklet for Microsoft Windows. Den utviklet senere funksjonalitet som lignet på APT, fikk forbedret håndtering av programvarelageret og distribuering og ble portert til Linux og Unix-liknende systemer, deriblant Cygwin, Mingw32, macOS, OpenSolaris og FreeBSD.[18][19]

Det beholder kompatibilitet med filformatet .deb[20] og er utstyrt med den eksekverbare filen wpkg.exe. Versjon 1.0 ble lansert 17. september 2015. Det er ikke kommet senere versjoner.[18]

Referanser

[rediger | rediger kilde]
  1. ^ "Release 1.21.22"; forfatternavn: Guillem Jover; verkets språk: engelsk; utgivelsesdato: 3. september 2023; besøksdato: 3. september 2023.
  2. ^ a b https://www.openhub.net/p/dpkg/analyses/latest/languages_summary.
  3. ^ a b https://alioth.debian.org/projects/dpkg.
  4. ^ https://git.dpkg.org/cgit/dpkg/dpkg.git/tree/COPYING?h=1.19.6; besøksdato: 29. april 2019.
  5. ^ Linux in the Trenches. Linux Journal. 
  6. ^ The dpkg shell implementation
  7. ^ «StopAlop 0.6 packaging/Installation facility available». 
  8. ^ «dpkg Shell implementation». Dpkg Developers. Besøkt 30. august 2017. 
  9. ^ «dpkg perl implementation». git (Dpkg Developers). Besøkt 9. mars 2015. 
  10. ^ «dpkg C implementation». git (Dpkg Developers). Besøkt 9. mars 2015. 
  11. ^ Akkerman, Wichert. «dpkg history». Arkivert fra originalen 7. februar 2015. Besøkt 29. august 2017. 
  12. ^ Search Distributions DEB, DistroWatch, 14. oktober 2024
  13. ^ Search Distributions RPM, DistroWatch, 14. oktober 2024
  14. ^ baeldung: The update-alternatives Command in Linux, baeldung.com, 24. juli 2024
  15. ^ start-stop-daemon (8), man7.org, Linux manual page
  16. ^ install-info (6.5.0.dfsg.1-4+b1), packages.debian.org
  17. ^ INSTALL-INFO (1), unix.com [debian man page]
  18. ^ a b «A Build System with wpkg». Alexis Wilke. 6. november 2013. Besøkt 28. august 2013. 
  19. ^ «wpkg --repository ...». Alexis Wilke. 5. desember 2012. Besøkt 28. august 2013. 
  20. ^ «A Unix Packager For MS-Windows Systems». Alexis Wilke. Besøkt 5. november 2018. 

Eksterne lenker

[rediger | rediger kilde]
Autoritetsdata