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

Siirry navigaatioon Siirry hakuun
3 410 merkkiä lisätty ,  19. kesäkuuta 2008
(→‎Pbuilder: asiaa)
Rivi 373: Rivi 373:


== Pbuilder ==
== Pbuilder ==
Pbuilder on järjestelmä, joka kääntää ja rakentaa paketit omassa pienessä [[chroot]]-järjestelmässä. Pbuilderia käytettäessä saavutetaan mm. seuraavat edut:
#Käännösaikaiset riippuvuudet (''build-depends'') asennetaan automaattisesti
#Paketti käännetään puhtaassa ja mahdollisimman yksinkertaisessa ympäristössä, johon ei ole asennettu mitään ylimääräistä. Näin varmistetaan, että paketin kääntäminen onnistuu kaikissa järjestelmissä ja että käännösaikaiset riippuvuudet ovat riittävät.
#Paketin voi kääntää eri jakeluille ja jopa eri arkkitehtuurille


Pbuilderin käyttö aloitetaan luomalla käännösympäristö komennolla (pääkäyttäjän oikeuksin)
pbuilder create
Komento luo tiedoston <tt>/var/cache/pbuilder/base.tgz</tt>, joka sisältää pakatun chroot-ympäristön. Ympäristön luominen kestää jonkin aikaa, sillä se lataa tarvittavat paketit palvelimelta, asentaa ne chroot-järjestelmään ja lopuksi pakkaa luodun järjestelmän.
Tämän jälkeen Pbuilderin vaatimat valmistelut on tehty ja paketit voidaan kääntää siinä ajamalla paketin hakemistossa komento <tt>pdebuild</tt>. Käännetty paketti löytyy hakemistosta <tt>/var/cache/pbuilder/result</tt>.
=== Pintaa syvemmälle ===
Monesti Pbuilderia halutaan käyttää luomaan paketteja muille jakeluille tai arkkitehtuureille (esimerkiksi 64-bittisessä [[Debian]]issa luodaan Pbuilderilla paketti 32-bittiselle [[Ubuntu]]lle). Tätä varten on luotava chroot-ympäristöt kaikille näille jakeluille ja tehtävä muutamia asetuksia.
Tehdään seuraavaksi sellaiset asetukset, että voimme luoda paketteja sekä Debianin että Ubuntun eri versioille. Muut Debian-pohjaiset jakelut on mahdollista ottaa käyttöön samalla tavalla. Tehdään Pbuilderin asetukset lisäämällä tiedostoon <tt>~/.pbuilderrc</tt> seuraavat rivit:
<pre>
#Tarvittavia muuttujia
: ${DIST:=$(lsb_release --short --codename)}
: ${ARCH:=$(dpkg --print-architecture)}
NAME="$DIST-$ARCH"
DISTRIBUTION="$DIST"
DEBOOTSTRAPOPTS=("--arch" "$ARCH" "${DEBOOTSTRAPOPTS[@]}")
BASETGZ="`dirname $BASETGZ`/$NAME-base.tgz"
BUILDRESULT="/var/cache/pbuilder/$NAME/result/" # Hakemisto luotaville paketeille
APTCACHE="/var/cache/pbuilder/$NAME/aptcache/"
case "$DIST" in
    intrepid|hardy|gutsy) # Ubuntu
        MIRRORSITE="http://fi.archive.ubuntu.com/ubuntu/"
        COMPONENTS="main restricted universe multiverse"
        ;;
    sid|lenny|etch) # Debian
        MIRRORSITE="http://ftp.fi.debian.org/debian/"
        COMPONENTS="main contrib non-free"
        ;;
    *)
        echo "Unknown distribution: $DIST"
        exit 1
        ;;
esac
</pre>
Jolloin Pbuilder tunnistaa käytettävän jakelun <tt>DIST</tt>-[[ympäristömuuttuja]]sta ja arkkitehtuurin <tt>ARCH</tt>-ympäristömuuttujasta. Jos ympäristömuuttujille ei erikseen anneta arvoja, käytetään nykyisen järjestelmän tietoja.
Nyt voimme luoda chroot-ympäristöt eri jakeluille määrittelemällä tarvittavat ympäristömuuttujat, esimerkiksi 32-bittiselle Debian Sidille (Debianin kehitysversio) luodaan ympäristö komennolla (pääkäyttäjänä)
DIST=sid ARCH=i386 pbuilder create
Kun halutut ympäristöt on luotu, voidaan paketit kääntää tässä ympäristössä käyttäen samoja ympäristömuuttujia, esimerkkitapauksessamme
DIST=sid ARCH=i386 pdebuild
Luotu paketti löytyy hakemistosta <tt>/var/cache/pbuilder/sid-i386/</tt>.


== Muut pakettityypit ==
== Muut pakettityypit ==

Navigointivalikko