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

Siirry navigaatioon Siirry hakuun
534 merkkiä lisätty ,  31. heinäkuuta 2016
ei muokkausyhteenvetoa
p (→‎changelog: ''lähdekoodi''paketin nimi)
Ei muokkausyhteenvetoa
Rivi 47: Rivi 47:


== Asetustiedostot ==
== Asetustiedostot ==
Dh_make loi <tt>debian</tt>-hakemiston, joka sisältää monia tiedostoja, joiden perusteella itse paketti luodaan. Tässä vaiheessa on käytävä ne läpi ja muokattava sopiviksi.
<tt>dh_make</tt> loi <tt>debian</tt>-hakemiston, joka sisältää monia tiedostoja, joiden perusteella itse paketti luodaan. Tässä vaiheessa on käytävä ne läpi ja muokattava sopiviksi.


=== control ===
=== control ===
Rivi 100: Rivi 100:
</source>
</source>


=== Suositeltavat paketit, ristiriidat ja muut suhteet toisiin paketteihin ===
==== Suositeltavat paketit, ristiriidat ja muut suhteet toisiin paketteihin ====
Riippuvuuksien lisäksi paketti voi myös suositella jonkun toisen paketin asentamista, tai se voi myös kieltäytyä asentumasta samaan järjestelmään jonkin toisen paketin kanssa (ristiriita toisen paketin kanssa, engl. ''conflict''). Tällaiset paketit esitellään <tt>control</tt>-tiedostossa samaan tapaan kuin riippuvuudet.  
Riippuvuuksien lisäksi paketti voi myös suositella jonkun toisen paketin asentamista, tai se voi myös kieltäytyä asentumasta samaan järjestelmään jonkin toisen paketin kanssa (ristiriita toisen paketin kanssa, engl. ''conflict''). Tällaiset paketit esitellään <tt>control</tt>-tiedostossa samaan tapaan kuin riippuvuudet.  


Rivi 190: Rivi 190:


