4 175
muokkausta
(→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 == |