Deb-paketin tekeminen (Moderni opas)

Linux.fista
Siirry navigaatioon Siirry hakuun

Deb-paketti (.deb-päätteinen tiedosto) on Debian-pohjaisten Linux-jakeluiden (kuten Debian, Ubuntu, Mint) käyttämä vakiomuotoinen asennuspaketti. Paketti sisältää ohjelmiston binääritiedostot, kokoonpanotiedostot ja tarvittavat metatiedot asennuksen hallintaan.

Paketin rakenne

[muokkaa]

Deb-paketti koostuu loogisesti kolmesta pääosasta:

  • 1. debian-binary: Sisältää vain tiedon käytetystä Deb-tiedostoformaalin versiosta (yleensä "2.0").
  • 2. control.tar.xz (tai control.tar.gz): Sisältää paketin metatiedot ja asennusta edeltävät/seuraavat skriptit.
    • control: Paketin kuvaus, riippuvuudet, ylläpitäjä.
    • changelog: Versiohistoria.
    • rules: Käännösohjeet.
  • 3. data.tar.xz (tai data.tar.gz): Sisältää varsinaisen ohjelmiston tiedostot, jotka asennetaan kohdejärjestelmään (esim. binäärit, kirjastot).

Työnkulku modernein työkaluin

[muokkaa]

Deb-paketin luominen aloitetaan aina lähdekoodin juurihakemistossa.

1. Perusrakenteen luominen
dh_make-työkalu luo lähdekoodihakemiston sisään tarvittavan debian/-alihakemiston ja esitäytetyt mallitiedostot:

dh_make --createorig

2. Tärkeimpien tiedostojen muokkaaminen
Kehittäjä muokkaa luotuja tiedostoja vastaamaan projektin vaatimuksia:

A. debian/control (Metatiedot)
Tiedosto on välttämätön, ja se määrittelee paketin riippuvuudet ja kuvauksen.

Koodinpätkä

Source: oma-ohjelma
Section: utils
Priority: optional
Maintainer: Ylläpitäjä <yllapitaja@example.com>
Build-Depends: debhelper-compat (= 13), cmake, libgtk-3-dev
Standards-Version: 4.6.0
Homepage: https://github.com/oma-ohjelma

Package: oma-ohjelma
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Lyhyt kuvaus yhden rivin verran.
 Tähän tulee pidempi kuvaus paketin toiminnasta.

Huomioitavaa:

debhelper-compat (= 13): Tämä rivi on nykyaikaisessa paketoinnissa erittäin tärkeä. Se määrittelee käytettävän debhelper-version (taso 13 tai uudempi on suositeltu), mikä mahdollistaa yksinkertaistetun debian/rules-tiedoston käytön.

B. debian/rules (Käännösohjeet)
Tämä tiedosto on käännösprosessin ydin. Se on Makefile, mutta nykyaikaisessa paketoinnissa se on useimmiten minimalistinen hyödyntäen debhelper-komennon automatisoituja toimintoja (edellyttäen, että control-tiedostossa on korkea yhteensopivuustaso).

Moderni, suositeltu debian/rules-tiedosto:

Makefile

#!/usr/bin/make -f

# Tällä säännöllä sallitaan debhelperin automaattinen toiminta
# (kuten configure, build ja install)
%:
	dh $@ --with cmake
  • dh $@ suorittaa automaattisesti kaikki tarvittavat vaiheet (clean, build, binary jne.) hyödyntäen debhelper-skriptejä.
  • --with cmake (tai autotools): Ilmoittaa debhelperille, että se käyttää projektin käännöstä varten kyseistä työkalu(järjestelmä)ä.

C. debian/changelog (Versiohistoria)
Tätä tiedostoa käytetään versionumeroinnin ja pakettimuutosten kirjaamiseen. Se on ehdottoman pakollinen. Uusi merkintä luodaan komennolla:

dch -i

3. Paketin luominen
Kun debian/-hakemiston tiedostot ovat valmiina, koko paketti luodaan lähdekoodihakemistossa komennolla:

dpkg-buildpackage -us -uc
  • -us ja -uc estävät paketin allekirjoittamisen (allekirjoittaminen vaatii erillisen GPG-avaimen).
  • Komento suorittaa kaikki debian/rules-tiedostossa määritellyt vaiheet.

Onnistuneen käännöksen jälkeen valmis .deb-tiedosto löytyy lähdekoodihakemiston ulkopuolelta.

Katso myös

[muokkaa]