Упатство за Убунту за пакување

Документација

Пакување со Debhelper


[Важно]

Барања: Барањата од делот наречен "Пакување од нула" плус debhelper и dh-make

Како пакувач, ретко ќе создавате пакети од нула, како што направивме во претходниот дел. Како што можете да замислите, многу од задачите и информациите во датотеката за правила , на пример, се заеднички за пакетите. За да го направите пакувањето полесно и поефикасно, можете да го користите debhelper да им помогне со овие задачи. Debhelper е множество скрипти на Perl (префикс со dh_ ) кои го автоматизираат процесот на градење на пакети. Со овие скрипти, изградбата на пакет Debian станува прилично едноставна.

Во овој пример, ние повторно ќе го изградиме GNU Hello package, но овојпат ќе ја споредиме нашата работа со Ubuntu hello-debhelper пакетот. Повторно, креирајте директориум каде што ќе работите:

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

Потоа, земете го изворниот пакет на Ubuntu:

apt-get source hello-debhelper cd ..

Како и претходниот пример, првото нешто што треба да го направиме е да го распакуваме оригиналниот (нагоден) тарбол.

tar -xzvf hello-2.1.1.tar.gz

Наместо да го копирате нагорниот тарбол на hello_2.1.1.orig.tar.gz, како што направивме во претходниот пример, ние ќе дозволиме dh_make да работи за нас. Единственото нешто што треба да направите е да ја преименувате изворната папка, така што е во форма на - каде пакетот е мал. Во овој случај, само отстранување на tarball создава правилно именуван извор за да можеме да се преместиме во него:

cd hello-2.1.1

За да се создаде почетната "debianization" на изворот ние ќе го користиме dh_make .

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

dh_make потоа ќе ве праша серија прашања:

Вид на пакет: еден бинарен, повеќе бинарни, библиотека, кернел модул или cdbs? [s / m / l / k / b] s
Име на одржувачот: Капетан Папакер E-mail адреса: packager@coolness.com Датум: Чет, 6 Април 2006 10:07:19 -0700 Име на пакетот: hello Верзија: 2.1.1 Лиценца: празно Вид на пакет: Единствен Хит to потврди: Внесете


[Внимание]

Држете само dh_make-е еднаш. Ако го стартувате повторно откако ќе го направите за прв пат, нема да работи правилно. Ако сакате да го промените или да направите грешка, отстранете го изворниот директориум и повторно отворете го нагодениот тариф. Потоа можете да мигрирате во изворниот директориум и обидете се повторно.

Вклучување dh_make-e прави две работи:

Програмата Hello не е многу комплицирана, и како што видовме во делот наречен "Пакување од нула", пакувањето не бара многу повеќе од основните датотеки. Затоа, да ги отстраниме .ex датотеките:

cd debian rm * .ex * .EX

За здраво , исто така нема

* Лиценца

* Индекс на Водич за Убунту Пакување

треба README.Debian (датотека README за специфични проблеми со Debian, а не README на програмата), dirs (се користи од dh_installdirs за да се создадат потребни директориуми), docs (се користи од dh_installdocs за инсталирање на документацијата за програмата) или информации (користени од dh_installinfo за да ги инсталираат информациите датотека) датотеки во debian директориумот. За повеќе информации за овие датотеки, видете го делот наречен "датотеки со примери за dh_make".

Во овој момент, треба да имате само датотеки на датотеки changelog , compat , контрола , авторски права и правила во debian директориумот. Од делот наречен "Пакување од нула", единствената датотека што е нова е компатибилноста , што е датотека која ја содржи верзијата debhelper (во овој случај 4) која се користи.

Ќе треба малку да го прилагодите changelog во овој случај за да се рефлектира дека овој пакет е именуван како hello-debhelper, а не само здраво :

hello-debhelper (2.1.1-1) dapper; итноста = ниска * Почетна верзија - Капетан Пакувач Чет, 6 април 2006 10:07:19 -0700

Користејќи debhelper , единствените работи што треба да ги смените во контрола се името (заменувајќи здраво за hello-debhelper ) и додавање debhelper (> = 4.0.0) во полето Build-Depends за изворниот пакет. Пакетот Ubuntu за hello-debhelper изгледа како:

Ние можеме да ја копираме датотеката со авторски права и скриптите за постинст и премер од Ubuntu hello-debhelper пакетот, бидејќи тие не се променети од делот наречен "Пакување од нула". Ние исто така ќе ја копираме датотеката со правилата за да можеме да ја испитаме.

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.

Последната датотека што треба да ја разгледаме е правила , каде што може да се види моќта на debhelper скриптите. Верзијата на правилата на debhelper е малку помала (54 линии, наспроти 72 реда во верзијата од делот наречен "правила").

Верзијата на debhelper изгледа како:

#! / usr / bin / make -f package = hello-debhelper CC = gcc CFLAGS = -g -Well ifeq (, $ (findstring noopt, $ (DEB_BUILD_OPTIONS))) CFLAGS + = -O2 endif #export DH_VERBOSE = 1 чист : 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 / $ (package) / usr / share / info \ install build: ./configure --prefix = / usr $ (MAKE) CC = "$ (package) / usr / share / man \ infodir = $ (CURDIR) / debian / (CC) "CFLAGS =" $ (CFLAGS) "

допир изгради binary-indep: инсталирај # Не постојат архиви независни датотеки да бидат поставени # генерирани од овој пакет. Ако имало било какви ќе бидат направени тука. 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- arch .PHONY: бинарен бинарен-лак бинарен-indep чист checkroot

Забележете дека задачите како тестирање ако сте во вистинскиот директориум ( dh_testdir ), осигурувајќи дека го градите пакетот со привилегии за root ( dh_testroot ), инсталирате документација ( dh_installdocs и dh_installchangelogs ) и чистење по изградбата ( dh_clean ) се постапува автоматски . Многу пакети кои се многу покомплицирани од здравите правила на датотеки не се поголеми, бидејќи скриптите на debhelper се справуваат со повеќето задачи. За комплетна листа на скрипти на debhelper , ве молиме погледнете го делот наречен "Листа на debhelper скрипти". Тие исто така се добро документирани во нивните соодветни страници на човекот . Тоа е корисна вежба за читање на страницата на човекот (тие се добро напишани и не се долги) за секоја помошна скрипта што се користи во горната датотека со правилата .