Ubuntu Packaging Guide

ເອກສານ

ການຫຸ້ມຫໍ່ດ້ວຍ Debhelper


[ສໍາຄັນ]

ຄວາມຕ້ອງການ: ຄວາມຕ້ອງການຈາກສ່ວນທີ່ເອີ້ນວ່າ "ການບັນຈຸຈາກການຂູດ" ລວມທັງ debhelper ແລະ dh-make

ໃນຖານະເປັນເຄື່ອງຫຸ້ມຫໍ່, ທ່ານຈະບໍ່ຄ່ອຍສ້າງຊຸດຈາກ scratch ຕາມທີ່ພວກເຮົາໄດ້ເຮັດໃນສ່ວນທີ່ຜ່ານມາ. ດັ່ງທີ່ທ່ານສາມາດຈິນຕະນາການ, ຫຼາຍໆຫນ້າວຽກແລະຂໍ້ມູນໃນໄຟລ໌ ກົດລະບຽບ , ສໍາລັບການຍົກຕົວຢ່າງ, ແມ່ນເປັນປະໂຫຍດຕໍ່ການຫຸ້ມຫໍ່. ເພື່ອເຮັດໃຫ້ການຫຸ້ມຫໍ່ງ່າຍແລະມີປະສິດທິພາບຫຼາຍ, ທ່ານສາມາດໃຊ້ debhelper ເພື່ອຊ່ວຍວຽກງານເຫຼົ່ານີ້. Debhelper ແມ່ນຊຸດຂອງ Perl script (prefixed with dh_ ) ທີ່ອັດຕະໂນມັດຂະບວນການຂອງການກໍ່ສ້າງຊຸດ. ດ້ວຍສະຄິບເຫຼົ່ານີ້, ການກໍ່ສ້າງຊຸດ Debian ກາຍເປັນເລື່ອງງ່າຍໆ.

ໃນຕົວຢ່າງນີ້, ພວກເຮົາຈະກໍ່ສ້າງຊຸດ GNU Hello ອີກເທື່ອຫນຶ່ງ, ແຕ່ເວລານີ້ພວກເຮົາຈະປຽບທຽບວຽກງານຂອງພວກເຮົາກັບຊຸດ Ubuntu hello-debhelper . ອີກຄັ້ງ, ສ້າງໄດເລກະທໍລີທີ່ທ່ານຈະເຮັດວຽກ:

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

ຫຼັງຈາກນັ້ນ, ໄດ້ຮັບການແພັກເກດແຫຼ່ງ Ubuntu:

apt-get source hello-debhelper cd ..

ເຊັ່ນດຽວກັນກັບຕົວຢ່າງທີ່ຜ່ານມາ, ສິ່ງທໍາອິດທີ່ພວກເຮົາຕ້ອງເຮັດແມ່ນຖອດຖົງ tarball ຕົ້ນສະບັບ (upstream).

tar-xzvf hello-2.1.1.tar.gz

ແທນທີ່ຈະຄັດລອກ tarball upstream ເພື່ອ hello_2.1.1.orig.tar.gz ດັ່ງທີ່ພວກເຮົາໄດ້ເຮັດໃນຕົວຢ່າງກ່ອນຫນ້ານີ້, ພວກເຮົາຈະໃຫ້ dh_make ເຮັດວຽກສໍາລັບພວກເຮົາ. ສິ່ງດຽວທີ່ທ່ານຕ້ອງເຮັດຄືການປ່ຽນຊື່ໂຟນເດີດັ່ງນັ້ນມັນຢູ່ໃນຮູບແບບ - ບ່ອນທີ່ packagename ເປັນຕົວພິມເລັກ. ໃນກໍລະນີນີ້, ພຽງແຕ່ untarring tarball ຜະລິດເປັນແຫຼ່ງຊື່ທີ່ຖືກຕ້ອງດັ່ງນັ້ນພວກເຮົາສາມາດຍ້າຍເຂົ້າໄປໃນມັນ:

cd hello-2.1.1

ເພື່ອສ້າງ "debianization" ໃນເບື້ອງຕົ້ນຂອງແຫຼ່ງທີ່ພວກເຮົາຈະນໍາໃຊ້ dh_make .

dh_make-e yourmaintainer @ address-f /hello-211targz

dh_make ແລ້ວຈະຖາມທ່ານຊຸດຄໍາຖາມ:

