Skip to main content

Gabay sa Ubuntu Packaging - Packaging sa Debhelper

Subliminal Message Deception - Illuminati Mind Control Guide in the World of MK ULTRA- Subtitles (Hunyo 2025)

Subliminal Message Deception - Illuminati Mind Control Guide in the World of MK ULTRA- Subtitles (Hunyo 2025)
Anonim

Packaging sa Debhelper

Mahalaga

Mga Kinakailangan: Ang mga kinakailangan mula sa seksyon na tinatawag na "Packaging From Scratch" plus debhelper at dh-make

Bilang isang packager, bihira kang lumikha ng mga pakete mula sa simula tulad ng ginawa namin sa nakaraang seksyon. Tulad ng maaari mong isipin, marami sa mga gawain at impormasyon sa panuntunan Halimbawa, ang file ay karaniwan sa mga pakete. Upang gawing mas madali at mas mahusay ang pag-packaging, maaari mong gamitin debelper upang makatulong sa mga gawaing ito. Ang Debhelper ay isang set ng mga script ng Perl (prefixed with dh_) na awtomatiko ang proseso ng pakete-gusali. Sa mga script na ito, ang paggawa ng isang pakete ng Debian ay nagiging simple.

Sa halimbawang ito, muli naming itatayo ang pakete ng GNU Hello, ngunit sa pagkakataong ito ikukumpara namin ang aming gawain sa Ubuntu hello-debhelper pakete. Muli, lumikha ng direktoryo kung saan ka nagtatrabaho:

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

Pagkatapos, kunin ang pakete ng pinagmulang Ubuntu:

apt-get source hello-debhelper cd ..

Tulad ng nakaraang halimbawa, ang unang bagay na kailangan nating gawin ay i-unpack ang orihinal (upstream) tarball.

tar -xzvf hello-2.1.1.tar.gz

Sa halip na kopyahin ang upstream na tarball sa hello_2.1.1.orig.tar.gz tulad ng ginawa namin sa nakaraang halimbawa, hahayaan namin dh_make gawin ang gawain para sa amin. Ang tanging bagay na kailangan mong gawin ay palitan ang pangalan ng folder ng pinagmulan upang ito ay nasa anyo ng - kung saan ang packagename ay maliliit. Sa kasong ito, ang pagdadala lamang ng tarball ay gumagawa ng isang wastong pinangalanan na direktoryo ng pinagmulan upang maaari naming ilipat ito:

cd hello-2.1.1

Upang lumikha ng unang "debianization" ng pinagmulan na gagamitin namin dh_make.

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

Pagkatapos ay hihilingin sa iyo ng dh_make ang isang serye ng mga tanong:

Uri ng pakete: single binary, multiple binary, library, kernel module o cdbs? s / m / l / k / b s Pangalan ng tagapagtustos: Captain Packager Email Address: [email protected] Petsa: Thu, 6 Abril 2006 10:07:19 -0700 Pangalan ng Package: hello Bersyon: 2.1.1 Lisensya: blangko Uri ng Package: Single Hit upang kumpirmahin: Ipasok

Babala

Tumakbo lamang dh_make -e isang beses. Kung patakbuhin mo ulit ito pagkatapos mong gawin ito sa unang pagkakataon, hindi ito gagana ng maayos. Kung nais mong baguhin ito o gumawa ng isang pagkakamali, alisin ang direktoryo ng pinagmulan at untar ang upstream na tarball muli. Pagkatapos ay maaari kang lumipat sa direktoryo ng pinagmulan at subukang muli.

Pagpapatakbo dh_make -e ang dalawang bagay:

  • Lumilikha ng hello_2.1.1.orig.tar.gz file sa direktoryo ng magulang,
  • Lumilikha ng mga pangunahing file na kinakailangan debian / at maraming mga file ng template (.ex) na maaaring kailanganin.

Ang Kamusta ang programa ay hindi masyadong kumplikado, at tulad ng nakita natin sa seksyon na tinatawag na "Packaging From Scratch", ang packaging na ito ay hindi nangangailangan ng higit pa kaysa sa mga pangunahing mga file. Samakatuwid, alisin natin ang .ex mga file:

cd debian rm * .ex * .EX

Para sa Kamusta, hindi ka rin

* Lisensya

* Ubuntu Packaging Guide Index

