Ubuntu Packaging колдонмо

Documentation

Debhelper менен А.Н.


[Маанилүү]

Талаптар: "нөлдөн баштап Packaging" деп аталган бөлүмүнөн талаптар плюс debhelper жана оданда-кантип

бир Packager катары сиз Мурдакы бөлүмдө да кылган эле сейрек башынан пакеттерди түзөт. Сиз да, мисалы, эрежелер кезекте милдеттерди жана маалымат көп, пакеттердин үчүн жалпы болуп саналат. Пакеттөөдөн жөнөкөй жана натыйжалуу болушу үчүн, бул милдеттер менен жардам debhelper колдоно аласыз. Debhelper Perl жазууларында (dh_ менен жакка) пакеттүү, курулуш жараянын автоматташтыруу жыйындысы болуп саналат. Бул ариби менен, бир Debian топтомун куруу абдан жөнөкөй болуп калат.

Бул мисалда, биз кайрадан GNU Hello топтомун курууга болот, бирок, бул жолу биз Ubuntu койбойлубу-debhelper пакетин биздин ишин салыштырып болот. Кайра эле, иштеп турган каталогун түзүү:

mkdir ~ / салам-debhelper CD ~ / салам-debhelper ачуу http://ftp.gnu.org/gnu/hello/hello-2.1.1.tar.gz mkdir Ubuntu CD Ubuntu

Андан кийин, Ubuntu булагы пакетти ала алышат:

ап-кечеден булагы жазып койбойлубу-debhelper CD ..

Өткөн Мисалы окшоп, биз эмне кылышыбыз керек биринчи баштапкы (жогору) tarball топтому болуп саналат.

Тар -xzvf салам-2.1.1.tar.gz

Анын ордуна, биз өткөн Мисалы окшоп hello_2.1.1.orig.tar.gz суунун tarball көчүрүп, биз dh_make биз үчүн ишти аткарууга уруксат берет. Сен эмне үчүн бир гана нерсе ал түрүндө, ошондуктан булагы папканы атын болот - packagename тамга болуп саналат <версия>. Бул учурда, бир гана tarball untarring биз ага түрткү берет, ошондуктан бул туура булагы каталогду деген өндүрөт:

CD салам-2.1.1

Биз dh_make колдоно турган булагынын баштапкы "debianization" түзүү.

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

dh_make анда силерди бир катар суроолорду суроо берейин:

Топтомдун Түрү: бир бинардык, бир нече бинардык, китепкана, ядронун модулдан же cdbs? [с / м / л / к / б] с
Тейлөөчү аты: Captain Packager Email-дареги: packager@coolness.com Date: Thu, 6 Apr 2006 10:07:19 -0700 Топтом Аты-жөнү: койбойлубу Version: 2.1.1 License: пакетин бош Түрү: Single Hit <кирүүгө> менен ырастоо: кириш


[Эскертүү]

Бир гана жолу dh_make -E чуркап. Эгер сиз аны биринчи жолу эмне менен дагы бир жолу Нускасы болсо, анда тийиштүү түрдө иштебейт. Аны же ката кылып өзгөрткүбүз келсе, анда булагы каталогун алып, башка өлкөлөргө кетүүгө жогору tarball untar. Ошондо булагы каталогуна кыдырып көчүп, дагы бир жолу аракет болот.

Running dh_make -E эки нерсени кылат:

Hello программасы өтө татаал эмес, жана биз пакеттөөдөн "нөлдөн баштап Packaging" деп аталган бөлүмүндө көрдүм эле негизги документтеринде алда канча көп талап кылбайт. Андыктан, келгиле, .Мурдагы материалдары алып көрөлү:

CD дебиан погондук * .Мурдагы * Аллауинин

Жазып алуу үчүн, силер да, жок кылбайм,

* License

* Ubuntu Packaging колдонмо Index

керек README.Debian (конкреттүү Debian маселелер боюнча README билэни эмес, Программанын README), К (зарыл болгон маалымат китепчелерин түзүү dh_installdirs тарабынан колдонулат), документтер маалыматын орнотуу dh_installinfo менен, же маалыматын (колдонгон (программалык документтерди орнотуу dh_installdocs тарабынан колдонулган) билэ) дебиан каталогуна кыдырып кирип берген. Алардын жөнүндө көбүрөөк маалымат алуу үчүн, "dh_make мисал Files" деген бөлүмүн карагыла.