ປະເພດຂອງການຫຸ້ມຫໍ່: ຄູ່ດຽວ, ຖານສອງ, ຫໍສະມຸດ, ໂມດູນ kernel ຫຼື cdbs? [s / m / l / k / b] s
ຊື່ຜູ້ຮັກສາ: Captain Packager Email-address: packager@coolness.com ວັນທີ: ພຸດ, 6 ເມສາ 2006 10:07:19 -0700 ຊື່ຊຸດ: ສະບາຍດີເວີຊັນ: 2.1.1 ໃບອະນຸຍາດ: blank ປະເພດຂອງຊຸດ: Single Hit to ຢືນຢັນ: ກະລຸນາໃສ່


[ຄໍາເຕືອນ]

ພຽງແຕ່ດໍາເນີນການ dh_make-e ເທົ່ານັ້ນ. ຖ້າທ່ານໃຊ້ມັນອີກເທື່ອຫນຶ່ງຫຼັງຈາກທີ່ທ່ານເຮັດມັນຄັ້ງທໍາອິດ, ມັນຈະບໍ່ເຮັດວຽກຢ່າງຖືກຕ້ອງ. ຖ້າທ່ານຕ້ອງການປ່ຽນແປງມັນຫຼືເຮັດຜິດ, ໃຫ້ລຶບເອົາໄດເລກະທໍລີແຫຼ່ງຂໍ້ມູນແລະເປີດໃຫມ່ tarball upstream. ຫຼັງຈາກນັ້ນ, ທ່ານສາມາດເຄື່ອນຍ້າຍເຂົ້າໃນລະບົບແຫຼ່ງແລະພະຍາຍາມອີກເທື່ອຫນຶ່ງ.

ແລ່ນ dh_make -e ເຮັດສອງສິ່ງ:

ໂຄງການ Hello ບໍ່ແມ່ນສັບສົນຫຼາຍ, ແລະດັ່ງທີ່ພວກເຮົາໄດ້ເຫັນໃນສ່ວນທີ່ເອີ້ນວ່າ "Packaging From Scratch", ການຫຸ້ມຫໍ່ມັນບໍ່ຈໍາເປັນຕ້ອງມີຫຼາຍກ່ວາໄຟລ໌ພື້ນຖານ. ດັ່ງນັ້ນ, ໃຫ້ພວກເຮົາເອົາໄຟລ໌ .ex :

cd debian rm * ex * EX

ສໍາລັບ ສະບາຍດີ , ທ່ານກໍ່ຈະບໍ່ໄດ້

* ໃບອະນຸຍາດ

* Ubuntu Packaging Guide Index

ຕ້ອງການ README.Debian (ໄຟລ໌ README ສໍາລັບບັນຫາ Debian, ບໍ່ແມ່ນ README ຂອງໂຄງການ), dirs (ໃຊ້ dh_installdirs ເພື່ອສ້າງລາຍຊື່ທີ່ຈໍາເປັນ), docs (ໃຊ້ dh_installdocs ເພື່ອຕິດຕັ້ງເອກະສານໂຄງການ), ຫຼື ຂໍ້ມູນ (ໃຊ້ dh_installinfo ເພື່ອຕິດຕັ້ງຂໍ້ມູນ ໄຟລ໌) ໃນໄຟລ໌ debian . ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບໄຟລ໌ເຫຼົ່ານີ້, ເບິ່ງພາກເອີ້ນວ່າ "dh_make example files".

ໃນຈຸດນີ້, ທ່ານຄວນຈະມີໄຟລ໌ ປ່ຽນແປງ , compat , ຄວບຄຸມ , ລິຂະສິດ ແລະໄຟລ໌ ລະບຽບ ໃນ debian directory ເທົ່ານັ້ນ. ຈາກສ່ວນທີ່ເອີ້ນວ່າ "Packaging From Scratch", ໄຟລ໌ດຽວທີ່ໃຫມ່ແມ່ນ compat , ເຊິ່ງເປັນໄຟລ໌ທີ່ມີບັນດາ debhelper version (ໃນກໍລະນີນີ້ 4) ທີ່ຖືກນໍາໃຊ້.

ທ່ານຈໍາເປັນຕ້ອງປັບປຸງການ ປ່ຽນແປງ ເລັກນ້ອຍໃນກໍລະນີນີ້ເພື່ອສະທ້ອນໃຫ້ເຫັນວ່າຊຸດນີ້ແມ່ນຊື່ hello-debhelper ແທນທີ່ຈະເປັນພຽງແຕ່ ສະບາຍດີ :

hello-debhelper (2.1.1-1) dapper; urgency = low * ການເປີດຕົວໃນເບື້ອງຕົ້ນ - Captain Packager Thu, 6 Apr 2006 10:07:19 -0700

