Panduan Pembungkusan Ubuntu

Dokumentasi

Pembungkusan dengan Debhelper


[Penting]

Keperluan: Keperluan dari seksyen yang disebut "Packaging From Scratch" ditambah debhelper dan dh-make

Sebagai pembungkus, anda jarang akan membuat pakej dari awal seperti yang telah kami lakukan di bahagian sebelumnya. Seperti yang anda bayangkan, banyak tugas dan maklumat dalam fail peraturan , misalnya, adalah perkara biasa untuk pakej. Untuk membuat pembungkusan lebih mudah dan lebih cekap, anda boleh menggunakan pembangun untuk membantu tugas-tugas ini. Debhelper adalah satu set skrip Perl (awalan dengan dh_ ) yang mengautomasikan proses pembungkusan pakej. Dengan skrip ini, membina pakej Debian menjadi agak mudah.

Dalam contoh ini, kami akan membina semula pakej Hello Hello, tetapi kali ini kami akan membandingkan kerja kami dengan pakej hello-debhelper Ubuntu. Sekali lagi, buat direktori di mana anda akan berfungsi:

mkdir ~ / hello-debhelper cd ~ / hello-debhelper wget http://ftp.gnu.org/gnu/hello/hello-2.1.1.tar.gz mkdir ubuntu cd ubuntu

Kemudian, dapatkan pakej sumber Ubuntu:

apt-get source hello-debhelper cd ..

Seperti contoh terdahulu, perkara pertama yang perlu kita lakukan adalah membongkar tarball asal (hulu).

tar -xzvf hello-2.1.1.tar.gz

Daripada menyalin tarball hulu ke hello_2.1.1.orig.tar.gz seperti yang kita lakukan dalam contoh terdahulu, kita akan membiarkan dh_make melakukan kerja untuk kita. Satu-satunya perkara yang perlu anda lakukan ialah menamakan semula folder sumber supaya ia dalam bentuk - di mana packagename adalah huruf kecil. Dalam kes ini, hanya untul tarball menghasilkan direktori sumber yang diberi nama dengan betul supaya kami dapat memindahkannya:

cd hello-2.1.1

Untuk membuat "pembubaran" permulaan sumber kami akan menggunakan dh_make .

dh_make -e your.maintainer@address -f ../hello-2.1.1.tar.gz

dh_make kemudian akan bertanya kepada anda beberapa soalan:

Jenis pakej: biner tunggal, berbilang binari, perpustakaan, modul kernel atau cdbs? [s / m / l / k / b] s
Nama pengemaskin: Kapten Packager Alamat Email: packager@coolness.com Tarikh: Thu, 6 Apr 2006 10:07:19 -0700 Nama Pakej: hello Versi: 2.1.1 Lesen: kosong Jenis Pakej: Single Hit to sahkan: Masukkan


[Awas]

Hanya jalankan dh_make -e sekali. Jika anda menjalankannya semula selepas anda melakukannya buat kali pertama, ia tidak berfungsi dengan betul. Sekiranya anda ingin mengubahnya atau membuat kesalahan, keluarkan direktori sumber dan untar semula tarball hulu. Kemudian anda boleh berhijrah ke direktori sumber dan cuba lagi.

Running dh_make -e melakukan dua perkara:

Program Hello tidak terlalu rumit, dan seperti yang telah kita lihat di bahagian yang dipanggil "Pembungkusan Dari Scratch", pembungkusan itu tidak memerlukan lebih banyak daripada fail asas. Oleh itu, mari kita keluarkan fail .ex :

cd debian rm * .ex * .EX

Halo , anda juga tidak akan

* Lesen

* Indeks Panduan Pembungkusan Ubuntu

perlu README.Debian (fail README untuk isu Debian tertentu, bukan program README), dirs (digunakan oleh dh_installdirs untuk membuat direktori yang diperlukan), docs (digunakan oleh dh_installdocs untuk memasang dokumentasi program), atau info (digunakan oleh dh_installinfo untuk memasang info fail) ke dalam direktori debian . Untuk maklumat lanjut mengenai fail ini, lihat bahagian yang dipanggil "contoh fail dh_make".

