ഉബുണ്ടു പാക്കേജിംഗ് ഗൈഡ്

ഡോക്യുമെന്റേഷൻ

ഡെബെലറുമായി പാക്കേജിംഗ്


[പ്രധാനപ്പെട്ടത്]

ആവശ്യകതകൾ: "സ്ക്രാച്ച് മുതൽ പാക്കേജിംഗ്" എന്ന വിഭാഗത്തിൽ നിന്നും, ഡെബൽപ്പർ, dh-make എന്ന വിഭാഗത്തിലെ ആവശ്യകതകൾ

ഒരു പാക്കേജായി, മുമ്പത്തെ വിഭാഗത്തിൽ ചെയ്തതുപോലെ, വളരെ അപരിചിതമായ പൊതികൾ നിങ്ങൾക്കും ഉണ്ടാകും. നിങ്ങള്ക്ക് സങ്കല്പിക്കാവുന്നതുപോലെ, ഉദാഹരണത്തിന് നിയമങ്ങളുടെ ഫയലിൽ പല ടാസ്ക്കുകളും വിവരങ്ങളും, പാക്കേജുകൾക്ക് സാധാരണമാണ്. പാക്കേജിംഗ് ലളിതവും കൂടുതൽ കാര്യക്ഷമവുമാക്കുന്നതിന്, ഈ ടാസ്കുകളെ സഹായിക്കുന്നതിന് നിങ്ങൾക്ക് ഡെബൽപ്പർ ഉപയോഗിക്കാൻ കഴിയും. പാക്കേജ്-ബിൽഡിംഗ് പ്രക്രിയ ഓട്ടോമേറ്റ് ചെയ്യുന്ന പെർൽ സ്ക്രിപ്റ്റുകൾ (dh_ എന്നതിനൊപ്പം) ഒരു ഡെബ്ഫെപ്പർ ആണ്. ഈ സ്ക്രിപ്റ്റുകൾ ഉപയോഗിച്ച് ഒരു ഡെബിയൻ പാക്കേജ് നിർമ്മിക്കുന്നത് വളരെ ലളിതമാകുന്നു.

ഈ ഉദാഹരണത്തിൽ, നമ്മൾ വീണ്ടും ഗ്നു ഗ്രേ പാക്കേജ് നിർമ്മിയ്ക്കും , പക്ഷേ ഉബുണ്ടു ഹലോ-ഡെബൽപർ പാക്കേജിൽ ഈ സമയം നമ്മൾ ഞങ്ങളുടെ പ്രവർത്തനം താരതമ്യം ചെയ്യും. വീണ്ടും, നിങ്ങൾ പ്രവർത്തിക്കുന്ന ഒരു ഡയറക്ടറി ഉണ്ടാക്കുക:

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

എന്നിട്ട്, ഉബുണ്ടു ഉറവിട പൊതി ലഭിക്കുന്നു:

apt-get സ്രോതസ്സ് hello-debhelper cd ..

മുൻ ഉദാഹരണം പോലെ നമ്മൾ ആദ്യം ചെയ്യേണ്ടത് യഥാർത്ഥ (അപ്സ്ട്രീം) ടാർബോൾ അൺപാക്ക് ആണ്.

tar -xzvf hello-2.1.1.tar.gz

അപ്സ്ട്രീം tarball കോപ്പി ചെയ്യുന്നതിനു പകരം hello_2.1.1.orig.tar.gz നമ്മൾ മുമ്പത്തെ ഉദാഹരണത്തിൽ ചെയ്തതുപോലെ, നമുക്ക് dh_make work നും ചെയ്യും. നിങ്ങൾ ചെയ്യേണ്ട ഒരേയൊരു കാര്യം സ്രോതസ്സ് ഫോൾഡറിന്റെ പേരു മാറ്റുന്നതിനാൽ - എന്ന രീതിയിൽ രൂപകൽപ്പന ചെയ്തിട്ടുള്ളത് പാക്കേജെയ്നിനെക്കുറിച്ചാണ് . ഈ സാഹചര്യത്തിൽ, ടാർബാളിനെ വെറുതെയിരിക്കുകയാൺ ശരിയായ ഒരു ഉറവിട ഡയറക്ടറി ഉണ്ടാക്കുന്നത് അതിനാൽ നമുക്ക് അതിൽ കയറാൻ കഴിയും:

