មគ្គុទ្ទេសក៍វេចខ្ចប់អ៊ូបូទូ

ឯកសារ

ការដាក់ខ្ចប់ជាមួយ Debhelper


[សំខាន់]

តម្រូវការ: តម្រូវការពីផ្នែកដែលគេហៅថា "ការវេចខ្ចប់ពីកោស" រួមទាំង debhelper និង dh-make

ក្នុងនាមជាអ្នកដាក់កញ្ចប់អ្នកកម្រនឹងបង្កើតកញ្ចប់ពីទទេដូចដែលយើងបានធ្វើនៅក្នុងផ្នែកមុន។ ដូចដែលអ្នកអាចស្រមៃភារកិច្ចនិងព័ត៌មានជាច្រើនក្នុងឯកសារ ក្បួន ជាឧទាហរណ៍ជាទូទៅសម្រាប់កញ្ចប់។ ដើម្បីធ្វើឱ្យការវេចខ្ចប់កាន់តែងាយស្រួលនិងមានប្រសិទ្ធិភាពជាងអ្នកអាចប្រើ debhelper ដើម្បីជួយដល់កិច្ចការទាំងនេះ។ Debhelper គឺជាសំណុំនៃស្គ្រីប Perl (ដែលមានបុព្វបទជាមួយ dh_ ) ដែលធ្វើស្វ័យប្រវត្តិកម្មដំណើរការនៃការបង្កើតកញ្ចប់។ ជាមួយស្គ្រីបទាំងនេះការបង្កើតកញ្ចប់ដេបៀននឹងក្លាយជារឿងធម្មតា។

នៅក្នុងឧទាហរណ៍នេះយើងនឹងបង្កើតកញ្ចប់ Hello GNU ម្តងទៀតប៉ុន្តែពេលនេះយើងនឹងធ្វើការប្រៀបធៀបការងាររបស់យើងទៅនឹងកញ្ចប់ ជំនួយសួស្ដីរបស់ Ubuntu ។ ជាថ្មីម្តងទៀតបង្កើតថតដែលអ្នកនឹងធ្វើការ:

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

បន្ទាប់មកយកកញ្ចប់ប្រភព Ubuntu:

apt-get ប្រភព hello-debhelper cd ..

ដូចឧទាហរណ៍មុនរឿងដំបូងដែលយើងត្រូវធ្វើគឺស្រាយកញ្ចប់ទិន្នន័យដើម (ស្ទ្រីម) ។

tar-xzvf សួស្ដី-2.1.1.tar.gz

ជំនួសឱ្យការថតចម្លងទិន្នន័យ tarball ទៅនឹង hello_2.1.1.orig.tar.gz ដូចដែលយើងបានធ្វើនៅក្នុងឧទាហរណ៍មុនយើងនឹងអនុញ្ញាតឱ្យ dh_make ធ្វើការងារសម្រាប់យើង។ រឿងតែមួយគត់ដែលអ្នកត្រូវធ្វើគឺប្តូរឈ្មោះថតប្រភពដូច្នេះវាស្ថិតនៅក្នុងសំណុំបែបបទ - ដែល packagename ជាអក្សរតូច។ ក្នុងករណីនេះគ្រាន់តែ untarring tarball ផលិតថតប្រភពត្រឹមត្រូវមួយដូច្នេះយើងអាចផ្លាស់ទីទៅវា:

ស៊ីឌីជំរាបសួរ -21.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@coolness.com កាលបរិច្ឆេទ: ព្រហស្បតិ៍, 6 មេសា 2006 10:07:19 -0700 ឈ្មោះកញ្ចប់: សួស្ដីកំណែ: 2.1.1 អាជ្ញាប័ណ្ណ: ទទេប្រភេទកញ្ចប់: ចុចអូស <ចូល> ទៅ បញ្ជាក់: បញ្ចូល


[ការប្រុងប្រយ័ត្ន]

បើកដំណើរការ dh_make -e តែប៉ុណ្ណោះ។ ប្រសិនបើអ្នកដំណើរការវាម្តងទៀតបន្ទាប់ពីអ្នកធ្វើវាជាលើកដំបូងវានឹងមិនដំណើរការត្រឹមត្រូវ។ ប្រសិនបើអ្នកចង់ផ្លាស់ប្តូរវាឬធ្វើកំហុសសូមយកថតប្រភពចេញហើយមិនត្រូវលុបចោលលេខទូរស័ព្ទថ្មី។ បន្ទាប់មកអ្នកអាចប្ដូរទៅថតប្រភពហើយព្យាយាមម្តងទៀត។

ការរត់ dh_make -e ធ្វើអ្វីពីរ:

កម្មវិធី ហេឡូ មិនស្មុគស្មាញខ្លាំងទេហើយដូចដែលយើងបានឃើញនៅក្នុងផ្នែក "ការវេចខ្ចប់ពីកោស" ការវេចខ្ចប់វាមិនត្រូវការច្រើនជាងឯកសារមូលដ្ឋានទេ។ ដូច្នេះអនុញ្ញាតឱ្យយើងលុបឯកសារ .ex :

ស៊ីឌីដេបៀន rm * .ex * .EX

សម្រាប់ សួស្តី អ្នកក៏នឹងមិន

* អាជ្ញាប័ណ្ណ

* សន្ទស្សន៍វចនានុក្រមវេចខ្ចប់អ៊ូប៊ុនទូ

