|
|
| (2 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]]
| |