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

Siirry navigaatioon Siirry hakuun
3 613 merkkiä lisätty ,  22. huhtikuuta 2007
lisää materiaalia
(välitallennus)
(lisää materiaalia)
Rivi 209: Rivi 209:
95        dh_link
95        dh_link
96        dh_strip
96        dh_strip
97       dh_compress
97         dh_compress
98        dh_fixperms
98        dh_fixperms
99 #      dh_perl
99 #      dh_perl
100 #      dh_makeshlibs
100 #      dh_makeshlibs
101        dh_installdeb
101        dh_installdeb
Rivi 217: Rivi 217:
103        dh_gencontrol
103        dh_gencontrol
104        dh_md5sums
104        dh_md5sums
105       dh_builddeb
105         dh_builddeb
106
106
107 binary: binary-indep binary-arch
107 binary: binary-indep binary-arch
108 .PHONY: build clean binary-indep binary-arch binary install
108 .PHONY: build clean binary-indep binary-arch binary install
</pre>
</pre>
Tiedoston alussa annetaan käännösoptiot, esimerkiksi [[gcc|C-kääntäjän]] käännösparametrit laitetaan muuttujaan CFLAGS. Tämä tehdään riveillä 19-25.
Riveillä 27-31 ajetaan paketin <tt>configure</tt>-skripti. Koska Hello käyttää autoconfia ja siten <tt>configure</tt>-skriptiä, voimme välittää tässä vaiheessa tarvittavat parametrit. Saatat ihmetellä, miksi tässä annetaan parametrit <tt>--prefix=/usr</tt>, vaikka juuri todettiin, että ohjelma on asennettava <tt>debian/hello</tt>-alihakemistoon. Rivillä 69, kun ajetaan paketin asennuskomento, kuitenkin asetetaan kohdehakemistoksi <tt>debian/hello</tt>, jolloin paketti asentuu polkuun <tt>debian/hello/usr</tt>.
Jos tiedoston syntaksi on epäselvä, katso artikkeli [[Makefile]]. Paketti asennetaan monessa vaiheessa, aluksi riviltä 27 lähtien ajetaan <tt>configure</tt>-skripti <tt>config.status</tt>-osiossa. Tämän jälkeen ohjelma käännetään <tt>build</tt>-osiossa riviltä 34 eteenpäin.
<tt>build-indep</tt>-osiossa käännetään tai luodaan alustariippumattomat tiedostot. Hellon tapauksessa niitä ei ole. Riviltä 77 eteenpäin rakennetaan varsinaista alustariippuvaista binääripakettia. "dh_"-alkuiset rivit ovat debhelperin funktiokutsuja, jotka tekevät erilaisia pieniä operaatioita rakentaen pakettia. Mm. seuraavia funktioita on tarjolla:
*<tt>dh_testdir</tt>: Tarkistaa, että ollaan oikeassa hakemistossa
*<tt>dh_testroot</tt>: Tarkistaa, että meillä on pääkäyttäjän oikeudet kun niitä tarvitaan
*<tt>dh_strip</tt>: Ajaa [[strip]]-komennon suoritettaville tiedostoille, jolloin niiden koko pienenee
*<tt>dh_compress</tt>: Pakkaa [[gzip]]illä [[man]]-sivut ja ohjetiedostot, joiden koko ylittää 4kt
*<tt>dh_gencontrol</tt>: Luo binääripaketille <tt>control</tt>-tiedoston ja kopioi sen hakemistoon <tt>debian/hello/DEBIAN</tt>
*<tt>dh_md5sums</tt>: Luo [[MD5]]-tarkistussummat paketin tiedostoille
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 tämä tapahtuu, riippuu ohjelmasta. Tällöinkin voit käyttää edellä esiteltyjä "dh_"-alkuisia funktioita ja mm. $(CURDIR)-muuttujaa. Sopivan tiedoston saat aikaan muokkaamalla dh_maken luomaa pohjaa.


=== .ex-päätteiset tiedostot ===
=== .ex-päätteiset tiedostot ===
Rivi 227: Rivi 242:


== Tehdään paketti! ==
== Tehdään paketti! ==
Nyt kun tarvittavat tiedostot on lopulta muokattu sopiviksi, on aika luoda varsinainen paketti. Siirry ohjelman päähakemistoon (<tt>hello-2.2</tt>) ja aja komento
dpkg-buildpackage -rfakeroot
joka tekee seuraavat asiat:
*Siistii paketin (ajaa [[make]]lla komennon <tt>debian/rules clean</tt>)
*Kääntää ohjelman (<tt>debian/rules build</tt>)
*Luo binääripaketin (<tt>debian/rules binary</tt>)
*Allekirjoittaa .dsc-tiedoston [[gpg|gnupgllä]]
*Luo ja allekirjoittaa .changes-tiedoston
*Käyttää [[fakeroot]]tia, jolloin pääkäyttäjän oikeuksia ei tarvita
Allekirjoitus vaatii, että olet luonut [[gpg]]:llä itsellesi avaimen. Tällöin sinulta kysytään avaimesi salasanaa.
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-1.dsc</tt> - [[gpg]]:llä allekirjoitettu <tt>control</tt>_tiedoston kaltainen tiedosto.
*<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.changes</tt> - [[gpg]]:llä allekirjoitettu tiedosto, josta käy ilmi tehdyt muutokset
Nyt lopullinen paketti voidaan asentaa [[dpkg]]:llä:
dpkg -i hello_2.2-1_i386.deb




Navigointivalikko