Jos paketti ei käytä autoconfia, on <tt>rules</tt> muokattava sellaiseksi, että ohjelma kääntyy ja asentuu polkuun <tt>debian/''paketinnimi''</tt>. Se, miten kääntäminen tapahtuu, riippuu ohjelmasta. Funktion <tt>dh_install</tt> avulla asennetaan tiedostot oikeisiin hakemistoihin lopullisessa binaaripaketissa.
Jos paketti ei käytä autoconfia, on <tt>rules</tt> muokattava sellaiseksi, että ohjelma kääntyy ja asentuu polkuun <tt>debian/''paketinnimi''</tt>. Se, miten kääntäminen tapahtuu, riippuu ohjelmasta. Funktion <tt>dh_install</tt> avulla asennetaan tiedostot oikeisiin hakemistoihin lopullisessa binaaripaketissa.
=== compat ===
Tässä tiedostossa ilmoitamme, mitä versiota debhelperistä käytämme.
=== source/format ===
Tätä tiedostoa ei tarvitse muuttaa. Sen sisältö on:
3.0 (quilt)
Quilt viittaa [[#Patchit|patchien hallintaan]] käyttämäämme ohjelmaan. 3.0:n merkityksestä voi lukea tarkemmin Debian Wikin artikkelista [https://wiki.debian.org/Projects/DebSrc3.0 DebSrc3.0].


=== .ex-päätteiset tiedostot ===
=== .ex-päätteiset tiedostot ===
Rivi 228: Rivi 236:


Tämän jälkeen, jos kaikki sujui ilman virheitä, ylähakemistosta pitäisi löytyä seuraavat tiedostot:
Tämän jälkeen, jos kaikki sujui ilman virheitä, ylähakemistosta pitäisi löytyä seuraavat tiedostot:
*<tt>hello_2.6.orig.tar.gz</tt> - alkuperäinen lähdekoodi
*<tt>hello_2.10-1_amd64.build</tt> – kääntämisloki (''build log'')
*<tt>hello_2.6-1.dsc</tt> - [[gpg]]:llä allekirjoitettu <tt>control</tt>-tiedoston kaltainen tiedosto, jossa on listattu lähdekooditiedoston ja diff-tiedoston [[md5]]-summat
*<tt>hello_2.10-1_amd64.changes</tt> [[gpg]]:llä allekirjoitettu tiedosto, joka sisältää paketin muutoslokin (<tt>debian/changelog</tt>) ja pakettiin liittyvien tiedostojen [[SHA]]1- ja SHA256-summat
*<tt>hello_2.6-1.diff.gz</tt> - [[gzip]]-pakattu [[diff]]-tiedosto lähdekoodiin tehdyistä muutoksista
*<tt>hello_2.10-1_amd64.deb</tt> – lopullinen deb-paketti!
*<tt>hello_2.6-1_i386.deb</tt> - lopullinen deb-paketti!
*<tt>hello_2.10-1.debian.tar.xz</tt> – <tt>debian-hakemiston</tt> sisältö [[xz]]-pakattuna tar-arkistona
*<tt>hello_2.6-1_i386.changes</tt> - [[gpg]]:llä allekirjoitettu tiedosto, joka sisältää paketin muutoslokin (<tt>debian/changelog</tt>) ja pakettiin liittyvien tiedostojen md5-summat
*<tt>hello_2.10-1.dsc</tt> [[gpg]]:llä allekirjoitettu <tt>control</tt>-tiedoston kaltainen tiedosto, jossa on listattu lähdekooditiedoston ja diff-tiedoston SHA1- ja SHA256-summat
*<tt>hello_2.10.orig.tar.gz</tt> – alkuperäinen lähdekoodi


Nyt lopullinen paketti voidaan asentaa [[dpkg]]:llä:
Nyt lopullinen paketti voidaan asentaa [[dpkg]]:llä:
  dpkg -i hello_2.6-1_i386.deb
  dpkg -i hello_2.10-1_amd64.deb


Kun myöhemmin teet muutoksia pakettiin, voit luoda uuden paketin nopeasti komennolla
Kun myöhemmin teet muutoksia pakettiin, voit luoda uuden paketin nopeasti komennolla
Rivi 242: Rivi 251:


=== Lähdekoodipaketti ===
=== Lähdekoodipaketti ===
Edellä teimme tavallisen ns. ''binääripaketin'', joka sisältää valmiiksi käännetyn ohjelman. Monesti on tarpeen tehdä myös lähdekoodipaketti, joka sisältää pakettiin ja sen kääntämiseen ja asentamiseen liittyvät tiedot (<tt>debian</tt>-hakemisto) ja ohjelman lähdekoodin. Tällöin paketti on mahdollista kääntää ja asentaa jokaiselle sopivalle alustalle kun taas käännetty <tt>.deb</tt>-paketti toimii vain yhdellä alustalla (esim. x86).
Edellä teimme tavallisen ns. ''binääripaketin'', joka sisältää valmiiksi käännetyn ohjelman. Monesti on tarpeen tehdä myös lähdekoodipaketti, joka sisältää pakettiin ja sen kääntämiseen ja asentamiseen liittyvät tiedot (<tt>debian</tt>-hakemisto) ja ohjelman lähdekoodin. Tällöin paketti on mahdollista kääntää ja asentaa jokaiselle sopivalle alustalle kun taas käännetty <tt>.deb</tt>-paketti toimii vain yhdellä alustalla (esim. amd64, i386 tai armhf).


Lähdekoodipaketteja käytetään etenkin kun paketti julkaistaan esimerkiksi lisäämällä se jonkin jakelun virallisiin pakettilähteisiin. Tällöin kehittäjä yleensä vain lähettää palvelimelle lähdekoodipaketin, jonka palvelin sitten kääntää useille eri arkkitehtuureille.
Lähdekoodipaketteja käytetään etenkin kun paketti julkaistaan esimerkiksi lisäämällä se jonkin jakelun virallisiin pakettilähteisiin. Tällöin kehittäjä yleensä vain lähettää palvelimelle lähdekoodipaketin, jonka palvelin sitten kääntää useille eri arkkitehtuureille.
Rivi 250: Rivi 259:
Missä valitsin <tt>-S</tt> tarkoittaa, että luodaan lähdekoodipaketti ja <tt>-sa</tt> sisällyttää pakettiin mukaan alkuperäisen lähdekooditiedoston (<tt>.orig.tar.gz</tt>). Tällöin ylähakemistoon pitäisi ilmestyä samanlaisten tiedostojen kuin luotaessa binääripakettia, paitsi että varsinaista <tt>.deb</tt>-pakettia ei ilmesty.  
Missä valitsin <tt>-S</tt> tarkoittaa, että luodaan lähdekoodipaketti ja <tt>-sa</tt> sisällyttää pakettiin mukaan alkuperäisen lähdekooditiedoston (<tt>.orig.tar.gz</tt>). Tällöin ylähakemistoon pitäisi ilmestyä samanlaisten tiedostojen kuin luotaessa binääripakettia, paitsi että varsinaista <tt>.deb</tt>-pakettia ei ilmesty.  


Nyt lähdekoodipaketti koostuu näistä tiedostoista (<tt>paketti.dsc</tt>, <tt>paketti.orig.tar.gz</tt> ja <tt>paketti.diff.gz</tt>), ja sitä voidaan hallita esimerkiksi <tt>dpkg-source</tt>-ohjelmalla. Jos esimerkiksi olet saanut jostain lähdekoodipaketin, voit purkaa ja kääntää seuraavasti
Nyt lähdekoodipaketti koostuu näistä tiedostoista (<tt>paketti.dsc</tt>, <tt>paketti.orig.tar.gz</tt> ja <tt>paketti.debian.tar.xz</tt>), ja sitä voidaan hallita esimerkiksi <tt>dpkg-source</tt>-ohjelmalla. Jos esimerkiksi olet saanut jostain lähdekoodipaketin, voit purkaa ja kääntää seuraavasti
  dpkg-source -x paketti.dsc
  dpkg-source -x paketti.dsc
  cd paketti
  cd paketti
Rivi 259: Rivi 268:
== Lintian: onnistuiko paketti? ==
== Lintian: onnistuiko paketti? ==
Lintian on ohjelma, joka tarkistaa tekemäsi paketin laadun. Sille annetaan parametrina pakettia luotaessa syntynyt <tt>.changes</tt>-päätteinen tiedosto. Yleensä kannattaa antaa myös valitsin -i, jolloin lintian kertoo tarkemmin, mikä paketissa on vialla:
Lintian on ohjelma, joka tarkistaa tekemäsi paketin laadun. Sille annetaan parametrina pakettia luotaessa syntynyt <tt>.changes</tt>-päätteinen tiedosto. Yleensä kannattaa antaa myös valitsin -i, jolloin lintian kertoo tarkemmin, mikä paketissa on vialla:
  lintian -i hello_2.6-1_i386.changes
  lintian -i hello_2.10-1_amd64.changes
Tulosteessa E:-alkavat rivit tarkoittavat virhettä, W:-alkavat varoituksia ja N:-alkavat huomautuksia.
Tulosteessa E:-alkavat rivit tarkoittavat virhettä, W:-alkavat varoituksia ja N:-alkavat huomautuksia.


119

muokkausta

Navigointivalikko