Mock untuk build paket: Perbedaan revisi
(→Atur Konfigurasi) |
|||
Baris 7: | Baris 7: | ||
== Atur Konfigurasi == | == Atur Konfigurasi == | ||
− | Misal fedora- | + | Misal fedora-13-i386.cfg menjadi ign2010.cfg |
# cd /etc/mock | # cd /etc/mock | ||
− | # ln -s --force fedora-13-i386.cfg | + | # ln -s --force fedora-13-i386.cfg ign2010.cfg |
Agar mock memakai repositori lokal lakukan penyesuaian: | Agar mock memakai repositori lokal lakukan penyesuaian: | ||
Baris 43: | Baris 43: | ||
""" | """ | ||
# Ada tiga double apostrof yg harus tetap ada. | # Ada tiga double apostrof yg harus tetap ada. | ||
+ | |||
+ | == Modifikasi /etc/mock/site-defaults.cfg == | ||
+ | Tambahkan pada bagian bawah site-defaults.cfg | ||
+ | |||
+ | # Setup various rpm macros to use | ||
+ | config_opts['macros']['%packager'] = 'Nana Suryana <nana@suryana.or.id>' | ||
+ | config_opts['macros']['%debug_package'] = '%{nil}' | ||
+ | |||
== Tambah pengguna ke grup mock == | == Tambah pengguna ke grup mock == | ||
Baris 62: | Baris 70: | ||
=== Pasang dependencies === | === Pasang dependencies === | ||
Dependencies suatu paket dapat dipasang. Opsi "--no-clean" diperlukan. | Dependencies suatu paket dapat dipasang. Opsi "--no-clean" diperlukan. | ||
− | $ mock --no-clean installdeps ~/rpmbuild/SRPMS/paketku-1.2-3.src.rpm | + | $ mock -r ign2010 --no-clean installdeps ~/rpmbuild/SRPMS/paketku-1.2-3.src.rpm |
Dependencies sudah siap untuk build src.rpm menjadi rpm. | Dependencies sudah siap untuk build src.rpm menjadi rpm. | ||
Baris 84: | Baris 92: | ||
$ mock -r <configfile> --rebuild ~/rpmbuild/SRPMS/paketku-1.2-3.src.rpm | $ 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- | + | '''Contoh1''': Paket yang akan di build adalah paketku-1.2-3.src.rpm untuk fedora-13-i386, lakukan: |
− | $ mock --rebuild package-1.2-3.src.rpm | + | $ mock -r fedora-13-i386 --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: | '''Contoh2''': Paket yang akan di build adalah paketku-1.2-3.src.rpm untuk fedora-8-i386, lakukan: | ||
Baris 91: | Baris 99: | ||
'''Contoh3''': Memakai beberapa parameter | '''Contoh3''': Memakai beberapa parameter | ||
− | $ mock -r | + | $ mock -r ign2010 \ |
--verbose \ | --verbose \ | ||
--resultdir=/home/igos/var/rpm/mock/"%(dist)s"/"%(target_arch)s"/ \ | --resultdir=/home/igos/var/rpm/mock/"%(dist)s"/"%(target_arch)s"/ \ | ||
--no-clean --no-cleanup-after \ | --no-clean --no-cleanup-after \ | ||
--rebuild paketku-1.2-3.src.rpm | --rebuild paketku-1.2-3.src.rpm | ||
+ | |||
+ | == Hasil Rebuild == | ||
+ | Paket hasil rebuild ada di direktori /var/lib/mock/$CONFIG/result: | ||
+ | |||
+ | $ ls -1 /var/lib/mock/$CONFIG/result | ||
+ | build.log | ||
+ | paketku-1.2-3.noarch.rpm | ||
+ | paketku-1.2-3.src.rpm | ||
+ | root.log | ||
+ | state.log |
Revisi per 10 Juli 2010 10.54
Pengembang distro berbasis rpm dapat melakukan build src.rpm ke versi atau platform tertentu. Contoh Pengembang IGOS Nusantara saat ini sedang memakai IGN2009 (berbasis Fedora 11), lalu ada kebutuhan update paket tertentu untuk IGN2008 (berbasis Fedora 7). Akan cukup repot apabila pengembang harus instal ulang IGN2008 untuk build paket.
Mock dipakai untuk build paket src.rpm menjadi rpm ke versi tertentu. Misal dari IGN2009 dapat melakukan build paket untuk IGN2008, atau bahkan build paket untuk CentOS. Mock sangat memudahkan proses build. Saat melakukan build, mock akan
Daftar isi
Pasang Mock
# yum -y install mock
Atur Konfigurasi
Misal fedora-13-i386.cfg menjadi ign2010.cfg
# cd /etc/mock # ln -s --force fedora-13-i386.cfg ign2010.cfg
Agar mock memakai repositori lokal lakukan penyesuaian:
SEMULA:
# repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-13&arch=i386 failovermethod=priority [updates-released] name=updates mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f13&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 [f13-all] name=f13-all baseurl=http://192.168.1.100/public/fedora/13/all [f13-updates] name=f13-updates baseurl=http://192.168.1.100/public/fedora/13/updates """ # Ada tiga double apostrof yg harus tetap ada.
Modifikasi /etc/mock/site-defaults.cfg
Tambahkan pada bagian bawah site-defaults.cfg
- Setup various rpm macros to use
config_opts['macros']['%packager'] = 'Nana Suryana <nana@suryana.or.id>' config_opts['macros']['%debug_package'] = '%{nil}'
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 -r ign2010 --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-13-i386, lakukan:
$ mock -r fedora-13-i386 --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 ign2010 \ --verbose \ --resultdir=/home/igos/var/rpm/mock/"%(dist)s"/"%(target_arch)s"/ \ --no-clean --no-cleanup-after \ --rebuild paketku-1.2-3.src.rpm
Hasil Rebuild
Paket hasil rebuild ada di direktori /var/lib/mock/$CONFIG/result:
$ ls -1 /var/lib/mock/$CONFIG/result build.log paketku-1.2-3.noarch.rpm paketku-1.2-3.src.rpm root.log state.log