Ero sivun ”Deb-paketin tekeminen” versioiden välillä
Siirry navigaatioon
Siirry hakuun
johdanto, rules, jäi keskeneräiseen kuntoon
Ei muokkausyhteenvetoa |
(johdanto, rules, jäi keskeneräiseen kuntoon) |
||
Rivi 4: | Rivi 4: | ||
<hr/> | <hr/> | ||
[[Debian]]issa ja siihen pohjautuvissa jakeluissa (esim. [[ | [[Debian]]issa ja siihen pohjautuvissa jakeluissa (esim. [[Ubuntu]]ssa ja [[Linux Mint]]issä) käytetään [[Dpkg]]-paketinhallintajärjestelmää. Dpkg:ssa paketit ovat <tt>.deb</tt>-tiedostoja, jotka sisältävät itse ohjelman lisäksi mm. tiedot paketin riippuvuuksista ja siitä, mihin ohjelma asennetaan. Deb-pakettien tekeminen ei ole mitenkään ylivoimainen tehtävä, kunhan perusasiat ja mm. [[komentorivi|komentorivin käyttö]] ovat hallussa. | ||
Tässä oppaassa luodaan aluksi malliksi yksinkertainen paketti [http://www.gnu.org/software/hello/ GNU Hello] -ohjelmasta, joka on [[GNU]]-projektin esimerkkiohjelma. Ohjelman lähdekoodipaketin voi ladata [http://ftp.gnu.org/gnu/hello/ GNU:n palvelimelta]. Paketin luomisessa käytetään tässä apuna Debhelper-apuohjelmaa | Tässä oppaassa luodaan aluksi malliksi yksinkertainen paketti [http://www.gnu.org/software/hello/ GNU Hello] -ohjelmasta, joka on [[GNU]]-projektin esimerkkiohjelma. Ohjelman lähdekoodipaketin voi ladata [http://ftp.gnu.org/gnu/hello/ GNU:n palvelimelta]. Paketin luomisessa käytetään tässä apuna Debhelper-apuohjelmaa. | ||
Debianin eri versiosta löytyvän paketin voi kääntää käytetylle versiolle sopivaksi tai pakettiin tehdä pieniä muutoksia huomattavasti helpommin kuin tätä ohjetta seuraamalla, komennoilla <tt>apt-get build-dep paketti</tt>, <tt>apt-get source paketti</tt> ja <tt>dpkg-deb -build pakettihakemisto</tt>, jolloin muutokset tehdään viimeksi mainittujen välissä (varsinainen muutos + uusi kohta tiedostoon <tt>debian/changelog</tt>). Jos paketti tehdään valmiista Debianin lähdekoodipaketista, kääntämisen binääripaketiksi voi hoitaa paketin hakemisen yhteydessä komennolla <tt>apt-get --compile source paketti</tt>. Lisätietoja näistä komennoista löytyy artikkeleista [[apt-get]] ja [[dpkg]]. | Debianin eri versiosta löytyvän paketin voi kääntää käytetylle versiolle sopivaksi tai pakettiin tehdä pieniä muutoksia huomattavasti helpommin kuin tätä ohjetta seuraamalla, komennoilla <tt>apt-get build-dep paketti</tt>, <tt>apt-get source paketti</tt> ja <tt>dpkg-deb -build pakettihakemisto</tt>, jolloin muutokset tehdään viimeksi mainittujen välissä (varsinainen muutos + uusi kohta tiedostoon <tt>debian/changelog</tt>). Jos paketti tehdään valmiista Debianin lähdekoodipaketista, kääntämisen binääripaketiksi voi hoitaa paketin hakemisen yhteydessä komennolla <tt>apt-get --compile source paketti</tt>. Lisätietoja näistä komennoista löytyy artikkeleista [[apt-get]] ja [[dpkg]]. | ||
Rivi 145: | Rivi 143: | ||
Koska Hello käyttää autoconfia, osaa paketin luova työkalu tehdä tarvittavat asetukset itse, eikä meidän periaatteessa tarvitse edes koskea <tt>rules</tt>-tiedostoon. Katsotaan nyt kuitenkin sitä malliksi, sillä vähänkin monimutkaisempien pakettien kohdalla sitä on muokattava. Dh_maken luoma malli on seuraava: (rivinumerot lisätty) | Koska Hello käyttää autoconfia, osaa paketin luova työkalu tehdä tarvittavat asetukset itse, eikä meidän periaatteessa tarvitse edes koskea <tt>rules</tt>-tiedostoon. Katsotaan nyt kuitenkin sitä malliksi, sillä vähänkin monimutkaisempien pakettien kohdalla sitä on muokattava. Dh_maken luoma malli on seuraava: (rivinumerot lisätty) | ||
<source lang="make" line> | <source lang="make" line> | ||
#!/usr/bin/make -f | |||
# See debhelper(7) (uncomment to enable) | |||
# output every command that modifies files on the build system. | |||
#export DH_VERBOSE = 1 | |||
# see FEATURE AREAS in dpkg-buildflags(1) | |||
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all | |||
# see ENVIRONMENT in dpkg-buildflags(1) | |||
# package maintainers to append CFLAGS | |||
#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic | |||
# package maintainers to append LDFLAGS | |||
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed | |||
%: | |||
dh $@ --with autotools_dev | |||
# dh_make generated override targets | |||
# This is example for Cmake (See https://bugs.debian.org/641051 ) | |||
#override_dh_auto_configure: | |||
# dh_auto_configure -- # -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH) | |||
</source> | </source> | ||
Suurin osa tiedoston sisällöstä on #-merkillä alkavia kommentteja, poikkeuksena kuitenkin ensimmäinen rivi... | |||
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. | 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. | ||