Förpackning med Debhelper
Viktig Krav: Kraven i avsnittet "Packaging From Scratch" plus debhelper och dh-make Som en förpackning kommer du sällan att skapa paket från början som vi har gjort i föregående avsnitt. Som du kan föreställa dig, många av uppgifterna och informationen i regler Fil, till exempel, är vanliga för paket. För att göra förpackningen enklare och effektivare kan du använda debhelper att hjälpa till med dessa uppgifter. Debhelper är en uppsättning Perl-skript (prefixed with dh_) som automatiserar processen med paketuppbyggnad. Med dessa skript blir det enkelt att bygga ett Debian-paket. I det här exemplet kommer vi återigen att bygga GNU Hello-paketet, men den här gången kommer vi att jämföra vårt arbete med Ubuntu hello-debhelper paket. Återigen, skapa en katalog där du kommer att arbeta: Ta sedan Ubuntu-källkodspaketet: Som det föregående exemplet är det första som vi behöver göra att packa upp den ursprungliga (uppströms) tarballen. I stället för att kopiera uppströms tarball till hello_2.1.1.orig.tar.gz som vi gjorde i föregående exempel kommer vi att låta dh_make gör jobbet för oss. Det enda du behöver göra är att byta namn på källkatalogen så att den är i form av
För att skapa den första "debianiseringen" av källan vi använder dh_make. dh_make kommer då att fråga dig en rad frågor: Varning Kör bara dh_make -e en gång. Om du kör det igen när du gör det första gången fungerar det inte korrekt. Om du vill ändra det eller göra ett misstag, ta bort källkatalogen och ta bort uppströms tarballen på nytt. Då kan du migrera till källkatalogen och försöka igen. Löpning dh_make -e gör två saker: De Hej Programmet är inte särskilt komplicerat, och som vi har sett i avsnittet "Packaging From Scratch", förpackas det inte mycket mer än de grundläggande filerna. Låt oss därför ta bort .ex filer: För Hej, det kommer du inte heller * Licens * Ubuntu Packaging Guide Index behöver README.Debian (README-fil för specifika Debian-problem, inte programmets README), dirs (Använd av dh_installdirs att skapa nödvändiga kataloger), docs (Använd av dh_installdocs för att installera programdokumentation), eller info (Använd av dh_installinfo för att installera informationsfilen) filer till debian katalogen. Mer information om dessa filer finns i avsnittet "dh_make example files". Vid denna tidpunkt borde du bara ha changelog, compat, kontrollera, upphovsrätt, och regler filer i debian katalogen. Från avsnittet "Packaging From Scratch" är den enda fil som är ny compat, vilket är en fil som innehåller debhelper version (i detta fall 4) som används. Du måste justera changelognågot i detta fall för att återspegla att detta paket heter hello-debhelper snarare än bara Hej: Genom att använda debhelper, det enda vi behöver byta i kontrollera är namnet (ersätter Hej för hello-debhelper) och tillsats debhelper (> = 4.0.0) till Build-Depends fält för källkodspaketet. Ubuntu-paketet för hello-debhelper ser ut som: Vi kan kopiera upphovsrätt fil och postinst och prerm skript från Ubuntu hello-debhelper paketet, eftersom de inte har ändrats sedan avsnittet "Packaging From Scratch". Vi kommer också att kopiera regler fil så vi kan inspektera det. Den sista filen vi behöver titta på är regler, där kraften av debhelper skript kan ses. De debhelper version av regler är något mindre (54 linjer jämfört med 72 linjer i versionen från avsnittet "regler"). De debhelper versionen ser ut som: touch build binär-indep: installera # Det finns inga arkitekturoberoende filer som ska laddas upp # genereras av detta paket. Om det fanns några skulle de vara # gjorda här. binärbåg: installera 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 binär: binär-indep binär- arch .PHONY: binär binär-arch binär-indep ren checkrot Observera att uppgifter som att testa om du är i rätt katalog (dh_testdir), se till att du bygger paketet med root-privilegier (dh_testroot), installation av dokumentation (dh_installdocs och dh_installchangelogs) och städa upp efter byggnaden (dh_clean) hanteras automatiskt. Många paket mycket mer komplicerade än Hej ha regler filer inte större eftersom debhelper skript hanterar de flesta uppgifterna. För en komplett lista över debhelper skript, se avsnittet "List of debhelper skript ". De är också väl dokumenterade i respektive man sidor. Det är en användbar övning att läsa mansidan (de är välskrivna och inte långa) för varje hjälpteman som används i ovanstående regler fil.