Deb-paketin tekeminen 2025
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
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
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
- dpkg
- Debian
- Ubuntu
- Deb-paketin tekeminen (vanha tapa)