Бул жерде сиз гана өзгөрүү, compat, башкаруу, укук болушу керек, жана дебиан каталогдо билэлэри эрежелери. "Нөлдөн баштап Packaging" деп аталган бөлүмгө тартып, жаңы гана билэ колдонулат debhelper нускасын камтыган билэ (бул учурда 4) болуп саналат, compat болуп саналат.

Бул таңгак гана жазып койбойлубу көрө, жазып-debhelper аталган экенин көрсөтүү үчүн, Сиз бул учурда бир аз өзгөрүү өзгөртүш керек болот:

салам-debhelper (2.1.1-1) dapper; актуалдуулугу = аз * Алгачкы чыгарылыш - Captain Packager Thu, 6 Apr 2006 10:07:19 -0700

Debhelper пайдалануу менен, биз көзөмөл өзгөртүү керек эле нерселер булагы пакети үчүн Build-каранды талаасына аты-жөнү (салам-debhelper үчүн жазып койбойлубу алмаштыруучу) жана кошуп debhelper (> = 4.0.0) болуп саналат. Салам-debhelper үчүн Ubuntu пакети болот:

Биз алар "нөлдөн баштап Packaging" деп аталган бөлүмгө бери эч өзгөргөн жок эле, Ubuntu койбойлубу-debhelper пакеттеги укук сааты жана postinst жана prerm скрипттерди көчүрүүгө болот. Ошондой эле, эрежелер, биз аны карап аласыз берүүгө көчүрөт.

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 версия бир аз ( "эрежелери" деп аталган бөлүмүнөн нускасы 72 линияларын каршы 54 саптар).

Debhelper чыгаруу болот:

#! / Окудум / бин / кылып -f топтом = койбойлубу-debhelper CC = ДжСС CFLAGS = -G -Wall ifeq ($ (findstring noopt, $ (DEB_BUILD_OPTIONS))) CFLAGS + = -O2 endif #export DH_VERBOSE = 1 таза : dh_testdir dh_clean погондук -f курууга - $ (ЧЫГАР) -i distclean орнотуу: курууга dh_clean dh_installdirs $ (ЧЫГАР) приставка = $ (CURDIR) / дебиан / $ (пакет) / окудум \ мандер = $ (CURDIR) / дебиан / $ (пакет) / окудум / үлүшү / адам \ infodir = $ (CURDIR) / дебиан / $ (пакет) / окудум / үлүшү / Info \ куруп орнотуу: ./configure --prefix = / окудум $ (ЧЫГАР) CC = "$ (CC) "CFLAGS =" $ (CFLAGS) "

сенсордук бинардык-инд куруу: # орнотуу бул топтому тарабынан эч кандай архитектура-карандысыз делолору # жүктөп алуу зарыл. кайсы жерде болсо, алар бул жерде жасаган # болот. бинардык-арка: орнотуу dh_testdir биригип dh_testroot биригип dh_installdocs биригип NEWS dh_installchangelogs биригип Changelog dh_strip биригип dh_compress биригип dh_fixperms биригип dh_installdeb биригип dh_shlibdeps биригип dh_gencontrol биригип dh_md5sums биригип dh_builddeb биригип бинардык: бинардык-инд binary- арка .PHONY: бинардык бинардык-арка бинардык-инд таза checkroot

Туура каталогдо болсо сыноо сыяктуу милдеттери аларлык (dh_testdir), тамыр сени кармап сыймыктуу топтомун куруп жаткан жагарын (dh_testroot), документтерди (dh_installdocs жана dh_installchangelogs) орнотуу жана куруу (dh_clean) кийин тазалоо жазуусу катышкан жатышат . Көптөгөн топтомдор койбойлубу эрежелерин алда канча татаал debhelper ариптерин иштердин көпчүлүгү туура, анткени эч кандай көп берген. Debhelper скриптердин толук тизмесин көрүү үчүн, "debhelper скриптердин тизмеси" деп аталган бөлүмүн карагыла. Ошондой эле алар, ошондой эле алардын тиешелүү адам беттеринде менен таризделет. Жогоруда эрежелери делосуна колдонулган ар бир жардамчы скрипти үчүн адам баракты окуп пайдалуу Көнүгүү (жакшы жазуу жана узак эмес) болуп саналат.