Kuliax

GNU/Linux untuk Kampus

Alat Pengguna

Alat Situs


devel:pkg:build:prep

Persiapan Pembangunan Paket

Halaman ini berisi langkah-langkah untuk mempersiapkan proses pembangunan paket dengan pbuilder.

Langkah-Langkah

  1. Set variabel informasi pengembang yaitu $DEBFULLNAME dan $DEBEMAIL di $HOME/.bash_profile
    $ vim .bash_profile
    export DEBFULLNAME="Iwan Setiawan"
    export DEBEMAIL="stwn[@]kuliax[.]org"
    export EDITOR="vim"
    export PATH="/usr/local/bin:/usr/bin:/bin:$HOME/tmp/devel/scripts"
  2. Jalankan perintah `source` untuk me-restart shell
    $ source .bash_profile
  3. Sunting berkas .pbuilderrc
    $ vim .pbuilderrc
    MIRRORSITE=http://localhost/debian/
    OTHERMIRROR="deb http://localhost/kuliax ./"
    DEBOOTSTRAP="cdebootstrap"
    DISTRIBUTION="lenny"
    COMPONENTS="main contrib non-free"
    AUTO_DEBSIGN=yes
    APTCACHE=$HOME/tmp/pbuilder/cache/
    BUILDPLACE=$HOME/tmp/pbuilder/build/
    BUILDRESULT=$HOME/tmp/repo/kuliax/
    BINDMOUNTS=$HOME/tmp/repo/kuliax/
    HOOKDIR=$HOME/tmp/pbuilder/hook/

    Sesuaikan $MIRRORSITE dengan kondisi sistem dan buat direktori $APTCACHE, $HOOKDIR, $BUILDPLACE, dan $BUILDRESULT jika belum ada

    mkdir $HOME/tmp/pbuilder
    mkdir $HOME/tmp/pbuilder/{cache,hook,build,result}

    $HOOKDIR digunakan untuk menentukan direktori skrip hook dan $BINDMOUNTS adalah direktori yang akan dikaitkan saat pbuilder berjalan di lingkungan chroot dengan struktur direktori yang sama. Gunakan direktori yang terkait dengan partisi yang punya ruang kosong banyak pada isian BUILDPLACE, khususnya pada pemaketan paket-paket yang besar seperti kernel Linux

  4. Buat sistem dasar untuk pbuilder1)
    $ sudo pbuilder create
  5. Optimasi: jika pengembang mempunyai RAM yang cukup besar, untuk mempercepat proses pembangunan paket dengan pbuilder, kaitkan sistem berkas tmpfs ke direktori $BUILDPLACE
    sudo mount -t tmpfs tmpfs $BUILDPLACE

Hook

Hook adalah skrip yang akan dieksekusi di dalam proses pbuilder.

  • Buat skrip hook
    vim $HOOKDIR/D01apt-ftparchive

    dengan isi

    #!/bin/sh
    #
    # hook pbuilder script
    # based on script from "Using pbuilder to backport Debian packages"
    # 2010 Iwan Setiawan <stwn at kuliax.org>
    
    BUILDRESULT=/media/repo/kuliax
    
    apt-get install apt-utils
    
    ( cd $BUILDRESULT;
      apt-ftparchive packages . > $BUILDRESULT/Packages
    )
    
    cat<<EOF >/etc/apt/sources.list
    deb file://$BUILDRESULT ./
    deb http://localhost/debian/ stable main contrib non-free
    deb http://localhost/backports/ lenny-backports main contrib non-free
    EOF
    
    cat<<EOF >/etc/apt/preferences
    Package: *
    Pin: release o=Kuliax
    Pin-Priority: 400
    
    Package: *
    Pin: release a=lenny-backports
    Pin-Priority: 300
    
    Package: *
    Pin: release a=stable
    Pin-Priority: 200
    EOF
    
    apt-get update

    Huruf D [ada nama skrip hook menunjukkan bahwa skrip tersebut akan dieksekusi setelah image pbuilder diekstrak dan sebelum dependensi pembangunan paket diperiksa

  • Set mode eksekusi pada skrip di atas
    chmod +x D01apt-ftparchive
  • Buat symlink
    ln -s D01apt-ftparchive F01apt-ftparchive

    Huruf F menunjukkan bahwa skrip dieksekusi ketika shell login dijalankan di lingkungan pbuilder.

Pemutakhiran

  • Sunting berkas .pbuilderrc
    vim .pbuilderrc
  • Mutakhirkan sistem dasar pbuilder
    sudo pbuilder update --override-config

Catatan

  • Pastikan /etc/pbuilderrc berisi situs cermin yang dapat diakses lewat jaringan khususnya web (http). Jika pengembang mempunyai repositori paket lenny di direktori lokal misal /media/repo/, pasang server jejaring Apache dan buat symlink dari /var/www/debian ke /media/repo/debian/ atau direktori repo yang seharusnya. Isi pbuilderrc menjadi:
    MIRRORSITE=http://localhost/debian/

    atau masukkan ke dalam .pbuilderrc seperti contoh pada langkah-langkah di atas

  • Jangan gunakan perangkat removable seperti external USB drive untuk direktori BUILDPLACE dan HOOKDIR, khususnya yang dikaitkan (mount) melalui HAL atau front-end aplikasi seperti nautilus atau konqueror karena konfigurasi mount adalah noexec dan nodev
  • Untuk membersihkan direktori BUILDPLACE dan APTCACHE gunakan perintah
    $ sudo pbuilder clean

Daftar Bacaan

1) Gunakan perintah `sudo pbuilder update` untuk memutakhirkan paket-paket yang ada di sistem dasar pbuilder, jika suatu saat banyak pemutakhiran di distribusi yang digunakan
devel/pkg/build/prep.txt ยท Terakhir diubah: 2010/04/16 04:28 oleh stwn