Ubuntu Packaging Guide

Dokumentasi

Kemasan karo Debhelper


[Penting]

Syarat: Syarat saka bagean kasebut yaiku "Packaging From Scratch" plus debhelper lan dh-make

Minangka packager, sampeyan bakal arang nggawe paket saka awal minangka kita wis rampung ing bagean sadurungé. Minangka sampeyan bisa mbayangno, akeh tugas lan informasi ing file aturan , kayata, umum kanggo paket. Kanggo nggawe kemasan luwih gampang lan luwih efisien, sampeyan bisa nggunakake debhelper kanggo mbantu tugas kasebut. Debhelper arupa set script Perl (prefixed with dh_ ) sing ngotomatisasi proses paket-bangunan. Kanthi skrip iki, mbangun paket Debian cukup prasaja.

Ing conto iki, kita bakal mbangun paket Hello GNU maneh, nanging wektu iki kita bakal mbandhingake karya kita kanggo paket Ubuntu hello-debhelper . Maneh, nggawe direktori sing bakal digunakake:

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

Banjur, njaluk paket sumber Ubuntu:

apt-get source hello-debhelper cd ..

Kaya conto sadurunge, bab pisanan sing kudu kita gunakake yaiku mbongkar tarball asli (hulu).

tar -xzvf hello-2.1.1.tar.gz

Tinimbang nyalin tarball hulu menyang hello_2.1.1.orig.tar.gz kaya sing kita kerjane ing conto sadurungé, kita bakal ngidini dh_make nindakake karya kasebut kanggo kita. Ing bab mung sampeyan kudu ngganti jeneng folder sumber supaya ana ing wangun - ing ngendi packagename dadi huruf cilik. Ing kasus iki, mung nglakoni tarball ngasilake direktori sumber kanthi bener supaya bisa pindhah menyang:

cd hello-2.1.1

Kanggo nggawe "debianisasi" wiwitan saka sumber, kita bakal nggunakake dh_make .

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

dh_make banjur takon sampeyan karo pirang-pirang pitakonan:

Jenis paket: biner tunggal, pirang-pirang biner, perpustakaan, modul kernel utawa cdbs? [s / m / l / k / b] s
Jeneng pangadran: Kapten Packager Email Address: packager@coolness.com Tanggal: Thu, 6 Apr 2006 10:07:19 -0700 Jeneng paket: hello Versi: 2.1.1 Lisensi: kosong Tipe paket: Single Hit to konfirmasi: Ketik


[Caution]

Mung mbukak dh_make -e sapisan. Yen sampeyan mbukak maneh sawise sampeyan nglakoni, sapisanan, ora bisa mlaku kanthi bener. Yen sampeyan pengin ngganti utawa gawe kesalahan, mbusak direktori sumber lan ngganti tarball hulu maneh. Banjur sampeyan bisa pindhah menyang direktori sumber lan coba maneh.

Running dh_make -e nglakoni rong perkara:

Program Hello ora banget rumit, lan sing katon ing bagean kasebut yaiku "Packaging From Scratch", kemasan kasebut ora mbutuhake luwih akeh tinimbang file dhasar. Mulane, ayo padha mbusak file .ex :

cd debian rm * .ex * .EX

Halo , sampeyan uga ora

* Lisènsi

* Indeks Guide Packaging Ubuntu

perlu README.Debian (file README kanggo masalah Debian khusus, ora program README), dirs (digunakake dening dh_installdirs kanggo nggawe petunjuk sing dibutuhake), docs (digunakake dening dh_installdocs kanggo nginstal dokumentasi program), utawa info (digunakake dening dh_installinfo kanggo nginstal info file) menyang direktori debian . Kanggo informasi luwih lengkap ing file kasebut, pirsani bagean sing disebut "dh_make umpamane file".

Ing titik iki, sampeyan mung kudu ngubah file changelog , kompat , kontrol , hak cipta , lan aturan ing direktori debian . Saka bagean kasebut disebut "Packaging From Scratch", mung berkas sing anyar yaiku kompat , yaiku file sing ngandhut versi debhelper (ing kasus 4 iki) sing digunakake.

Sampeyan kudu nyetel changelog rada ing kasus iki kanggo nggambarake yen paket iki dijenengi hello-debhelper tinimbang mung hello :

hello-debhelper (2.1.1-1) dapper; urgency = low * Release rilis - Kapten Packager Thu, 6 Apr 2006 10:07:19 -0700

Kanthi nggunakake panyuntingan , mung siji sing kudu diganti dadi jeneng (diganti hello-debhelper ) lan nambah debhelper (> = 4.0.0) menyang lapangan Build-Depends kanggo paket sumber. Paket Ubuntu kanggo hello-debhelper katon kaya:

Kita bisa nyalin file hak cipta lan postinst lan script prerma saka paket Ubuntu hello-debhelper , amarga durung diganti wiwit bagean kasebut disebut "Packaging From Scratch". Kita uga nyalin file aturan supaya kita bisa mriksa.

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.

File pungkasan sing perlu kita tingali yaiku aturan , endi kuwasane skrip debhelper bisa dideleng. Versi debelper aturan luwih cilik (54 baris sing bertentangan karo 72 baris versi saka bagian sing disebut "aturan").

Versi debhelper katon kaya:

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

tutul mbangun binar-indep: nginstal # Ora ana file-file arsitèktur sing bakal diunggahaké # dibentuk déning paket iki. Yen ana apa-apa, dheweke bakal dadi # digawe ing kene. binary-arch: nginstal 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 binary - arch binary - indep checkroot resik

Priksa manawa tugas kaya nguji yen sampeyan ana ing direktori tengen ( dh_testdir ), nggawe manawa sampeyan mbangun paket kasebut kanthi hak istimewa root ( dh_testroot ), nginstal dokumentasi ( dh_installdocs, dh_installchangelogs ), lan mbenakake sawise mbangun ( dh_clean ) ditangani kanthi otomatis . Akeh paket luwih rumit tinimbang hello duwe aturan file ora luwih gedhe amarga script debhelper nangani paling tugas. Kanggo dhaptar lengkap tulisan skrip, pirsani bagéan sing disebut "Dhaftar skrip debhelper ". Padha uga didhelikake ing kaca manawa. Iki minangka latihan migunani kanggo maca kaca manusane (padha ditulis kanthi apik lan ora dawa) kanggo saben skrip penolong sing digunakake ing berkas aturan ndhuwur.