സിഡി ഹലോ -2.1.1

ഉറവിടം പ്രാരംഭ "debianization" സൃഷ്ടിക്കാൻ ഞങ്ങൾ dh_make ഉപയോഗിക്കും.

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

അപ്പോൾ നിങ്ങൾക്ക് ഒരു കൂട്ടം ചോദ്യങ്ങൾ ചോദിക്കും:

പാക്കേജിന്റെ തരം: ഒറ്റ ബൈനറി, മൾട്ടിപ്പിൾ ബൈനറി, ലൈബ്രറി, കേർണൽ ഘടകം അല്ലെങ്കിൽ സിഎച്ച്ബിഎസ്? [s / m / l / k / b] s
രക്ഷാധികാരി നാമം: ക്യാപ്റ്റൻ പാക്കേജർ ഇമെയിൽ-വിലാസം: packager@coolness.com തീയതി: തിങ്കൾ, 6 ഏപ്രിൽ 2006 10:07:19 -0700 പാക്കേജ് നാമം: ഹലോ പതിപ്പ്: 2.1.1 ലൈസൻസ്: ശൂന്യ പാക്കേജ് തരം: സിംഗിൾ ഹിറ്റ് സ്ഥിരീകരിക്കുക: എന്റർ ചെയ്യുക


[ജാഗ്രത]

ഒരിക്കൽ മാത്രമേ dh_make -e റൺ ചെയ്യുക. നിങ്ങൾ ആദ്യത്തെ തവണ ഇത് ചെയ്ത ശേഷം വീണ്ടും അത് പ്രവർത്തിപ്പിക്കുകയാണെങ്കിൽ, അത് ശരിയായി പ്രവർത്തിക്കില്ല. നിങ്ങൾക്കത് മാറ്റാനോ അല്ലെങ്കിൽ ഒരു തെറ്റുപറ്റണമെങ്കിലോ, ഉറവിട ഡയറക്ടറി നീക്കം ചെയ്ത് അപ്സ്ട്രീം ടാബർ ബോൾ അൺറാർട്ട് ചെയ്യുക. അപ്പോൾ നിങ്ങൾ ഉറവിട ഡയറക്ടറിയിലേക്ക് മൈഗ്രേറ്റ് ചെയ്ത് വീണ്ടും ശ്രമിക്കാം.

പ്രവർത്തിപ്പിക്കുന്ന dh_make -e രണ്ടു കാര്യങ്ങൾ ചെയ്യുന്നു:

ഹലോ പ്രോഗ്രാം വളരെ സങ്കീർണ്ണമല്ല. "Packaging from Scratch" എന്ന വിഭാഗത്തിൽ നാം കണ്ടതുപോലെ, ഇത് പാക്കേജിംഗ് അടിസ്ഥാന ഫയലുകളേക്കാൾ വളരെ ആവശ്യമില്ല. അതിനാൽ, നമുക്ക് .ex ഫയലുകൾ നീക്കം ചെയ്യാം:

cd debian rm * .ex * .EX

ഹലോ , നിങ്ങൾക്കില്ല

* ലൈസൻസ്

* ഉബുണ്ടു പാക്കേജിംഗ് ഗൈഡ് ഇന്ഡക്സ്

