Mock untuk build paket: Perbedaan revisi

Dari IGNwiki
Langsung ke: navigasi, cari
(Build Paket)
(Atur Konfigurasi)
Baris 28: Baris 28:
 
  cost=2000
 
  cost=2000
 
  enabled=0
 
  enabled=0
 +
"""
  
 
'''MENJADI''' (misal)
 
'''MENJADI''' (misal)
Baris 38: Baris 39:
 
  name=f11-updates
 
  name=f11-updates
 
  baseurl=http://192.168.1.100/public/fedora/f11/updates
 
  baseurl=http://192.168.1.100/public/fedora/f11/updates
 +
"""
 +
# Ada tiga double apostrof yg harus tetap ada.
  
 
== Tambah pengguna ke grup mock ==
 
== Tambah pengguna ke grup mock ==

Revisi per 30 Maret 2010 06.07

Mock dipakai untuk build paket untuk versi tertentu. Misal dari Fedora 12 dapat melakukan build paket untuk Fedora 8, atau bahkan build paket untuk CentOS.

Pasang Mock

# yum -y install mock

Atur Konfigurasi

Misal fedora-11-i386.cfg sebagai default

# cd /etc/mock
# ln -s --force fedora-11-i386.cfg default.cfg

Agar mock memakai repositori lokal lakukan penyesuaian:

SEMULA:

# repos
[fedora]
name=fedora
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-11&arch=i386
failovermethod=priority

[updates-released]
name=updates
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f11&arch=i386
failovermethod=priority

[local]
name=local
baseurl=http://kojipkgs.fedoraproject.org/repos/dist-f11-build/latest/i386/
cost=2000
enabled=0
"""

MENJADI (misal)

# repos
[f11-all]
name=f11-all
baseurl=http://192.168.1.100/public/fedora/f11/all

[f11-updates]
name=f11-updates
baseurl=http://192.168.1.100/public/fedora/f11/updates
"""
# Ada tiga double apostrof yg harus tetap ada.

Tambah pengguna ke grup mock

Pengguna yang akan melakukan build paket harus dimasukkan ke grup mock. Misal memasukkan pengguna dengan nama "igos"

# usermod -a -G mock igos

Ganti user ke igos untuk menjalankan mock

# su - igos
$ whoami
igos

Inisialisasi mock

$ mock clean
$ mock init

Perintah di atas akan membuat chroot (ada di: /var/lib/mock/<system type>/root)

Modifikasi paket melalui shell

Pasang dependencies

Dependencies suatu paket dapat dipasang. Opsi "--no-clean" diperlukan.

$ mock --no-clean installdeps ~/rpmbuild/SRPMS/paketku-1.2-3.src.rpm

Dependencies sudah siap untuk build src.rpm menjadi rpm.

$ mock-helper yum --installroot /var/lib/mock/<system type>/root install nano

Masuk shell

$ mock shell

Setelah masuk shell lakukan:

cd /builddir/build/SPECS
nano paketku.spec # lakukan perubahan spec
rpmbuild -bb paketku.spec

Modifikasi paket tanpa shell

Paket yang akan dibuild dengan mock dapat disesuaikan lebih dulu. Setelah pengaturan selesai, buat src.rpm:

$ rpmbuild -bs ~/rpmbuild/SPECS/paketku.spec

Berkas src.rpm yang dihasilkan ada di ~/rpmbuild/SRPMS/paketku-1.2-3.src.rpm

Build Paket

Sintak:

$ mock -r <configfile> --rebuild ~/rpmbuild/SRPMS/paketku-1.2-3.src.rpm

Contoh1: Paket yang akan di build adalah paketku-1.2-3.src.rpm untuk fedora-11-i386, lakukan:

$ mock --rebuild package-1.2-3.src.rpm

Contoh2: Paket yang akan di build adalah paketku-1.2-3.src.rpm untuk fedora-8-i386, lakukan:

$ mock -r fedora-8-i386 --rebuild paketku-1.2-3.src.rpm

Contoh3: Memakai beberapa parameter

$ mock -r fedora-10-x86_64 \
    --verbose \
    --resultdir=/home/igos/var/rpm/mock/"%(dist)s"/"%(target_arch)s"/ \
    --no-clean --no-cleanup-after \
    --rebuild paketku-1.2-3.src.rpm