ត្រូវការ README.Debian (ឯកសារ README សម្រាប់បញ្ហាដេបៀនជាក់លាក់មិនមែន README របស់កម្មវិធី) dirs (ត្រូវបានប្រើដោយ dh_installdirs ដើម្បីបង្កើតថតដែលត្រូវការ) ឯកសារ (ត្រូវបានប្រើដោយ dh_installdocs ដើម្បីដំឡើងឯកសារកម្មវិធី) ឬ ព័ត៌មាន (ត្រូវបានប្រើដោយ dh_installinfo ដើម្បីដំឡើងព័ត៌មាន file) ទៅក្នុងថត debian ។ សម្រាប់ព័ត៌មានបន្ថែមអំពីឯកសារទាំងនេះសូមមើលផ្នែកដែលមានឈ្មោះថា "ឯកសារគំរូ dh_make" ។

នៅចំណុចនេះអ្នកគួរតែមានឯកសារ ផ្លាស់ប្ដូរ , ឆបគ្នា , ការគ្រប់គ្រង , ច្បាប់រក្សាសិទ្ធិ និង ក្បួន នៅក្នុងថត debian តែប៉ុណ្ណោះ។ ពីផ្នែកដែលគេហៅថា "វេចខ្ចប់ពីកោស" ឯកសារតែមួយគត់ដែលជាថ្មីគឺ compat ដែលជាឯកសារដែលមានកំណែ debhelper (ក្នុងករណីនេះ 4) ដែលត្រូវបានប្រើ។

អ្នកនឹងត្រូវកែតម្រូវ ផ្លាស់ប្ដូរ បន្តិចក្នុងករណីនេះដើម្បីឆ្លុះបញ្ចាំងថាកញ្ចប់នេះត្រូវបានគេដាក់ឈ្មោះថា hello-debhelper ជាជាងគ្រាន់តែសរសេរ:

hello-debhelper (2.1.1-1) dapper; បន្ទាន់ = ទាប * ការចេញផ្សាយដំបូង - ប្រធានក្រុមកញ្ចប់ Thu, 6 Apr 2006 10:07:19 -0700

ដោយប្រើ debhelper នោះអ្វីដែលយើងត្រូវការដើម្បីផ្លាស់ប្តូរ ការគ្រប់គ្រង គឺជាឈ្មោះ (ជំនួសឱ្យ hello សម្រាប់ hello-debhelper ) និងបន្ថែម ឧបករណ៍បំបាត់សម្រាម (> = 4.0.0) ទៅវាល Build-Depends សម្រាប់កញ្ចប់ប្រភព។ កញ្ចប់ Ubuntu សម្រាប់ hello-debhelper មើលទៅដូចជា:

យើងអាចចម្លងឯកសារ រក្សាសិទ្ធិ និងស្គ្រីប Postinst និង prerm ពីកញ្ចប់ Ubuntu -helhelper ព្រោះថាវាមិនបានផ្លាស់ប្តូរចាប់តាំងពីផ្នែកដែលមានឈ្មោះថា Packaging From Scratch ។ យើងក៏នឹងចម្លងឯកសារច្បាប់ផងដែរដូច្នេះយើងអាចត្រួតពិនិត្យវា។

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 គឺមានទំហំតូចជាងបន្តិច (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) - ខ្ញុំដំឡើង: ដំឡើង dh_clean dh_installdir $ (ធ្វើ) បុព្វបទ = $ (CURDIR) / debian / $ (កញ្ចប់) / usr \ mandir = $ (CURDIR) / debian / $ (កញ្ចប់) / usr / share / man \ infodir = $ (CURDIR) / debian / $ (កញ្ចប់) / usr / share / info \ install build: ./configure --prefix = / usr $ (MAKE) CC = "$ (CC) "CFLAGS =" $ (CFLAGS) "

touch build binary-indep: install # មិនមានឯកសារស្ថាបត្យកម្មឯករាជ្យដែលត្រូវផ្ទុកឡើង # ដោយកញ្ចប់នេះទេ។ ប្រសិនបើមានពួកគេនឹងត្រូវបានធ្វើនៅទីនេះ។ binary-arch: install dh_testdir -a dh_testroot -a dh_installdocs -a NEWS dh_installchangelogs -a ផ្លាស់ប្ដូរប្លុក 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: ឃ្យូសប៊ីឃ្យូខនឃិច - ឃីនឃិចឆឺរ

ចូរកត់សម្គាល់ថាភារកិច្ចដូចជាការធ្វើតេស្តប្រសិនបើអ្នកស្ថិតនៅក្នុងថតត្រឹមត្រូវ ( dh_testdir ), ត្រូវប្រាកដថាអ្នកកំពុងបង្កើតកញ្ចប់ជាមួយសិទ្ធិជា root ( dh_testroot ) តំឡើងឯកសារ ( dh_installdocs និង dh_installchangelogs ) និងសម្អាតបន្ទាប់ពី build ( dh_clean ) ត្រូវបានគ្រប់គ្រងដោយស្វ័យប្រវត្តិ។ ។ កញ្ចប់ជាច្រើនមានភាពស្មុគស្មាញជាង ស្វាគមន៍ មានឯកសារ ក្បួន មិនធំព្រោះស្គ្រីប debhelper ដោះស្រាយភាគច្រើននៃភារកិច្ច។ ចំពោះបញ្ជីពេញលេញនៃស្គ្រីបអ្នកប្រើសូមមើលផ្នែកដែលហៅថា "បញ្ជីស្គ្រីបអ្នកជំនួយការ" ។ ពួកវាត្រូវបានចងក្រងជាឯកសារផងដែរនៅក្នុងទំព័ររបស់ពួកគេរៀងៗខ្លួន។ វាជាលំហាត់ដែលមានប្រយោជន៍ដើម្បីអានទំព័រសៀវភៅដៃ (ពួកវាត្រូវបានសរសេរយ៉ាងល្អហើយមិនវែង) សម្រាប់ស្គ្រីបជំនួយដែលបានប្រើក្នុងឯកសារ ក្បួន ខាងលើ។