Ero sivun ”Deb-paketin tekeminen 2025” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
Deb-paketin tekeminen (2025)
 
p ohjaus
Merkkaus: Uusi ohjaus
 
(3 välissä olevaa versiota samalta käyttäjältä ei näytetä)
Rivi 1: Rivi 1:
Deb-paketti (''.deb''-päätteinen tiedosto) on [[Debian]]-pohjaisten [[Linux-jakelu|Linux-jakeluiden]] (kuten [[Debian]], [[Ubuntu]], [[Mint]]) käyttämä vakiomuotoinen asennuspaketti. Paketti sisältää ohjelmiston [[binääritiedosto|binääritiedostot]], kokoonpanotiedostot ja tarvittavat [[metatieto|metatiedot]] asennuksen hallintaan.
#ohjaus[[Deb-paketin tekeminen (Moderni opas)]]
 
== 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'''<br>
''dh_make''-työkalu luo lähdekoodihakemiston sisään tarvittavan ''debian/''-alihakemiston ja esitäytetyt mallitiedostot:
 
dh_make --createorig
 
'''2. Tärkeimpien tiedostojen muokkaaminen'''<br>
Kehittäjä muokkaa luotuja tiedostoja vastaamaan projektin vaatimuksia:
 
A. ''debian/control'' (Metatiedot)<br>
Tiedosto on välttämätön, ja se määrittelee paketin riippuvuudet ja kuvauksen.
 
Koodinpätkä
<syntaxhighlight lang="source">
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.
</syntaxhighlight>
 
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)<br>
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
<syntaxhighlight lang="Makefile">
#!/usr/bin/make -f
 
# Tällä säännöllä sallitaan debhelperin automaattinen toiminta
# (kuten configure, build ja install)
%:
dh $@ --with cmake
</syntaxhighlight>
 
* ''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)<br>
Tätä tiedostoa käytetään versionumeroinnin ja pakettimuutosten kirjaamiseen. Se on ehdottoman pakollinen. Uusi merkintä luodaan komennolla:
 
dch -i
'''3. Paketin luominen'''<br>
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-avain|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]]
 
[[Luokka:Ohjeet]]
[[Luokka:Paketinhallinta]]
[[Luokka:Debian GNU/Linux]]
[[Luokka:Kehitystyökalut]]

Nykyinen versio 15. marraskuuta 2025 kello 02.32