kailangan README.Debian (README file para sa mga partikular na isyu ng Debian, hindi sa README ng programa), dirs (ginamit ni dh_installdirs upang lumikha ng mga kinakailangang direktoryo), docs (ginamit ni dh_installdocs upang i-install ang dokumentasyon ng programa), o impormasyon (ginamit ni dh_installinfo upang mai-install ang file ng impormasyon) mga file sa debian direktoryo. Para sa karagdagang impormasyon sa mga file na ito, tingnan ang seksyong tinatawag na "dh_make example files".

Sa puntong ito, dapat mayroon ka lamang changelog, compat, kontrolin, copyright, at panuntunan mga file sa debian direktoryo. Mula sa seksyon na tinatawag na "Packaging From Scratch", ang tanging file na bago ay compat, na isang file na naglalaman ng debelper bersyon (sa kasong ito 4) na ginagamit.

Kakailanganin mong ayusin ang changelogbahagyang sa kasong ito upang ipakita na ang paketeng ito ay pinangalanan hello-debhelper sa halip na makatarungan Kamusta:

halo-debhelper (2.1.1-1) dapper; Pagkamaliit = mababa * Paunang release - Captain Packager Thu, 6 Apr 2006 10:07:19 -0700

Sa pamamagitan ng paggamit debelper, ang tanging mga bagay na kailangan nating baguhin kontrolin ang pangalan (substituting Kamusta para sa hello-debhelper) at pagdagdag debhelper (> = 4.0.0) sa Gumawa-Depende field para sa source package. Ang pakete ng Ubuntu para sa hello-debhelper mukhang:

Pinagmulan: halo-debelper Seksyon: devel Priority: extra Maintainer: Capitan Packager Standard-Version: 3.6.1 Build-Depends: debhelper (> = 4) Package: hello-debhelper Architecture: depende sa: $ {shlibs: Depends} Conflicts: hello Nagbibigay: halo Pinalitan: halo Paglalarawan: magandang halimbawa Ang program ng hello ng GNU ay gumagawa ng isang pamilyar, friendly na pagbati. Pinapayagan nito ang mga di-programmer na gumamit ng isang klasikong tool sa agham ng computer na kung saan ay hindi magagamit sa kanila. . Bagaman, seryoso: ito ay isang halimbawa kung paano gawin ang isang pakete ng Debian. Ito ay ang Debian na bersyon ng program na 'hello world' ng GNU Project (na kung saan ay isang halimbawa para sa Proyekto ng GNU). . Ito ay kapareho ng hello package, maliban kung gumagamit ito ng debhelper upang gawin ang deb. Pakitingnan ang debelper kung ano ito.

Maaari naming kopyahin ang copyright file at ang postinst at prerm mga script mula sa Ubuntu hello-debhelper package, dahil hindi nagbago ang mga ito dahil ang seksyon na tinatawag na "Packaging From Scratch". Isusumite din namin ang panuntunan file upang maaari naming siyasatin ito.

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.

Ang huling file na kailangan naming tingnan ay panuntunan, kung saan ang kapangyarihan ng debelper maaaring makita ang mga script. Ang debelper bersyon ng panuntunan ay medyo mas maliit (54 linya bilang laban sa 72 mga linya sa bersyon mula sa seksyon na tinatawag na "mga patakaran").

Ang debelper Mukhang bersyon:

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

pindutin ang build binary-indep: i-install # Walang mga arkitekturang independiyenteng mga file na mai-upload # na binuo ng paketeng ito. Kung mayroong anumang magiging # ginawa dito. binary-arch: i-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- arko .PHONY: binary binary-arch binary-indep clean checkroot

Pansinin na ang mga gawain tulad ng pagsubok kung ikaw ay nasa tamang direktoryo (dh_testdir), siguraduhin na iyong binubuo ang pakete na may mga pribilehiyo ng ugat (dh_testroot), pag-install ng dokumentasyon (dh_installdocs at dh_installchangelogs), at paglilinis pagkatapos ng build (dh_clean) ay awtomatikong hawakan. Maraming mga pakete mas kumplikado kaysa sa Kamusta mayroon panuntunan ang mga file ay hindi mas malaki dahil sa debelper pinangangasiwaan ng mga script ang karamihan sa mga gawain. Para sa isang kumpletong listahan ng debelper script, pakitingnan ang seksyon na tinatawag na "Listahan ng debelper script ". Sila rin ay mahusay na dokumentado sa kani-kanilang mga lalaki mga pahina. Ito ay isang kapaki-pakinabang na ehersisyo upang mabasa ang pahina ng tao (mahusay ang mga ito at hindi mahaba) para sa bawat script ng katulong na ginamit sa itaas panuntunan file.