(പ്രോഗ്രാമുകളുടെ റീഡ്എംഇയ്ക്കായി README ഫയൽ, പ്രോഗ്രാമിലെ റീഡ്എംഇ ), dirs (ആവശ്യമുള്ള തരങ്ങൾ സൃഷ്ടിക്കാൻ dh_installdirs ഉപയോഗിക്കുന്നത്), ഡോക്സ് (പ്രോഗ്രാം ഡോക്യുമെന്റേഷൻ ഇൻസ്റ്റാൾ ചെയ്യാൻ dh_installdocs ഉപയോഗിക്കുന്നത്), അല്ലെങ്കിൽ വിവരങ്ങൾ ( വിവരങ്ങൾ ഇൻസ്റ്റാൾ ചെയ്യാൻ dh_installinfo ഉപയോഗിക്കുന്നത് ആവശ്യമാണ്) ഫയൽ) ഡെബിയൻ ഡയറക്ടറിയിലേക്ക് ഫയലുകൾ. ഈ ഫയലുകളെപ്പറ്റിയുള്ള കൂടുതൽ വിവരങ്ങൾക്കായി, "dh_make ഉദാഹരണ ഫയലുകൾ" എന്ന വിഭാഗം കാണുക.

ഈ അവസരത്തിൽ, നിങ്ങൾക്ക് ഡെബിയൻ ഡയറക്ടറിയിലെ ചേഞ്ച്ലോഗ് , കോംപാറ്റ് , കൺട്രോൾ , പകർപ്പവകാശം , റൂളുകൾ എന്നീ ഫയലുകൾ മാത്രമേ പാടുള്ളൂ. "സ്ക്രാച്ചിൽ നിന്നും പാക്കേജിംഗ്" എന്ന് വിളിക്കുന്ന വിഭാഗത്തിൽ, പുതിയ ഫയൽ കോംപറ്റ് ആണ്, ഇത് ഉപയോഗിച്ചിരിക്കുന്ന ഡെഫെലർ പതിപ്പ് (ഈ സാഹചര്യത്തിൽ 4) അടങ്ങിയിരിക്കുന്ന ഒരു ഫയൽ ആണ്.

ഈ പാക്കേജിനെ ഹലോ ഉപയോഗിക്കുന്നത് പകരം ഹലോ-ഡെബൽപെർനെന്ന് പ്രതിഫലിപ്പിക്കുന്നതിനായി ഈ കേസിൽ ചെറിയ മാറ്റം ക്രമീകരിക്കേണ്ടതുണ്ട്:

ഹലോ-ഡെബൽപ്പർ (2.1-1-1) ഡാപ്പർ; ആവശ്യം = കുറഞ്ഞ * പ്രാരംഭ റിലീസ് - ക്യാപ്റ്റൻ പാക്കേജർ Thu, 6 Apr 2006 10:07:19 -0700

Debhelper ഉപയോഗിച്ചു് നമ്മൾ നിയന്ത്രണം മാറേണ്ടതുണ്ടെങ്കിൽ , പേരു് ( hello-debhelper നു വേണ്ടി ഹലോ ), ബിൽഡ്- ഡിപ്പൻഡസ് ഫീൾഡിലേക്കു് debhelper (> = 4.0.0) ചേർക്കുന്നു. ഹലോ-ഡെബൽപ്പറിനായുള്ള ഉബുണ്ടു പാക്കേജ് പോലെ കാണപ്പെടുന്നു:

ഉബുണ്ടു ഹലോ-ഡെബൽപർ പാക്കേജിൽ നിന്നും പകർപ്പവകാശ ഫയലും postinst ഉം prerm സ്ക്രിപ്റ്റുകളും നമുക്ക് പകർത്താം , കാരണം "മാറ്റിയെടുക്കൽ മുതൽ പാക്കേജിംഗ്" എന്ന വിഭാഗത്തിനുശേഷം മാറ്റമില്ലാത്തവ. നമ്മൾ പരിശോധിക്കാൻ കഴിയുന്ന റൂളുകൾ ഫയലും ഞങ്ങൾ കോപ്പി ചെയ്യും.

cp ../../mbuntu/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.

