ok, tässä siis hyvin lyhyt ja pelkistetty johdatus pakettien kääntämiseen debianin sorsista. debian sorsilla tarkoita tietysti lähdekoodeja joissa on debianin työkalujen vaatima informaatio paketoinnista ym. tämän näkee yleensä siitä, että lähdekoodien päähakemistossa on hakemisto nimeltään
debian.
otetaan nyt sitten vaikka esimerkiksi tuo aikaisemmin kyselty
libgphoto2, vaikka siihen annettu patchi ei kuulemma toiminutkaan toivotulla tavalla, mutta päästäänpähän samalla ihmettelemään patchausta.
asennetaan monissa kääntämisissä vaaditut peruskamat:
# apt-get install build-essential fakeroot
luodaan hakemisto siirrytään sinne jotta homma olisi siistimpää
$ mkdir koodi;cd koodi
haetaan paketin lähdekoodit:
$ apt-get source libgphoto2
tässä välissä olisi hyvä patchata lähdekoodi jos siihen on tarvetta. se hoituu komennolla patch
esim. tuo osoitteessa
https://bugzilla.ubuntu.com/attachment.cgi?id=4164 lymyilevä patchi asennettaisiin näin:
ensin patchi tietty noudettaisiin ja sen jälkeen (riippuen mistä hakemistosta tuo patchi olisi tehty, senhän näkee kun kurkkaa mitä se pitää sisällään) komennettaisiin:
$ patch -p0<libgphoto2.ptp_ignore_file_dups.diff
tuolle p:lle annettava numero riippuu niitä patchin sisällä määritellyistä poluista ja omasta sijainnista. lisään aiheesta
man patch.
nyt tuota ei tosin tarvitse enää patchata sillä patchi on jo asennettuna kyseiseen pakettiin ja jos sitä yrittää siitäkin huolimatta asentaa, niin ohjelma varoittaa kyllä.
seuraavaksi siirrytään hakemistoon jossa lähdekoodit ovat:
$ cd libgphoto2-2.1.6/
tarkastetaan ovatko kaikki kääntämiseen tarvittavat kirjastot asennettuina:
$ dpkg-checkbuilddeps
dpkg-checkbuilddeps: Unmet build dependencies: debhelper (>> 3.0.0) zlib1g-dev libtool libusb-dev (>= 1:0.1.5) libgpmg1-dev libexif-dev (>= 0.6.12) libjpeg62-dev
eivät näköjään, asennetaan ne:
# apt-get install debhelper zlib1g-dev libtool libusb-dev libgpmg1-dev libexif-dev libjpeg62-dev
sitten ei muuta kuin kääntämään. käytetään dpkg-dev -paketin mukana tullutta scriptiä joka paketoi käännetyn softan meille valmiiksi:
$ dpkg-buildpackage -rfakeroot
sitten odotellaan...
kun homma on valmis, siirrytään hakemistorakenteessa pykälä kohti juurta ja huomataan, että siihen hakemistoon on pullahtanut läjä uusia tiedostoja:
$ ls
libgphoto2-port0_2.1.6-1ubuntu6_i386.deb
libgphoto2.ptp_ignore_file_dups.diff
libgphoto2-2-dev_2.1.6-1ubuntu6_i386.deb
libgphoto2-2.1.6
libgphoto2_2.1.6.orig.tar.gz
libgphoto2_2.1.6-1ubuntu6.diff.gz
libgphoto2_2.1.6-1ubuntu6.dsc
libgphoto2_2.1.6-1ubuntu6_i386.changes
libgphoto2-2_2.1.6-1ubuntu6_i386.deb
nyt meitä kiinnostaa tietysti vain .deb -päätteiset tiedostot joita on kolme ja niistäkin yksi on developement versio, jota ei tarvita jos itse käännettävät ohjelmat eivät sitä vaadi. sitten vaan asennetaan nämä uudet paketit (tai lähetetään kaverille tai mitä tahansa. tosin yleensä kannatta kyllä testata niitä paketteja ennen jakamista
).
# dpkg -i libgphoto2-port0_2.1.6-1ubuntu6_i386.deb libgphoto2-2_2.1.6-1ubuntu6_i386.deb
siinäpä tuo, helppoa kuin mikä. tosin kannattaa huomioida, että tässä ohjeessa olevista komennoista vain
#-alkuiset vaativat rootin oikeudet, muita ei kannata rootin oikeuksin edes tehdä.
yleensähän noita paketteja on aika turha kääntää itse, jos ei halua välttämättä asentaa jotain patchia, muuttaa oletuksena käytettyjä kääntöparametreja (joista ei edes puhuttu tässä) tai kääntää jotain softaa jota ei syystä tai toisesta löydy paketinhallinnasta. itse olen asentanut palvelimelle paketinhallinan ulkopuolelta ohjelman nimeltään
mcabber.