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

Siirry navigaatioon Siirry hakuun
(→‎Tehdään paketti!: lähdekoodipaketista)
Rivi 286: Rivi 286:
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.2.orig.tar.gz</tt> - alkuperäinen lähdekoodi
*<tt>hello_2.2.orig.tar.gz</tt> - alkuperäinen lähdekoodi
*<tt>hello_2.2-1.dsc</tt> - [[gpg]]:llä allekirjoitettu <tt>control</tt>-tiedoston kaltainen tiedosto, jossa on myös md5-summat.
*<tt>hello_2.2-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.2-1.diff.gz</tt> - [[gzip]]-pakattu [[diff]]-tiedosto lähdekoodiin tehdyistä muutoksista.
*<tt>hello_2.2-1.diff.gz</tt> - [[gzip]]-pakattu [[diff]]-tiedosto lähdekoodiin tehdyistä muutoksista
*<tt>hello_2.2-1_i386.deb</tt> - lopullinen deb-paketti!
*<tt>hello_2.2-1_i386.deb</tt> - lopullinen deb-paketti!
*<tt>hello_2.2-1_i386.changes</tt> - [[gpg]]:llä allekirjoitettu tiedosto, josta käy ilmi tehdyt muutokset
*<tt>hello_2.2-1_i386.changes</tt> - [[gpg]]:llä allekirjoitettu tiedosto, joka sisältää paketin muutoslokin (<tt>debian/changelog</tt>) ja pakettiin liittyvien tiedostojen md5-summat


Nyt lopullinen paketti voidaan asentaa [[dpkg]]:llä:
Nyt lopullinen paketti voidaan asentaa [[dpkg]]:llä:
Rivi 297: Rivi 297:
  fakeroot debian/rules binary
  fakeroot debian/rules binary
joka ei kuitenkaan käännä ohjelmaa alusta lähtien (tärkeää huomata, jos muutat lähdekoodia).
joka ei kuitenkaan käännä ohjelmaa alusta lähtien (tärkeää huomata, jos muutat lähdekoodia).
=== 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).
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ähdekoodipaketti luodaan ajamalla paketin päähakemistossa komento
debuild -S -sa
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
dpkg-source -x paketti.dsc
cd paketti
dpkg-buildpackage -rfakeroot
Ilman <tt>debuildin</tt> <tt>-sa</tt>-valitsinta voi luoda paketin, joka ei sisällä alkuperäistä lähdekoodia. Tälle on käyttöä silloin, kun paketteja pidetään ulkopuolisessa pakettivarastossa ja uusi versio voidaan julkaista vain lähettämällä palvelimelle uusi lähdekoodipaketti ilman alkuperäistä lähdekoodia (kunhan alkuperäinen lähdekooditiedosto <tt>.orig.tar.gz</tt> ei ole muuttunut).


== Lintian ja linda: onnistuiko paketti? ==
== Lintian ja linda: onnistuiko paketti? ==