നമ്മൾ അവസാനത്തെ ഫയൽ പരിശോധിക്കേണ്ടതുണ്ട്, അവിടെ ഡെബ്ബേപ്പർ സ്ക്രിപ്റ്റുകളുടെ ശക്തി കാണാം. നിയമങ്ങളുടെ ഡെബൽപെർഷൻ പതിപ്പ് കുറച്ചുകഴിഞ്ഞു ("റൂളുകൾ" എന്ന വിഭാഗത്തിൽ നിന്ന് 72 വരികൾക്കു എതിരായി 54 വരികൾ).

ഡീഫൾപ്പർ പതിപ്പ് ഇതുപോലെ കാണപ്പെടുന്നു:

#! / usr / bin / make -f package = hello-debhelper CC = gcc CFLAGS = -g-ifeq (, $ (കണ്ടെത്തൽ നോപ്പ്, $ (DEB_BUILD_OPTIONS))) CFLAGS + = -O2 endif #export DH_VERBOSE = 1 ക്ലീൻ : dh_testdir dh_clean rm -f build - $ (MAKE) -i വിദൂരത്തുള്ള ഇൻസ്റ്റോൾ: build dh_clean dh_installdirs $ (MAKE) പ്രിഫിക്സ് = $ (CURDIR) / debian / $ (പാക്കേജ്) / usr \ mandir = $ (CURDIR) / debian / $ (പാക്കേജ്) / usr / share / man \ infodir = $ (CURDIR) / debian / $ (പാക്കേജ്) / usr / share / info \ install ബിൽഡ്: ./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 ChangeLog dh_strip -a dh_compress -a dh_fixperms -a dh_installdeb -a dh_shlibdeps -a dh_md5sums -a dh_builddeb -a ബൈനറി: ബൈനറി-ഇൻഡെക്സ് ബൈനറി- arch .ഹോണി: ബൈനറി ബൈനറി ആർച്ചുകൾ ബൈനറി ഇൻഡെക്സ് വൃത്തിയുള്ള ചെക്കൗട്ട്

നിങ്ങൾ റൂട്ടിനുള്ള വിശേഷതകൾ ( dh_testroot ), ഡോക്യുമെന്റേഷൻ ( dh_installdocs , dh_installchangelogs ), പാക്കേജ് ( dh_clean ) എന്നിവയ്ക്കു ശേഷം നീക്കം ചെയ്യുമ്പോൾ ( dh_clean ) സ്വയം ക്റമികരിക്കുന്നു എന്ന് ഉറപ്പുവരുത്തി, നിങ്ങൾ ശരിയായ ഡയറക്ടറിയിൽ ആണെന്ന് ( dh_testdir ) . ഹാക്കെനേക്കാൾ സങ്കീർണ്ണമായ പല പാക്കേജുകളും നിയമങ്ങൾ വലിയ ഫയലുകളിലല്ല, കാരണം ഡെബ്ബേപ്പർ സ്ക്രിപ്റ്റുകൾ മിക്ക ടാസ്ക്കുകളും കൈകാര്യം ചെയ്യുന്നു. ഓപ്പൺ ഹെൽപ് സ്ക്രിപ്റ്റുകൾ പൂർണ്ണ പട്ടികയ്ക്കായി " ഡീബേൽ സ്ക്രിപ്റ്റുകൾ" എന്ന വിഭാഗം കാണുക. അവയും മാൻ താളുകളിൽ നന്നായി രേഖപ്പെടുത്തുകയും ചെയ്യുന്നു. മുകളിൽ പറഞ്ഞിരിക്കുന്ന ചട്ടങ്ങൾ ഫയലിൽ ഉപയോഗിച്ചിട്ടുള്ള ഓരോ സഹായക്കുറിപ്പിനുള്ള ആനുപാദനത്തിനായി മാൻ താൾ (അവ നന്നായി എഴുതപ്പെട്ടവ അല്ല നീളം അല്ല) വായിക്കുന്നതിനുള്ള ഒരു പ്രയോജനപ്രദമാണ്.