ໂດຍໃຊ້ debhelper , ສິ່ງດຽວທີ່ພວກເຮົາຕ້ອງການປ່ຽນແປງໃນ ການຄວບຄຸມ ແມ່ນຊື່ (ແທນທີ່ hello for hello-debhelper ) ແລະເພີ່ມ debhelper (> = 4.0.0) ໄປ ທີ່ ພາກສະຫນາມ ການກໍ່ສ້າງຂຶ້ນຢູ່ກັບ ໂປແກຼມຕົ້ນສະບັບ . ຊຸດ Ubuntu ສໍາລັບ hello-debhelper ຄ້າຍຄື:

ພວກເຮົາສາມາດຄັດລອກໄຟລ໌ ລິຂະສິດ ແລະສະ ຄິບ postinst ແລະ prerm ຈາກຊຸດ Ubuntu hello-debhelper , ຍ້ອນວ່າພວກມັນຍັງບໍ່ປ່ຽນແປງນັບຕັ້ງແຕ່ພາກທີ່ເອີ້ນວ່າ "ການບັນຈຸຈາກການຂູດ". ພວກເຮົາຍັງຈະຄັດລອກໄຟລ໌ ກົດລະບຽບ ດັ່ງນັ້ນພວກເຮົາສາມາດກວດສອບມັນໄດ້.

cp / /ubuntu/hello-debhelper-211 /debian/copyright cp / ubuntu / ello-debhelper-211 / debian / postinst cp / /ubuntu/hello-debhelper-211 /debian/prerm cp / /ubuntu/hello-debhelper-211 /debian/rules

ໄຟລ໌ສຸດທ້າຍທີ່ພວກເຮົາຕ້ອງການເບິ່ງແມ່ນ ກົດລະບຽບ , ບ່ອນທີ່ພະລັງງານຂອງ script debhelper ສາມາດເບິ່ງໄດ້. ສະບັບພາສາຂອງ debhelper ແມ່ນເລັກຫນ້ອຍ (54 ເສັ້ນກົງກັນຂ້າມກັບ 72 ເສັ້ນໃນສະບັບຈາກພາກເອີ້ນວ່າ "ກົດລະບຽບ").

ຮຸ່ນ debhelper ຄື:

#! / 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 / $ (package) / usr / share / man \ infodir = $ (CURDIR) / debian / $ (package) / usr / share / info \ install build: / configure -prefix = / usr $ (MAKE) CC = "$ (CC) "CFLAGS =" $ (CFLAGS) "

ແຕະຕ້ອງການສ້າງ binary-indep: install # ບໍ່ມີໄຟລ໌ເອກະສານແບບເອກະລາດທີ່ຈະອັບໂຫລດ # ສ້າງໂດຍຊຸດນີ້. ຖ້າຫາກວ່າມີສິ່ງໃດກໍ່ຕາມພວກເຂົາຈະຖືກເຮັດໃຫ້ຢູ່ທີ່ນີ້. 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: bininary bin-bin, bin-bin, checkinot ທີ່ສະອາດ

ໃຫ້ສັງເກດວ່າວຽກຕ່າງໆເຊັ່ນການທົດສອບຖ້າທ່ານຢູ່ໃນໄດເລກະທໍລີທີ່ຖືກຕ້ອງ ( dh_testdir ), ໃຫ້ແນ່ໃຈວ່າທ່ານກໍາລັງສ້າງຊຸດດ້ວຍສິດທິຮາກ ( dh_testroot ), ການຕິດຕັ້ງເອກະສານ ( dh_installdocs ແລະ dh_installchangelogs ) ແລະການທໍາຄວາມສະອາດຫຼັງຈາກການສ້າງ ( dh_clean ) ທີ່ຢູ່ ແພກເກດຈໍານວນຫຼາຍມີຄວາມສັບສົນຫຼາຍກວ່າ ສະບາຍດີ ມີໄຟລ໌ ກົດລະບຽບ ບໍ່ມີຂະຫນາດໃຫຍ່ເພາະວ່າ scripts debhelper ຈັດການຫລາຍທີ່ສຸດ. ສໍາລັບບັນຊີລາຍຊື່ຄົບຖ້ວນຂອງ script debhelper , ກະລຸນາເບິ່ງສ່ວນທີ່ເອີ້ນວ່າ "List of script debhelper ". ພວກເຂົາຍັງມີເອກະສານທີ່ດີຢູ່ໃນຫນ້າ ຜູ້ຊາຍ ຂອງເຂົາເຈົ້າ. ມັນເປັນບົດຝຶກຫັດທີ່ເປັນປະໂຫຍດທີ່ຈະອ່ານຫນ້າຜູ້ຊາຍ (ພວກເຂົາຂຽນໄດ້ດີແລະບໍ່ຍາວ) ສໍາລັບສະຄຣິບແຕ່ລະຄົນທີ່ໃຊ້ໃນ ລະບຽບກົດລະບຽບ ຂ້າງເທິງ.