4 175
muokkausta
Pb (keskustelu | muokkaukset) p (→CDBS: typo) |
(simple patchsysistä) |
||
Rivi 1: | Rivi 1: | ||
[[Debian]]issa ja siihen pohjautuvissa jakeluissa (esim. [[Knoppix]]issa, [[MEPIS]]issä, [[PCLinuxOS]]issa ja [[Ubuntu]]ssa) käytetään [[Dpkg]]-paketinhallintajärjestelmää. Dpkg:ssa paketit ovat .deb-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 ovat hallussa. | [[Debian]]issa ja siihen pohjautuvissa jakeluissa (esim. [[Knoppix]]issa, [[MEPIS]]issä, [[PCLinuxOS]]issa ja [[Ubuntu]]ssa) käytetään [[Dpkg]]-paketinhallintajärjestelmää. Dpkg:ssa paketit ovat .deb-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 ovat hallussa. | ||
Tässä oppaassa luodaan 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]. | 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ämä ei ole yksinkertaisin tapa paketoida ohjelma, mutta ennen helpottaviin tekniikoihin tutustumista on hyvä käydä asiat yksityiskohtaisemmin läpi. | ||
Kun perusteet on hallussa, tutustumme artikkelin loppupuolella mm. CDBS:ään, joka helpottaa huomattavasti monia paketointiin liittyviä rutiinitehtäviä. | |||
== Valmistelut == | == Valmistelut == | ||
Rivi 369: | Rivi 369: | ||
Ja rivi | Ja rivi | ||
clean: | clean: | ||
muotoon | |||
clean: unpatch | clean: unpatch | ||
Rivi 434: | Rivi 434: | ||
|Siivottaessa käännöshakemistoa | |Siivottaessa käännöshakemistoa | ||
|} | |} | ||
===Patchit=== | |||
Kuten edellä jo mainittiin, CDBS helpottaa myös patchien käyttöä. Sen mukana tulee useita erilaisia <tt>.mk</tt>-tiedostoja, jotka toteuttavat hieman erilaiset patch-järjestelmät. | |||
''Simple patchsys'' on nimensä mukaisesti yksinkertainen patch-järjestelmä. Sitä käytettäessä ennen lähdekoodin kääntämistä otetaan käyttöön hakemistossa <tt>debian/patches</tt> olevat patchit aakkosjärjestyksessä (yleensä tiedostot ovat nimeltään muotoa <tt>numero-nimi.patch</tt>, esim. <tt>10-korjaa_makefile.patch</tt>, jolloin ne otetaan käyttöön numerojärjestyksessä). Myöskään sillä ei ole väliä, kuinka monta polkua patchin tiedostopoluista on jätettävä huomiotta (<tt>[[patch]]in</tt> valitsin <tt>-p</tt>), sillä simple patchsys yrittää eri tasoja, kunnes patchin käyttöönotto onnistuu. Myös patchien poistaminen lähdekoodista siivouksen (''clean'') yhteydessä tapahtuu automaattisesti. | |||
Simple patchsys otetaan käyttöön lisäämällä <tt>rules</tt>-tiedostoon rivi | |||
include /usr/share/cdbs/1/rules/simple-patchsys.mk | |||
Järjestelmään kuuluu myös <tt>cdbs-edit-patch</tt>-työkalu, joka mahdollistaa patchien luomisen ja muokkaamisen interaktiivisesti. Esimerkiksi jos haluamme luoda uuden patchin tai muokata vanhaa, jonka nimi on <tt>10-korjaa_makefile.patch</tt>, se onnistuu seuraavasti: | |||
#Ajetaan komento <tt>cdbs-edit-patch 10-korjaa_makefile.patch</tt>, jolloin CDBS luo projektihakemistosta väliaikaisen kopion, johon ottaa käyttöön kaikki luotavaa patchia aiemmin käyttöön otettavat patchit (joiden numero on pienempi kuin 10). Jos tällä nimellä on jo patchi olemassa, otetaan myös se käyttöön. | |||
#CDBS siirtää komentorivin tähän väliaikaiseen hakemistoon, jonka tiedostoja voidaan nyt muokata aivan normaalisti esimerkiksi [[vim]]illä. Tehdään tässä tilassa halutut muutokset. | |||
#Poistutaan väliaikaisesta työskentelytilasta näppäinyhdistelmällä ''Ctrl+D''. CDBS luo uuden patchin <tt>debian/patches</tt>-hakemistoon (tai päivittää vanhaa, jos muokkasimme jo olemassa olevaa patchia) ja palaa takaisin projektihakemistoon. | |||
#Nyt luotu patchi on normaalisti käytössä kun pakettia käännetään. | |||
===Lisätietoja=== | ===Lisätietoja=== |