Her skal vi se på hvordan vi kan lage en enkel Debian pakke som kan installeres lokalt på Debian, Ubuntu, Raspberry Pi OS eller andre Debian avarter. I dette tilfellet skal vi lage en deb pakke, altså en Debian Binary pakke.

Strukturere pakken

Opprett en filstruktur som dette:

foo-package/
  DEBIAN/
    compat
    control
    postinst
  opt/
    foo/
      foo.sh

Kort forklart er alt under DEBIAN filer som benyttes for å kontrollere pakken, mens alt annet definerer hvor pakken skal installeres. F.eks. her installeres det en pakke som installerer en fil på /opt/foo/foo.sh.

Innhold av filer

compat

Settes til verdien 10 for øyeblikket iht til dokumentasjon.

10

control

Package: foo
Version: 0.1.2
Maintainer: John Doe
Architecture: all
Description: a dummy Debian package

postinst

Dette er en fil som kan kjøre skript etter at pakken er installert.

#!/bin/sh
echo "The package is installed"

Merk at det tilsvarende finnes tilsvarende filer for å kjøre skript før installasjon, og for/etter avinstallasjon, hhv:

  • preinst (før installasjon)
  • prerm (før avinstallasjon)
  • postrm (etter avinstallasjon)

foo.sh

#!/bin/sh
echo "Foo"

Bruke pakken

Bygge pakken

dpkg-deb --build -Zgzip foo-package foo.deb

Dette oppretter filen foo.deb som er en Debian pakke som kan installeres.

Du kan nå vise litt informasjon om pakken som er laget med kommandoer som

# Viser informasjon om pakken
dpkg-deb --info foo.deb

# Viser pakkenavn, versjon etc
dpkg-deb --show foo.deb

# List innhold av pakken
dpkg-deb --contents foo.deb

Håndtere installert pakke

Når pakken er installert kan du sjekke litt status med kommandoer som

# Lister innhold av den installerte pakken
dpkg --listfiles foo

# Viser status
dpkg --status foo

# Viser om noen av filene er tuklet med
dpkg --verify foo

Videre skal du nå kunne se filen /opt/foo/foo.sh

Avinstallere pakken

dpkg  -r foo