Ubuntu Багцын гарын авлага

Баримт бичиг

Дебелпертэй савлах


[Чухал]

Шаардлагууд: "Багцаас хучих Баглаа боодол" дээр нэмэх нь debhelper болон dh-make

Багцлагчийн хувьд бид өмнөх хэсгээс хийснийхээ дараа зураасыг бүтээдэг. Жишээ нь, дүрмийн файлын ихэнх ажил, мэдээллийг олон багцад багцлах нь нийтлэг байдаг. Багцыг хялбар, илүү үр дүнтэй болгохын тулд та даалгавраа ашиглан эдгээр ажлуудыг хийх боломжтой. Дебельпер нь багц хэлбэрийн процессыг автоматжуулахын тулд Perl скриптүүдийн ( dh_ угтвартай) багц юм. Эдгээр скриптүүдийн хамтаар Debian багцыг бүтээх нь маш энгийн байдаг.

Энэ жишээн дээр бид GNU Hello багцыг дахин бүтээх болно. Гэхдээ энэ удаад бид Ubuntu-ийн hello-debhelper багцынхаа ажлыг харьцуулах болно. Дахин хэлэхэд, таны ажиллаж байх санг үүсгэ:

mkdir ~ / сайн уу-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 ..

Өмнөх жишээний нэгэн адил бидний хийх ёстой хамгийн эхний зүйл бол анхны (дээд) tarball-г задална.

tar -xzvf Сайн байна уу-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
Ажиллах зарчим: Ахмад Packager И-мэйл-хаяг: packager@coolness.com Огноо: 2006/04/6 10:07:19 -0700 Багшийн нэр: hello Хувилбар: 2.1.1 Лиценз: хоосон Багцын төрөл: Нэг Hit to confirm: Enter


[Анхааруулга]

Зөвхөн dh_make -e-г нэг удаа ажиллуулаарай. Хэрэв та үүнийг анх удаа хийснийхээ дараа дахин ажиллуулбал энэ нь зөв ажиллахгүй болно. Хэрэв та үүнийг өөрчлөх эсвэл алдаа хийхийг хүсч байвал эх хавтасыг устгаж, дээд tarball-ийг дахин эхлүүлэх хэрэгтэй. Дараа нь та эх хавтас руу шилжиж дахин оролдоно уу.

Dh_make -e ажиллуулах нь хоёр зүйлийг хийдэг:

Hello програм нь маш төвөгтэй биш бөгөөд "Багцаас Scratch" гэж нэрлэгдсэн хэсэгт үзсэний үндсэн дээр үндсэн файлуудаас илүү ихийг шаарддаггүй. Тиймээс, .ex файлуудыг авч үзье:

cd debian rm * .ex * .EX

Сайн уу , та ч гэсэн тэгэхгүй

* Лиценз

* Ubuntu Багцын гарын авлага Индекс

README.Debian (README програмд ​​биш Debian асуудлуудын хувьд README файл), dirs (хэрэгцээтэй файлуудыг үүсгэхийн тулд dh_installdirs ашиглаж байгаа), docs ( dh_installdocs ашигладаг програмын баримт бичиг), эсвэл info ( dh_installinfo- ээс ашиглагдсан мэдээллийг суулгах файл) файлууд нь debian директор дотор ордог. Эдгээр файлуудын талаар дэлгэрэнгүй мэдээллийг "dh_make жишээ файлууд" хэсгээс үзнэ үү.

Энэ үед та debian директор дотор зөвхөн changelog , compat , control , зохиогчийн эрх , дүрмүүдийн файлуудтай байх ёстой. "Сав баглаа боодолоос Баглаа боодол" гэж нэрлэсний дагуу, шинэ цорын ганц файл нь compat бөгөөд энэ нь дилүү хувилбарыг (энэ тохиолдолд 4) агуулсан файл юм.

Энэ багцыг Hello-г биш харин деклепер гэж нэрлэх болно гэдгийг харуулахын тулд changelog-ийг бага зэрэг тохируулах хэрэгтэй болно.

hello-debhelper (2.1.1-1) dapper; urgency = low * Эхний хувилбар - Captain Packager Thu, 6 Apr 2006 10:07:19 -0700

Дэвшлийн хэрэглээг ашиглан хяналтаа өөрчлөх шаардлагатай байгаа зүйлсийн нэр нь нэрийг ( Hello-debelper-ийг орлуулж авахыг хүсч байгаа зүйлүүд ) бөгөөд дебелпер (> = 4.0.0) -ийг эх багцын Build-Depends талбарт нэмнэ. Сайн байцаагчийн Ubuntu багц дараах байдалтай байна:

Бид "Ubuntu From Scratch" гэж нэрлэгдсэн хэсэг нь зохиогчийн эрх бүхий файл, 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.

Хамгийн сүүлийн файлыг харах хэрэгтэй бол дибаг хийгдсэн скриптүүдийн хүчийг харж болох дүрмүүд юм. Дүрмийн дүрмийн хувилбар нь арай бага (54 мөрүүд нь "дүрмүүд" гэж нэрлэгдсэн хэсэг дэх 72 мөртэй харьцуулбал).

Debeller хувилбар нь иймэрхүү харагдана:

#! / 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 цэвэр : dh_testdir dh_clean rm -f build - $ (MAKE) -i distclean install: dh_clean dh_installdirs $ (MAKE) prefix = $ (CURDIR) / debian / $ (багц) / usr \ mandir = $ (CURDIR) / debian / $ / usr / share / man \ infodir = $ (CURDIR) / debian / $ (багц) / usr / share / info \ install build: ./configure --prefix = (CC) "CFLAGS =" $ (CFLAGS) "

touch binary-indep-ийг барих: суулгах # Энэ багцаар үүсгэсэн архитектур-бие даасан файл байхгүй байна. Хэрэв тийм бол тэд энд хийсэн болно. binary-arch: dh_testdir -a dh_testroot -a dh_installdocs -a dh_testroot -a dh_installdocs -a dh_testroot -a dh_installchanges -a Өөрчлөх dhog 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 .ПХОНY: хоёртын хоёртын харалдаа хоёртын ховилтой цэвэр шалгагчийн

Хэрэв та зөв зөвшөөрөгдсөн текст ( dh_testdir ) байгаа бол тест шиг ийм алхмууд байгаа бөгөөд багцыг root зөвшөөрлүүдээр ( dh_testroot ) бүтээж байгаа бөгөөд баримтжуулалтыг ( dh_installdocs болон dh_installchangelogs ) суулгаж бүтээх ( dh_clean ) автоматаар ажиллана гэдгийг цэвэрлэх хэрэгтэй . Сайн даалгаваруудаас хамаагүй илүү төвөгтэй багцууд директоруудын скриптүүд ихэнх даалгавруудыг зохицуулдаг тул дүрмүүдийн файлууд нь том биш байдаг. Дэд бүтцийн скриптүүдийн бүрэн жагсаалтыг " Дадлагдах скриптүүдийн жагсаалт" гэсэн хэсгийг үзнэ үү. Тэдгээр нь тус тусын хүний хуудсандаа сайн баримтжуулсан байдаг. Дээрх дүрмийн файлд ашигласан туслагч скриптийн хувьд хүн хуудсыг (тэдгээр нь маш сайн бичигдсэн бөгөөд урт биш) уншихад хэрэгтэй дасгал юм.