Pada ketika ini, anda hanya perlu menukar fail changelog , kompat , kawalan , hak cipta , dan peraturan dalam direktori debian . Dari seksyen yang disebut "Pembungkusan Dari Gores", satu-satunya fail yang baru adalah kompat , iaitu satu fail yang mengandungi versi debelper (dalam kes ini 4) yang digunakan.

Anda perlu menyesuaikan changelog sedikit dalam kes ini untuk menunjukkan bahawa pakej ini dinamakan hello-debhelper daripada hanya hello :

hello-debhelper (2.1.1-1) dapper; urgensi = rendah * Pelepasan awal - Kapten Packager Thu, 6 Apr 2006 10:07:19 -0700

Dengan menggunakan pembangun , perkara-perkara yang perlu diubah adalah nama (menggantikan hello-debhelper ) dan menambah debhelper (> = 4.0.0) ke medan Build-Depends untuk pakej sumber. Pakej Ubuntu untuk hello-debhelper kelihatan seperti:

Kita boleh menyalin fail hak cipta dan skrip postinst dan prerma dari pakej hello-debhelper Ubuntu, kerana mereka tidak berubah sejak seksyen disebut "Pembungkusan Dari Gores". Kami juga akan menyalin fail peraturan supaya kami dapat memeriksanya.

cp ../../ubuntu/hello-debhelper-2.1.1/debian/copyright. cp ../../ubuntu/hello-debhelper-2.1.1/debian/postinst. cp ../../ubuntu/hello-debhelper-2.1.1/debian/prerm. cp ../../ubuntu/hello-debhelper-2.1.1/debian/rules.

Fail terakhir yang perlu kita lihat adalah peraturan , di mana kuasa skrip debelper dapat dilihat. Versi peraturan debelper agak kecil (54 baris berbanding dengan 72 baris dalam versi dari seksyen yang disebut "peraturan").

Versi debelper kelihatan seperti:

#! / usr / bin / make -f package = hello-debhelper CC = gcc CFLAGS = -g -Wall ifeq (, $ findstring noopt, $ (DEB_BUILD_OPTIONS))) CFLAGS + = -O2 endif #export DH_VERBOSE = : dh_testdir dh_clean rm -f build - $ (MAKE) -i distclean install: build dh_clean dh_installdirs $ prefix = $ (CURDIR) / debian / $ (package) / usr \ mandir = $ (CURDIR) / debian / / package / man \ infodir = $ (CURDIR) / debian / $ (pakej) / usr / share / info \ install build: ./configure --prefix = / usr $ (MAKE) CC = "$ (CC) "CFLAGS =" $ (CFLAGS) "

sentuhan membina binari-indep: pasang # Tidak ada fail-bebas yang tidak boleh dibina untuk dimuat naik # yang dihasilkan oleh pakej ini. Jika ada apa-apa mereka akan # dibuat di sini. binary-arch: install dh_testdir -a dh_testroot -a dh_installdocs -a NEWS dh_installchangelogs -a ChangeLog dh_strip -a dh_compress -a dh_fixperms -a dh_installdeb -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a dh_builddeb -a binary: binary-indep binary- gerbang .PHONY: binary-arch binary-indep checkroot bersih

Perhatikan bahawa tugas-tugas seperti ujian jika anda berada dalam direktori yang betul ( dh_testdir ), pastikan anda sedang membina pakej dengan keistimewaan root ( dh_testroot ), memasang dokumentasi ( dh_installdocs dan dh_installchangelogs ), dan membersihkan setelah membina ( dh_clean ) . Banyak pakej yang lebih rumit daripada hello mempunyai fail peraturan tidak lebih besar kerana skrip debhelper mengendalikan kebanyakan tugas. Untuk senarai lengkap skrip debelper , sila lihat bahagian yang dipanggil "Senarai skrip debelper ". Mereka juga didokumenkan dengan baik di halaman lelaki masing-masing. Ia adalah latihan berguna untuk membaca halaman lelaki (mereka ditulis dengan baik dan tidak panjang) untuk setiap skrip pembantu yang digunakan dalam fail peraturan di atas.