Product SiteDocumentation Site

Kapitel 5. Packeteringssystem: Verktyg och Fundamentala Principer

5.1. Struktur av ett binär paket
5.2. Pakets Metainformation
5.2.1. Beskrivning: control filen
5.2.2. Konfiguration Scripts
5.2.3. Checksums, List of Configuration Files, et al.
5.3. Ett Källpakets struktur
5.3.1. Format
5.3.2. Användning inom Debian
5.4. Manipulera paket med dpkg
5.4.1. Installerar paket
5.4.2. Borttagning av Paket
5.4.3. Undersöka dpkg's databas och inspektera .deb filer
5.4.4. dpkg's loggfil
5.4.5. Support för Multi-Instruktionsuppsättning
5.5. Samexistens med andra paketeringsingssystem
I egenskap av en Debian systemadministratör kommer du regelbundet hantera paket med filändelsen .deb, efterssom de innehåller sammanhängande funktionella enheter (applikationer, dokumentation och så vidare) vars installation och underhållning möjliggörs tack vare paketen. Det är därför en bra idè att känna till vad de är och hur de skall användas.
Detta kapitel beskriver strukturen och innehållet av "binära-" och "källkods-paket". Det förstnämnda är filer som kan användas direkt av dpkg, den sistnämnda innehåller källkoden så väl som instruktioner hur dess binära paket skall byggas.

5.1. Struktur av ett binär paket

Debians format på paket är designad på så vis att dess innehåll kan bli extraherad på samtliga Unixbaserade system som innehar de klassiska kommandona ar, tar och xz eller ibland gzip eller bzip2. Denna till synes triviala egenskap är viktig för portabiliteten samt för återställning i händelse av olycka.
Imagine, for example, that you mistakenly deleted the dpkg program, and that you could thus no longer install Debian packages. dpkg being a Debian package itself, it would seem your system would be done for... Fortunately, you know the format of a package and can therefore download the .deb file of the dpkg package and install it manually (see sidebar VERKTYGdpkg,APT och ar). If by some misfortune one or more of the programs ar, tar or gzip/xz/bzip2 have disappeared, you will only need to copy the missing program from another system (since each of these operates in a completely autonomous manner, without dependencies, a simple copy will suffice). If your system suffered some even more outrageous misfortune, and even these don't work (maybe the deepest system libraries are missing?), you should try the static version of busybox (provided in the busybox-static package), which is even more self-contained, and provides subcommands such as busybox ar, busybox tar and busybox xz.
In case of a misfortune, you better also have a backup of your system (see Avsnitt 9.10, ”Säkerhetskopia”).
Ta en titt på innehållet i en .deb-fil:
$ ar t dpkg_1.21.22_amd64.deb
debian-binary
control.tar.gz
data.tar.xz
$ ar x dpkg_1.21.22_amd64.deb
$ ls
control.tar.gz  data.tar.xz  debian-binary  dpkg_1.21.22_amd64.deb
$ tar tJf data.tar.xz | head -n 16
./
./etc/
./etc/alternatives/
./etc/alternatives/README
./etc/cron.daily/
./etc/cron.daily/dpkg
./etc/dpkg/
./etc/dpkg/dpkg.cfg
./etc/dpkg/dpkg.cfg.d/
./etc/logrotate.d/
./etc/logrotate.d/alternatives
./etc/logrotate.d/dpkg
./lib/
./lib/systemd/
./lib/systemd/system/
./lib/systemd/system/dpkg-db-backup.service
$ tar tJf control.tar.xz
./
./conffiles
./control
./md5sums
./postinst
./postrm
./prerm
$ cat debian-binary
2.0
Som du kan se består ar arkivet av ett Debianpaket av tre filer:
debian-binary
This is a text file which simply indicates the version of the .deb file package format version. In Debian Bookworm it is still version 2.0.
control.tar.xz
Denna arkivfil innehåller all tillgänglig metainformation, så som namn och version på paketet så väl som några skript som skall köras innan, under eller efter (av-)installation av paketet. En del av metainformationen möjliggör för packeteringsverktygen att avgöra om det är möjligt att installera eller avinstallera paketet, exempelvis i enlighet med listan över redan installerade paket på datorn, samt om filer som skickats har modifierats lokalt.
data.tar.xz, data.tar.bz2, data.tar.gz
Detta arkiv innehåller alla de filer som skall extraheras från paketet; det är här alla körbara filer, bibliotek, dokumentation, och så vidare, förvaras. Paket kan använda olika komprimeringsformat, vilket gör att filen får olika namn för xz, bzip2 eller gzip.