Ero sivun ”Deb-paketin tekeminen” versioiden välillä
Siirry navigaatioon
Siirry hakuun
ei muokkausyhteenvetoa
p (→changelog: ''lähdekoodi''paketin nimi) |
Ei muokkausyhteenvetoa |
||
Rivi 47: | Rivi 47: | ||
== Asetustiedostot == | == Asetustiedostot == | ||
<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. | *<tt>hello_2.10-1_amd64.build</tt> – kääntämisloki (''build log'') | ||
*<tt>hello_2. | *<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. | *<tt>hello_2.10-1_amd64.deb</tt> – lopullinen deb-paketti! | ||
*<tt>hello_2. | *<tt>hello_2.10-1.debian.tar.xz</tt> – <tt>debian-hakemiston</tt> sisältö [[xz]]-pakattuna tar-arkistona | ||
*<tt>hello_2. | *<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. | 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. | 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. | 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. | 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. | ||