ഒരു ബൈനറി ഡെബ് പാക്കേജ് എങ്ങനെ നിർമ്മിക്കാം: വിശദമായ HowTo. ഡെബിയൻ ഇൻസ്റ്റലേഷൻ ഫയലുകൾ സൃഷ്ടിക്കുന്നു - deb ഫയലുകൾ ഉറവിടങ്ങളിൽ നിന്ന് ഒരു deb പാക്കേജ് സൃഷ്ടിക്കുന്നു

പാക്കേജുകളുടെ ഒരു ലിസ്റ്റ് സൃഷ്ടിക്കുക:

$dpkg-സ്കാൻപാക്കേജുകൾ. /dev/null | gzip -9c > ./Packages.gz
ഇതുപോലുള്ള ഒരു സന്ദേശം ഞങ്ങൾക്ക് ലഭിച്ചേക്കാം:

Dpkg-scanpackages: മുന്നറിയിപ്പ്: ആർക്കൈവിലുള്ള പാക്കേജുകൾ എന്നാൽ ഓവർറൈഡ് ഫയലിൽ നിന്ന് കാണുന്നില്ല: dpkg-scanpackages: മുന്നറിയിപ്പ്: fossil linux-headers-3.8.0-avl9-pae linux-image-3.8.0-avl9-pae pdfsam sublimetext virtualboxer.2 -xorg-input-wacom zotero dpkg-scanpackages: info: ഔട്ട്‌പുട്ട് പാക്കേജുകൾ ഫയലിലേക്ക് 8 എൻട്രികൾ എഴുതി.
ഞങ്ങളുടെ ശേഖരത്തിൽ ഇപ്പോൾ 8 പാക്കേജുകളുണ്ട്. കൊള്ളാം, ഫയലിലേക്ക് നമ്മുടെ ശേഖരം ചേർക്കാം:

വരി പോലെ:

ഡെബ് ഫയൽ:///home/username/zips/virensdebianrepository ./
ഇപ്പോൾ നിങ്ങൾ പാക്കേജുകളുടെ ലിസ്റ്റ് അപ്ഡേറ്റ് ചെയ്യേണ്ടതുണ്ട്, അങ്ങനെ അവ ഇൻസ്റ്റലേഷനായി ലഭ്യമാകും:

അത്രയേയുള്ളൂ, ഇപ്പോൾ നിങ്ങൾക്ക് ഇൻസ്റ്റാൾ ചെയ്യാൻ കഴിയും, ഉദാഹരണത്തിന്, പുതുതായി കൂട്ടിച്ചേർത്തത് ടെക്സ്റ്റ് എഡിറ്റർസബ്‌ലൈം ടെക്‌സ്‌റ്റ് 2 (അവിടെ മികച്ച നിർദ്ദേശങ്ങൾ) എല്ലായ്‌പ്പോഴും: ഇപ്പോൾ, സബ്‌ലൈംടെക്‌സ്‌റ്റ് ഇൻസ്‌റ്റാൾ ചെയ്യുന്നതിന്, ചെയ്‌താൽ മതി:
# apt-get install sublimetext

പാക്കേജ് ലിസ്‌റ്റുകൾ വായിക്കുന്നു... പൂർത്തിയായി ഡിപൻഡൻസി ട്രീ ബിൽഡിംഗ് സ്റ്റേറ്റ് വിവരങ്ങൾ വായിക്കുന്നു... പൂർത്തിയായി ഇനിപ്പറയുന്ന പുതിയ പാക്കേജുകൾ ഇൻസ്റ്റാൾ ചെയ്യും: സബ്‌ലൈംടെക്‌സ് 0 അപ്‌ഗ്രേഡ് ചെയ്‌തു, 1 പുതുതായി ഇൻസ്റ്റാൾ ചെയ്‌തു, 0 നീക്കംചെയ്യാൻ 245 അപ്‌ഗ്രേഡ് ചെയ്‌തിട്ടില്ല. 0 B/11.4 MB ആർക്കൈവുകൾ ലഭിക്കേണ്ടതുണ്ട്. ഈ പ്രവർത്തനത്തിനു ശേഷം, 17.4 MB അധിക ഡിസ്ക് സ്പേസ് ഉപയോഗിക്കും. മുന്നറിയിപ്പ്: ഇനിപ്പറയുന്ന പാക്കേജുകൾ ആധികാരികമാക്കാൻ കഴിയില്ല! sublimetext പരിശോധന കൂടാതെ ഈ പാക്കേജുകൾ ഇൻസ്റ്റാൾ ചെയ്യണോ? Y മുമ്പ് തിരഞ്ഞെടുത്തത് ഒഴിവാക്കിയ പാക്കേജ് സബ്ലൈം ടെക്സ്റ്റ് തിരഞ്ഞെടുക്കുന്നു. (ഡാറ്റാബേസ് വായിക്കുന്നു ... 247813 ഫയലുകളും ഡയറക്‌ടറികളും നിലവിൽ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ട്.) സബ്‌ലൈം ടെക്‌സ്‌റ്റ് അൺപാക്ക് ചെയ്യുന്നു (..././sublimetext_2.0.2_i386.deb-ൽ നിന്ന്) ... സബ്‌ലൈംടെക്‌സ്‌റ്റ് സജ്ജീകരിക്കുന്നു (2.0.2) ... അത്രയേയുള്ളൂ, പാക്കേജ് അൺപാക്ക് ചെയ്യുകയും ഇൻസ്റ്റാൾ ചെയ്യുകയും ചെയ്യും, ഇത് പ്രാദേശിക ശേഖരത്തിൽ നിന്നുള്ളതാണെന്ന വസ്തുത ഇവിടെ കാണാം: (..././sublimetext_2.0.2_i386.deb എന്നതിൽ നിന്ന്)

ഉപസംഹാരം

ഈ പോസ്റ്റിൽ വിവരിച്ചിരിക്കുന്ന പാചകക്കുറിപ്പുകൾ പെട്ടെന്നുള്ള ഭക്ഷണങ്ങളാണ്, ട്രഫിൾസ് ഉള്ള ഫോയ് ഗ്രാസ് അല്ല. വലിയ റിപ്പോസിറ്ററികൾക്കോ ​​സങ്കീർണ്ണമായ പാക്കേജുകൾക്കോ, നിങ്ങൾ ഇപ്പോഴും ഡോക്യുമെൻ്റേഷനും മാനുവലുകളും വായിക്കേണ്ടതുണ്ട്. നിങ്ങൾക്ക് റിപ്പോസിറ്ററികൾ സൃഷ്ടിക്കാൻ മാത്രമല്ല, സിഡി/ഡിവിഡി ഡിസ്കുകളിലേക്ക് ബേൺ ചെയ്യാനും കഴിയുന്ന ഒരു പ്രോഗ്രാം ഉപയോഗിക്കാം.

സഖാവിന് പ്രത്യേക നന്ദി. മസ്തിഷ്കപ്രവാഹം, ആരാണ് PRE എൻവയോൺമെൻ്റ് റെൻഡർ ചെയ്യുന്ന പോസ്റ്റിലെ ഒരു ബഗ് ചൂണ്ടിക്കാണിച്ചത്. Pandoc പോലെയുള്ള Haskell കരകൗശല വസ്തുക്കളെ നിങ്ങൾ വിശ്വസിക്കുമ്പോൾ ഇത് സംഭവിക്കുന്നു :-)

അതെ, നിങ്ങൾക്ക് എന്തെങ്കിലും ചേർക്കാനുണ്ടെങ്കിൽ, അഭിപ്രായങ്ങളിൽ എഴുതുക, എന്നാൽ ഡെബിയൻ പാക്കേജിംഗ് മാർഗ്ഗനിർദ്ദേശങ്ങളും മറ്റ് ക്വാണ്ടം ഫിസിക്സും വീണ്ടും വായിക്കേണ്ട ആവശ്യമില്ലാതെ, പോസ്റ്റ് പെട്ടെന്നുള്ള ഒന്നാണെന്ന് ഓർമ്മിക്കുക.

അജ്ഞാത കമൻ്റുകൾ...

നിങ്ങളുടെ വാചകത്തിൽ ഒരു പിശക് ഉണ്ട്:
"ഇപ്പോൾ, സ്കൈപ്പ് ഇൻസ്റ്റാൾ ചെയ്യുന്നതിന്, ചെയ്യുക:

# apt-get install sublimetext "

അജ്ഞാത കമൻ്റുകൾ...

dpkg-deb ഉപയോഗിച്ച് നിങ്ങൾക്ക് പാക്കേജുകൾ അൺപാക്ക് ചെയ്യാം:
$ dpkg-deb -x what.deb എവിടെ/

അജ്ഞാത കമൻ്റുകൾ...

ഒരു പാക്കേജ് പൂർണ്ണമായി അൺപാക്ക് ചെയ്യാനും നിയന്ത്രണ ഫയലുകളിലെ ഫയലുകളോ ഡിപൻഡൻസികളോ വേഗത്തിൽ എഡിറ്റ് ചെയ്യാനും എപ്പോഴും dpkg -e, dpkg -x എന്നിവ ഉപയോഗിക്കുന്നു. എന്തെങ്കിലും കംപൈൽ ചെയ്യുമ്പോൾ ഒരു പാക്കേജ് സൃഷ്‌ടിക്കാൻ ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനുപകരം ഞാൻ ചെക്ക്ഇൻസ്റ്റാൾ ഉപയോഗിച്ചു. ഈ യൂട്ടിലിറ്റികൾ എടുത്തു പറയേണ്ടതാണെന്ന് ഞാൻ കരുതുന്നു.

വൈറൻസ് അഭിപ്രായങ്ങൾ...

ഡെബിയനിലെ ഉറവിടങ്ങളിൽ നിന്ന് പാക്കേജുകൾ നിർമ്മിക്കുന്നത് തിന്മയിൽ നിന്നാണ്! ഞാൻ ഇപ്പോൾ എൻ്റെ അനുഭവം ഓർക്കും:

1. deb പാക്കേജിൽ ഒരു മെയിൻ്റനറും മറ്റ് അസംബന്ധങ്ങളും ഉണ്ടായിരിക്കണം, അതില്ലാതെ (ആശ്ചര്യം, ആശ്ചര്യം!) പാക്കേജ് നിർമ്മിക്കപ്പെടില്ല.

2. നിങ്ങൾ കൂട്ടിച്ചേർക്കുകയും ഇൻസ്റ്റാൾ ചെയ്യുകയും അത്രയേയുള്ളൂ എന്ന് കരുതുകയും ചെയ്തിട്ടുണ്ടോ? അത്തരം ഭാഗ്യമില്ല, മറ്റെന്തെങ്കിലും ഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ ഒരു നല്ല അഭിരുചിക്ക് പാക്കേജിനെ നരകത്തിലേക്ക് നശിപ്പിക്കാൻ കഴിയും. ആ തോന്നൽ നിങ്ങൾക്കറിയാമോ: എങ്ങനെ? എവിടെ? എന്ത്? ഞാൻ ഇതിനകം ഈ പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്തു!!! ശരി, അതാണ് അവൻ്റെ അഭിരുചി - അവൻ എല്ലാം ഓർത്തഡോക്സ് ആണ്, അതിനർത്ഥം അവൻ പുരുഷാധിപത്യക്കാരനാണ്, സ്വതന്ത്രചിന്ത അനുവദിക്കുന്നില്ല.

3. അതിനാൽ, ഒരു അടിയന്തിര കുസൃതി ആവശ്യമാണ്: ആപ്റ്റിറ്റ്യൂഡ് ഹോൾഡ് പാക്കേജ്. "എന്താ, അത് നന്നായി പിടിക്കുന്നുണ്ടോ?" (സി) നിങ്ങളുടെ പാക്കേജ് നശിപ്പിക്കാതെ ഡിപൻഡൻസികൾ പരിഹരിക്കാൻ കഴിയില്ലെന്ന് ഇപ്പോൾ മുതൽ ആപ്റ്റിറ്റ്യൂഡ് പരാതിപ്പെടും.

4. ഈ സമയത്ത് എൻ്റെ ഞരമ്പുകൾ വഴിമാറി... ഞാൻ ജെൻ്റൂവിനെ കണ്ടെത്തി, എൻ്റെ മുടി വീണ്ടും മൃദുവും സിൽക്കിയും ആയി!

വൈറൻസ് അഭിപ്രായങ്ങൾ...

@iv_vl അഭിപ്രായങ്ങൾ...
ഞാൻ ജെൻ്റൂവിനെ കണ്ടെത്തി, എൻ്റെ മുടി...
ജെൻ്റയുടെ ബ്രാസൻ പിആർ?! IN എൻ്റേത്ബ്ലോഗ്??? ഒരു വഴിയുമില്ല! ;-)

1. deb പാക്കേജിൽ മെയിൻ്റനറും മറ്റ് അസംബന്ധങ്ങളും ഉണ്ടായിരിക്കണം
സ്റ്റാൻഡേർഡ് പോളിസി - തകർന്ന പാക്കേജിന് ആരുടെ മുഖത്ത് കുത്തണമെന്ന് നിങ്ങൾ അറിഞ്ഞിരിക്കണം :-) പിന്നെ, ഇത് ആർപിഎം ഫെഡോറകളിലും സ്യൂസാസിലും നടക്കുന്ന ബെഡ്‌ലാമിനേക്കാൾ മികച്ചതാണ്.

2. നിങ്ങൾ കൂട്ടിച്ചേർക്കുകയും ഇൻസ്റ്റാൾ ചെയ്യുകയും അത്രയേയുള്ളൂ എന്ന് കരുതുകയും ചെയ്തിട്ടുണ്ടോ? അത്തരം ഭാഗ്യമില്ല, മറ്റെന്തെങ്കിലും ഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ ഒരു നല്ല അഭിരുചിക്ക് പാക്കേജിനെ നരകത്തിലേക്ക് നശിപ്പിക്കാൻ കഴിയും.
നിങ്ങൾ ഒരു പഴയ പതിപ്പിൻ്റെ ഒരു പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്താൽ മാത്രം - ഉദാഹരണത്തിന്, ഞാൻ ലെന്നിയിൽ നിന്ന് ഇൻസ്റ്റാൾ ചെയ്ത IceWM-ൽ ഞാൻ പിടിച്ചിരിക്കുന്നു (ഇഡിയറ്റ് മെയിൻ്റനർ ഒരു തകർന്ന ട്രേയിൽ ഒരു ഐസ് സ്‌ക്വീസിലേക്ക് നിറച്ചു). എന്തെങ്കിലും ഉണ്ടെങ്കിൽ അത്തരം കുതന്ത്രങ്ങൾക്ക് മുമ്പ് അഭിരുചി നിങ്ങൾക്ക് മുന്നറിയിപ്പ് നൽകും.

3. അതിനാൽ, ഒരു കുസൃതി അടിയന്തിരമായി ആവശ്യമാണ്: ആപ്റ്റിറ്റ്യൂഡ് ഹോൾഡ് പാക്കേജ്.... ആശ്രിതത്വം പരിഹരിക്കാൻ അതിന് കഴിയില്ലെന്ന് ആപ്റ്റിറ്റ്യൂഡ് ആണയിടും.
ഇതൊരു നുണയും പ്രകോപനവുമാണ്: gcc അല്ലെങ്കിൽ glibc പോലെയുള്ള എന്തെങ്കിലും നിങ്ങൾ തടഞ്ഞിട്ടില്ലെങ്കിൽ മാത്രം, അത് സാധാരണയായി ഡിപൻഡൻസികൾ പരിഹരിക്കും. ആർപിഎമ്മുകളിൽ നിന്ന് വ്യത്യസ്തമായി, “ശരി, എനിക്ക് കഴിഞ്ഞില്ല, എനിക്ക് കഴിഞ്ഞില്ല” എന്ന ശൈലിയിൽ ഉടനടി ഉപേക്ഷിക്കാൻ ഇഷ്ടപ്പെടുന്നവർ :-)

ഡിപൻഡൻസി റെസല്യൂഷനിൽ പ്രശ്‌നങ്ങളുണ്ടാകാം, അതൊരു വസ്തുതയാണ്, പക്ഷേ ജെൻ്റയുടെ പുതിയ കെഡിഇയുടെ ഡൗൺലോഡ് അവസാനിക്കുന്നതിനായി കാത്തിരിക്കുമ്പോൾ പ്രോസസറിൽ ബേക്കണും മുട്ടയും വറുക്കുന്നതിനേക്കാൾ നല്ലതാണ് ഇത്...

4. ഈ സമയത്ത് എൻ്റെ ഞരമ്പുകൾ വഴിമാറി...
എങ്ങനെയോ നിങ്ങൾ പെട്ടെന്ന് പൊട്ടിത്തെറിച്ചു. വഴിയിൽ, ഗെൻ്റിലെ ഡിപൻഡൻസികളുടെ കാര്യമോ? ഓരോ തവണ തുമ്മുമ്പോഴും ചുമയുമായി നിങ്ങൾ എങ്ങനെയാണ് അവിടെ താമസിക്കുന്നത്?
ഞാൻ ഉദ്ദേശിച്ചത് ഇതാണ്...ട്രോളിംഗിന് വേണ്ടിയല്ല...ആളുകൾക്ക് താൽപ്പര്യമുണ്ട്.

iv_vl

deb ഫയൽ ഫോർമാറ്റിലുള്ള ഒരു ആർക്കൈവാണ് ar, പ്രോഗ്രാം ഇൻസ്റ്റലേഷൻ ഫയലുകൾ, പ്രോഗ്രാമിനെക്കുറിച്ചുള്ള വിവരങ്ങൾ, അതുപോലെ സ്ക്രിപ്റ്റുകൾ എന്നിവ അടങ്ങിയിരിക്കുന്നു ( ബാച്ച് ഫയലുകൾ), പ്രോഗ്രാം ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനും അൺഇൻസ്റ്റാൾ ചെയ്യുന്നതിനും മുമ്പും ശേഷവും നടത്തി (സ്ക്രിപ്റ്റുകളുടെ സാന്നിധ്യം നിർബന്ധമല്ല - അവ പാക്കേജിൻ്റെ ഭാഗമാകണമെന്നില്ല).

deb ഫയൽ ഫോർമാറ്റ് deb(5) man പേജുകളിൽ വിവരിച്ചിരിക്കുന്നു - നിങ്ങൾ ഒരു ടെർമിനലിൽ man deb എന്ന് ടൈപ്പ് ചെയ്താൽ ഈ സഹായം പ്രദർശിപ്പിക്കും. ഇൻ്റർനെറ്റിൽ ഈ വിവരങ്ങൾ ഉൾക്കൊള്ളുന്ന കുറച്ച് പേജുകളുണ്ട് - അവ കണ്ടെത്താൻ deb(5) എന്ന് തിരയുക. ഔദ്യോഗിക ഡെബിയൻ ഡെവലപ്പേഴ്‌സ് ഗൈഡ്, പാക്കേജ് ഫോർമാറ്റ് സഹായം (ഈ ഗൈഡ് എഴുതുന്ന സമയത്ത് http://www.debian.org/doc/manuals/debian-faq/ch- pkg_basics എന്നതിൽ സ്ഥിതി ചെയ്യുന്നതിനാൽ ഈ ഗൈഡ് ഇവിടെ ഉൾപ്പെടുത്തിയിട്ടില്ല. en.html) പാക്കേജുകളുടെ ഫോർമാറ്റ് മാറ്റാൻ കഴിയുമെന്ന് എഴുതിയിരിക്കുന്നു, അതിനാൽ അവയുമായി പ്രവർത്തിക്കാൻ dpkg-deb യൂട്ടിലിറ്റി ഉപയോഗിക്കാൻ ശുപാർശ ചെയ്യുന്നു. ടെർമിനലിൽ man dpkg-deb എന്ന കമാൻഡ് ടൈപ്പ് ചെയ്യുന്നതിലൂടെ dpkg-deb യൂട്ടിലിറ്റിയിൽ പ്രവർത്തിക്കുന്നതിനുള്ള സഹായം ലഭിക്കും.

GUI-deb പ്രോഗ്രാം പ്രവർത്തിക്കുന്നത് ആവശ്യമായ ഡാറ്റ അടങ്ങിയ ഒരു ഡയറക്ടറി സൃഷ്ടിച്ച് dpkg-deb പ്രോഗ്രാം പ്രവർത്തിപ്പിച്ച്, ഈ ഡയറക്ടറിയും മറ്റ് ആവശ്യമായ പാരാമീറ്ററുകളും വ്യക്തമാക്കി.

ഒരു ഇൻസ്റ്റലേഷൻ പാക്കേജ് സൃഷ്ടിക്കുന്നതിനുള്ള dpkg-deb-നുള്ള ശരിയായ ഡയറക്‌ടറിയിൽ ആദ്യം ഒരു "DEBIAN" ഉപഡയറക്‌ടറി ഉണ്ടായിരിക്കണം. സിസ്റ്റത്തിലേക്ക് പകർത്താത്ത എല്ലാ ഡാറ്റയും ഈ ഡയറക്ടറിയിൽ അടങ്ങിയിരിക്കണം, പക്ഷേ പാക്കേജുകൾക്കൊപ്പം പ്രവർത്തിക്കുന്നതിന് പ്രോഗ്രാമുകൾ നേരിട്ട് ഉപയോഗിക്കുന്നു - പാക്കേജിനെക്കുറിച്ചുള്ള വിവരങ്ങൾ, ഇൻസ്റ്റാളേഷന് മുമ്പും ശേഷവും നടത്തിയ സ്ക്രിപ്റ്റുകൾ മുതലായവ. പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ, DEBIAN ഡയറക്‌ടറിയിൽ അടങ്ങിയിരിക്കുന്ന ഫയലുകളൊന്നും പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്തിരിക്കുന്ന കമ്പ്യൂട്ടറിൻ്റെ ഫയൽ സിസ്റ്റത്തിലേക്ക് ചേർക്കില്ല.

"DEBIAN" ഡയറക്‌ടറിക്ക് പുറത്ത് പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുന്ന കമ്പ്യൂട്ടറിൻ്റെ ഫയൽ സിസ്റ്റത്തിലേക്ക് പകർത്തുന്ന ഫയലുകൾ അടങ്ങിയിരിക്കുന്നു. പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ ഫയലുകൾ അവ സ്ഥാപിക്കുന്ന ഡയറക്ടറികളിൽ സ്ഥിതിചെയ്യണം. അതായത്, dpkg-deb-ന് വേണ്ടി സൃഷ്ടിച്ച ഡയറക്‌ടറിക്കുള്ളിൽ, നമുക്ക് ആവശ്യമുള്ള ഫയൽ സിസ്റ്റത്തിൻ്റെ ഭാഗങ്ങളുടെ ഒരു പകർപ്പ് സൃഷ്ടിക്കണം - ഈ ഡയറക്ടറി അതിൻ്റെ റൂട്ട് ("/") പോലെ. അതായത്, ഉദാഹരണത്തിന്, പാക്കേജ് സൃഷ്ടിക്കുന്ന ഡയറക്ടറിയുടെ പേര് “~/TMP_DEBS/MyProgram” ആണെങ്കിൽ, ഇൻസ്‌റ്റാൾ ചെയ്യുമ്പോൾ അത് ആവശ്യമാണ്. ഫയൽ സിസ്റ്റം"MyProgram.png" എന്ന ഫയൽ "/usr/share/pixmaps" എന്ന ഡയറക്ടറിയിലേക്ക് എഴുതിയിരിക്കുന്നു - "~/TMP_DEBS/MyProgram" എന്ന ഡയറക്ടറിയിൽ നിങ്ങൾ "usr" എന്ന ഡയറക്ടറി സൃഷ്ടിക്കേണ്ടതുണ്ട്, അതിൽ - ഒരു ഡയറക്‌ടറി "പങ്കിടുക", "പങ്കിടുക" - ഒരു ഡയറക്‌ടറി "pixmaps" ", കൂടാതെ "Pixmaps" ഡയറക്‌ടറിയിൽ "MyProgram.png" എന്ന ഫയൽ സ്ഥാപിക്കുക. തൽഫലമായി, ഫയലിലേക്കുള്ള മുഴുവൻ പാതയും "~/TMP_DEBS/MyProgram/usr/share/pixmaps/MyProgram.png" ആയിരിക്കും. ഒരു പാക്കേജ് സൃഷ്‌ടിക്കുമ്പോൾ, "~/TMP_DEBS/MyProgram" എന്ന ഡയറക്‌ടറിയുടെ ഒരു ഭാഗം ഛേദിക്കപ്പെടും, കൂടാതെ ഇൻസ്റ്റാളേഷൻ സമയത്ത് "MyProgram.png" ഫയൽ ആവശ്യമുള്ള വിലാസത്തിൽ "/usr/share/pixmaps" ആയി അവസാനിക്കും. അതിനാൽ, ഓരോ ഫയലിനും ആവശ്യമായ ഡയറക്ടറികൾ സൃഷ്ടിക്കേണ്ടതുണ്ട്.

ഡയറക്‌ടറി സൃഷ്‌ടിച്ചതിനുശേഷം, ആവശ്യമായ പാരാമീറ്ററുകൾ കടന്ന് dpkg-deb പ്രവർത്തിപ്പിക്കുക മാത്രമാണ് ശേഷിക്കുന്നത്. പാക്കേജുകൾ നിർമ്മിക്കുന്നതിന് ഏറ്റവും ആവശ്യമായ dpkg-deb പാരാമീറ്ററുകൾ "dpkg-deb യൂട്ടിലിറ്റിക്കുള്ള കമാൻഡ് ലൈൻ പാരാമീറ്ററുകൾ" എന്ന വിഭാഗത്തിൽ വിവരിച്ചിരിക്കുന്നു. നിയന്ത്രണ ഫയലിൽ പിശകുകൾ ഇല്ലെങ്കിൽ, ഇൻസ്റ്റലേഷൻ പാക്കേജ് സൃഷ്ടിക്കപ്പെടും.

റൂബി-സൂക്കപ്പറിൻ്റെ ഉദാഹരണം ഉപയോഗിച്ച് ഡെബ് പാക്കേജുകൾ സൃഷ്ടിക്കുന്ന പ്രക്രിയ കഴിയുന്നത്ര വ്യക്തമായി വിശദീകരിക്കാൻ ഞാൻ ശ്രമിക്കും. ഞാൻ വിവരിച്ച റൂബി ജെംസ് പാക്കേജിംഗ് രീതി തെറ്റാണെന്ന് ഞാൻ നിങ്ങൾക്ക് ഉടൻ മുന്നറിയിപ്പ് നൽകുന്നു, ഇതിനായി gem2deb ഉപയോഗിക്കുന്നതാണ് നല്ലത്, പക്ഷേ... gem2deb ഉപയോഗിച്ച് ഉറവിടത്തിൽ നിന്ന് ruby-zookeper നിർമ്മിക്കുക പുതിയ പതിപ്പ്ഞാൻ വിജയിച്ചില്ല, അപ്പോൾ ഇതാ ഏറ്റവും ലളിതമായ അസംബ്ലി രീതി.

നിങ്ങൾ റൂബി പാക്കേജുകൾ നിർമ്മിക്കുകയാണെങ്കിൽ, ശുപാർശ ചെയ്യുന്നതുപോലെ, gem2deb വഴി, ലൈൻ ചേർക്കുന്നതാണ് നല്ലത്

കയറ്റുമതി DH_RUBY_IGNORE_TESTS=എല്ലാം/കയറ്റുമതി DH_RUBY_IGNORE_TESTS=എല്ലാം

ഡെബിയൻ/നിയമങ്ങളിൽ.

കാരണം ഞങ്ങൾ റൂബി കോഡ് നിർമ്മിക്കാൻ പോകുകയാണെങ്കിൽ, ഡെബ് പാക്കേജുകൾ നിർമ്മിക്കുന്നതിന് ഞങ്ങൾക്ക് റൂബിയും ഒരു കൂട്ടം ഉപകരണങ്ങളും ആവശ്യമാണ്.

Sudo apt-get ruby ​​dpkg-dev ഇൻസ്റ്റാൾ ചെയ്യുക

താങ്കളുടെ കയ്യില് ഉണ്ടെങ്കില് പഴയ പതിപ്പ് ruby, അപ്പോൾ അതിന് ഒരു ജെം കമാൻഡ് ഇല്ല, നിങ്ങൾ rubygems പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യണം അല്ലെങ്കിൽ റൂബി അപ്ഡേറ്റ് ചെയ്യണം.

ഇനി നമുക്ക് രത്നം ഇൻസ്റ്റാൾ ചെയ്യാം fpm, അത് ഞങ്ങൾക്കായി deb പാക്കേജ് കൂട്ടിച്ചേർക്കും.

സുഡോ ജെം ഇൻസ്റ്റാൾ എഫ്പിഎം എഫ്പിഎം -എസ് ജെം -ടി ഡെബ് സൂക്കീപ്പർ

നിലവിലെ ഡയറക്‌ടറിയിൽ rubygem-zookeeper_1.4.11_amd64.deb പാക്കേജ് ഉണ്ട്, സംഗതി ഇതിനകം ബാഗിലുണ്ടെന്ന് തോന്നുന്നു, പക്ഷേ കാരണം... ഞങ്ങൾക്ക് ഒരു സോഴ്‌സ് പാക്കേജ് ആവശ്യമാണ്, അതിലൂടെ നമുക്ക് അതിൽ നിന്ന് ഒരു ഡെബ് നിർമ്മിക്കാൻ കഴിയും, ഉദാഹരണത്തിന് OBS-ൽ, തുടർന്ന് ഞങ്ങൾ തുടരും.

നമുക്ക് ഒരു ബിൽഡ് ഡയറക്ടറി ഉണ്ടാക്കാം

Cp rubygem-zookeeper_1.4.11_amd64.deb ~/ cd mkdir -p ruby-zookeeper/fakeroot cd ruby-zookeeper/fakeroot

പുതുതായി കൂട്ടിച്ചേർത്ത പാക്കേജിൻ്റെ ഉള്ളടക്കങ്ങൾ അതിലേക്ക് എക്‌സ്‌ട്രാക്റ്റ് ചെയ്യാം

Dpkg-deb -R ~/rubygem-zookeeper_1.4.11_amd64.deb ruby-zookeeper_1.4.11-1

ഇപ്പോൾ ഞങ്ങൾ പാക്കേജ് നിർമ്മിക്കുന്നതിന് ആവശ്യമായ ഫയലുകൾ സൃഷ്ടിക്കും. അവ ഡെബിയൻ ഡയറക്ടറിയിലായിരിക്കണം. പായ്ക്ക് ചെയ്യാത്ത പാക്കേജിൽ നിന്ന് ചില ഫയലുകൾ നമുക്ക് പകർത്താനാകും.

Mkdir debian cp rubygem-zookeeper_1.4.11-1/DEBIAN/control debian/control

ഇനി പറയുന്ന അവസ്ഥയിലേക്ക് അത് എഡിറ്റ് ചെയ്യാം. Maintainer മാറ്റാൻ മറക്കരുത്

ഉറവിടം: റൂബി-സൂക്കീപ്പർ മെയിൻ്റനർ: വിഭാഗം: റൂബി ബിൽഡ്-ഡിപെൻഡ്സ്: debhelper (>= 7.0.50~) മുൻഗണന: അധിക ഹോംപേജ്: https://github.com/slyphon/zookeeper പാക്കേജ്: ruby-zookeeper ആർക്കിടെക്ചർ: amd64 ആശ്രയിച്ചിരിക്കുന്നു: $(shlibs:Depends) , $ (പലതരം: ആശ്രയിച്ചിരിക്കുന്നു), മാണിക്യം വിവരണം: ZooKeeper API ബൈൻഡിംഗുകൾക്ക് ചുറ്റുമുള്ള ഒരു താഴ്ന്ന നിലയിലുള്ള മൾട്ടി-റൂബി റാപ്പർ. ഒരു സൗഹൃദ ഇൻ്റർഫേസിനായി, http://github.com/slyphon/zk കാണുക. നിലവിൽ പിന്തുണയ്ക്കുന്നത്: MRI: (1.8.7, 1.9.2, 1.9.3), JRuby: ~> 1.6.7, Rubinius: 2.0.testing, REE 1.8.7. . ഈ ലൈബ്രറി മൃഗശാലാ ബൈൻഡിംഗുകളുടെ പതിപ്പ് 3.4.5 ഉപയോഗിക്കുന്നു.

നമുക്കും ഡെബിയൻ/നിയമങ്ങൾ ആവശ്യമാണ്. നമുക്ക് അത് സൃഷ്ടിക്കാം. മൃഗശാലാ ലൈബ്രറികളുടെ ലിങ്കിംഗ് പരിശോധിക്കുന്നത് ഒഴിവാക്കാൻ override_dh_shlibdeps ആവശ്യമാണ്, കാരണം അതു പോകുന്നില്ല.

#!/usr/bin/make -f # -*- makefile -*- %: dh $@ override_dh_shlibdeps: true

ഡെബിയൻ/റൂളുകളിൽ ടാബുകൾ ആവശ്യമാണ്, സ്‌പെയ്‌സുകൾ ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കാൻ കഴിയില്ല. നമുക്ക് അത് എക്സിക്യൂട്ടബിൾ ആക്കാം.

Chmod +x ഡെബിയൻ/നിയമങ്ങൾ

usr/* var/*

ഇനി നമുക്ക് debian/changelog സൃഷ്ടിച്ച് അവിടെ എഴുതാം:

റൂബി-സൂക്കീപ്പർ (1.4.11-1) പുറത്തിറക്കിയിട്ടില്ല; urgency=medium * പ്രാരംഭ റിലീസ് -- റൂട്ട് ബുധൻ, 25 നവംബർ 2015 20:01:55 +0300

ഞങ്ങൾക്ക് ഇപ്പോഴും debian/compat ആവശ്യമാണ്

എക്കോ 7 > debian/compat

ഒരു ലോക്കൽ ഡയറക്‌ടറിയിലേക്ക് ഇൻസ്‌റ്റാൾ ചെയ്‌ത ഫയലുകൾ നമുക്ക് പകർത്തി, പായ്ക്ക് ചെയ്യാത്ത പാക്കേജ് ഉള്ള ഫോൾഡർ ഇല്ലാതാക്കാം.

Mv ruby-zookeeper_1.4.11-1/(usr,var) . rm -r ruby-zookeeper_1.4.11-1

നമുക്ക് ഒരു പുതിയ പാക്കേജും ഒരു സോഴ്സ് പാക്കേജും നിർമ്മിക്കാം.

Dpkg-buildpackage -rfakeroot -uc -F

മുകളിലുള്ള ഡയറക്ടറിയിൽ നമുക്ക് ആവശ്യമായ എല്ലാ ഫയലുകളും ഉണ്ടാകും.

Ll .. ആകെ 5528 drwxr-xr-x 3 റൂട്ട് റൂട്ട് 4096 ഡിസംബർ 20 13:32 ./ drwx------ 12 റൂട്ട് റൂട്ട് 4096 ഡിസംബർ 20 13:31 ../ drwxr-xr-x 5 റൂട്ട് റൂട്ട് 4096 Dec 20 13:28 fakeroot/ -rw-r--r-- 1 റൂട്ട് റൂട്ട് 1261 ഡിസംബർ 20 13:32 ruby-zookeeper_1.4.11-1_amd64.changes -rw-r--r-- 1 റൂട്ട് റൂട്ട് 237504413:20 32 ruby-zookeeper_1.4.11-1_amd64.deb -rw-r--r-- 1 റൂട്ട് റൂട്ട് 565 ഡിസംബർ 20 13:32 ruby-zookeeper_1.4.11-1.dsc -rw-r--r-- 1 root18 റൂട്ട് 3263 ഡിസംബർ 20 13:32 ruby-zookeeper_1.4.11-1.tar.gz

ഫലത്തിൻ്റെ ഉള്ളടക്കം നിങ്ങൾക്ക് പരിശോധിക്കാം deb പാക്കേജ്

എങ്ങനെയെന്ന് ഒരു അമൂർത്ത ഉദാഹരണത്തിലൂടെ ഇന്ന് ഞാൻ നിങ്ങളോട് പറയും ശരിയാണ്ഉബുണ്ടു/ഡെബിയനു വേണ്ടി *.deb പാക്കേജ് സൃഷ്‌ടിക്കുക. ഞങ്ങൾ ഒരു ബൈനറി പാക്കേജ് ഉണ്ടാക്കും. ഉറവിടങ്ങളിൽ നിന്ന് ബൈനറികൾ കംപൈൽ ചെയ്യുന്ന പാക്കേജുകൾ ഇവിടെ പരിഗണിക്കില്ല: താഴെ വിവരിച്ചിരിക്കുന്ന അറിവിൽ പ്രാവീണ്യം നേടിയ ശേഷം, ഭാവിയിൽ റെഡിമെയ്ഡ് ഉദാഹരണങ്ങൾനിങ്ങൾക്ക് സാരാംശം മനസിലാക്കാനും സാമ്യം ഉപയോഗിച്ച് പ്രവർത്തിക്കാനും കഴിയും :)

ലേഖനത്തിൽ "സ്വമേധയാ" അനാവശ്യമായ കലഹങ്ങളൊന്നും ഉണ്ടാകില്ല: പാക്കേജ് ഫോർമാറ്റ് വളരെ ലളിതവും ഏറ്റവും പ്രധാനമായി യുക്തിസഹവുമായ ഘടനയായി പരിണമിച്ചു, കൂടാതെ എല്ലാം അക്ഷരാർത്ഥത്തിൽ മുട്ടുകുത്തി, രണ്ട് പ്രത്യേക യൂട്ടിലിറ്റികൾ ഉപയോഗിച്ച് ചെയ്യുന്നു.

ഒരു ബോണസ് എന്ന നിലയിൽ, ലേഖനത്തിൻ്റെ അവസാനം ഒരു ഉദാഹരണം ഉണ്ടാകും. പെട്ടെന്നുള്ള സൃഷ്ടിസ്വന്തം പ്രാദേശിക ശേഖരം: റിപ്പോസിറ്ററിയിൽ നിന്ന് പാക്കേജുകൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നത് ഡിപൻഡൻസികൾ സ്വയമേവ ട്രാക്ക് ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്നു, തീർച്ചയായും! - നിരവധി മെഷീനുകളിൽ ഒരു കൺസോൾ കമാൻഡ് ഉപയോഗിച്ച് എല്ലാം ഇൻസ്റ്റാൾ ചെയ്യുക :)

അകത്തേക്ക് പോകാൻ ആഗ്രഹിക്കാത്തവർക്ക് ശക്തമായ സംവിധാനംലിനക്സിൽ സോഫ്‌റ്റ്‌വെയർ ഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ, ചെക്ക്ഇൻസ്റ്റാൾ പ്രോഗ്രാമിൻ്റെ വെബ്‌സൈറ്റ് സന്ദർശിക്കാൻ ഞാൻ ശുപാർശ ചെയ്യുന്നു: “ഇൻസ്റ്റാൾ ചെയ്യുക” എന്ന കമാൻഡിൽ നിന്ന് അത് സ്വയമേവ ഒരു ഡെബ് പാക്കേജ് സൃഷ്ടിക്കുന്നു ;) ഞങ്ങൾ ജിജ്ഞാസയോടെ -

ഉറവിടങ്ങൾ

പല സ്ഥലങ്ങളിൽ നിന്നും വിവരങ്ങൾ ശേഖരിച്ചിട്ടുണ്ട്, എന്നാൽ ഇവിടെ പ്രധാനം രണ്ട്:
  • Debian.org: ഡെബിയൻ പോളിസി മാനുവൽ - ഔദ്യോഗിക
  • ഉബുണ്ടു വിക്കി: പാക്കേജിംഗ് ഗൈഡ്/ബേസിക്
ആപ്ലിക്കേഷൻ ഇൻസ്റ്റാളേഷനുകളിൽ നിങ്ങൾക്ക് ശക്തമായ നിയന്ത്രണം നൽകുന്നതിന് ആവശ്യമായ പാക്കേജുകൾ സൃഷ്ടിക്കുന്നതിൻ്റെ അടിസ്ഥാനകാര്യങ്ങൾ ഈ ലേഖനം വിശദമാക്കുന്നു. കൂടുതൽ വിപുലമായ ഫീച്ചറുകൾ ഒഴിവാക്കിയിട്ടുണ്ട്, എന്നാൽ താൽപ്പര്യമുള്ളവർക്കായി ഡോക്യുമെൻ്റേഷനിലേക്കുള്ള നേരിട്ടുള്ള ലിങ്കുകൾ നൽകിയിട്ടുണ്ട്.
ലേഖനം ഏതെങ്കിലും ഡോക്യുമെൻ്റേഷൻ്റെ പകർപ്പോ വിവർത്തനമോ അല്ല: ഇത് കുറിപ്പുകളായി കിടന്നിരുന്ന ഒരു അറിവിൻ്റെ ശേഖരമാണ്, ഇപ്പോൾ ഒരു ലേഖനത്തിൻ്റെ രൂപത്തിൽ ഫോർമാറ്റ് ചെയ്തിരിക്കുന്നു. വ്യക്തതയ്ക്കായി, എല്ലായിടത്തും ഉദാഹരണങ്ങളുണ്ട്, വിരലുകളിൽ വിശദീകരണങ്ങൾ, ഞാൻ കണ്ടെത്തിയ സൗകര്യപ്രദമായ സവിശേഷതകൾ, ചിലത് സാധാരണ തെറ്റുകൾഅറിയാതെ ചെയ്യാവുന്നത്.

തയ്യാറാക്കൽ

എന്തുകൊണ്ടാണ് ഇതെല്ലാം?
അതെ, ചെക്ക്ഇൻസ്റ്റാളിന് ഒരു വർക്കിംഗ് പാക്കേജ് സൃഷ്ടിക്കാൻ കഴിയും, എന്നാൽ ഡെബ് പാക്കേജുകൾക്ക് കഴിവുള്ള എല്ലാ ഗുഡികളെയും ഇത് പിന്തുണയ്ക്കുന്നില്ല :) അതായത്:
  • പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനു മുമ്പും ശേഷവും പകരം സ്ക്രിപ്റ്റുകൾ എക്സിക്യൂട്ട് ചെയ്തു :)
  • കോൺഫിഗറേഷൻ ഫയലുകളുടെ യാന്ത്രിക മാനേജുമെൻ്റ്: ചോദിക്കാതെ തന്നെ പഴയ കോൺഫിഗറേഷനുകൾ പുതിയവ ഉപയോഗിച്ച് തിരുത്തിയെഴുതാൻ പാക്കേജ് നിങ്ങളെ അനുവദിക്കില്ല
  • ടെംപ്ലേറ്റുകൾക്കൊപ്പം പ്രവർത്തിക്കുന്നു: ഇൻസ്റ്റാളേഷൻ സമയത്ത് ഉപയോക്താവിനോട് ചോദ്യങ്ങൾ ചോദിക്കാനുള്ള കഴിവ് (!!!)
  • മറ്റ് പാക്കേജുകളിൽ നിന്ന് ഫയലുകൾ മാറ്റുന്നു
നിങ്ങള്ക്ക് എന്താണ് ആവശ്യം
തീർച്ചയായും, ഒരു സമ്പൂർണ്ണ പാക്കേജ് സൃഷ്ടിക്കാൻ tar, gz, ar ആർക്കൈവറുകൾ മതിയാകും, എന്നാൽ നിങ്ങൾക്ക് അനാവശ്യമായ കലഹങ്ങൾ ഒഴിവാക്കാനും ജീവിതം എളുപ്പമാക്കുന്നതിന് സൃഷ്ടിച്ച ഉപകരണങ്ങൾ ഉപയോഗിക്കാനും കഴിയും :)
ഞങ്ങൾ വെച്ചു:
$ sudo apt-get dpkg debconf debhelper lintian ഇൻസ്റ്റാൾ ചെയ്യുക
എന്തു ചെയ്യണം
ഉദാഹരണത്തിന്, ഞങ്ങൾ ഒരു നിശ്ചിത സ്ക്രിപ്റ്റ് /usr/bin/super.sh പരിഗണിക്കും. ഉള്ളിൽ എന്താണെന്നത് പ്രശ്നമല്ല, പ്രധാന കാര്യം അത് ശരിയായ സ്ഥലത്ത് എങ്ങനെ ദൃശ്യമാകുന്നു എന്നതാണ് :)
ഫോൾഡർ തയ്യാറാക്കുന്നു
നിങ്ങളുടെ ഹോം ഡയറക്‌ടറിയിൽ (അല്ലെങ്കിൽ സൗകര്യപ്രദമായ എവിടെയെങ്കിലും) ഭാവി പാക്കേജിൻ്റെ എല്ലാ ഫയലുകളും സ്ഥിതി ചെയ്യുന്ന ഒരു ഫോൾഡർ സൃഷ്‌ടിക്കുക: mkdir ~/supersh . ഇനി മുതൽ ഞങ്ങൾ അത് വിളിക്കും പാക്കേജ് റൂട്ട്.
പാക്കേജിൻ്റെ റൂട്ടിൽ, ഒരു ഫോൾഡർ "DEBIAN" സൃഷ്ടിക്കുക (വലിയ അക്ഷരങ്ങളിൽ, ഇത് പ്രധാനമാണ്!). ഈ ഫോൾഡറിൽ പാക്കേജ് ജനറേഷൻ നിയന്ത്രിക്കുന്ന വിവരങ്ങൾ അടങ്ങിയിരിക്കുന്നു, പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ ഡിസ്കിലേക്ക് പകർത്തില്ല.
കൂടാതെ, പാക്കേജിൻ്റെ റൂട്ട് ഫോൾഡറിൽ ഭാവിയിലെ "ഡിസ്ക് റൂട്ട്" അടങ്ങിയിരിക്കുന്നു: പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ, എല്ലാ ഫയലുകളും ("ഡെബിയൻ" ഫോൾഡർ ഒഴികെ) റൂട്ടിലേക്ക് / അൺപാക്ക് ചെയ്യുന്നു. അതിനാൽ, പാക്കേജ് റൂട്ടുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ നമ്മുടെ സ്ക്രിപ്റ്റ് ഈ പാതയിൽ സ്ഥിതിചെയ്യണം: "usr/bin/super.sh"
കറുപ്പിൽ വെള്ള:
mkdir -p ~/supersh/DEBIAN # നിയന്ത്രണ ഫോൾഡർ
mkdir -p ~/supersh/usr/bin # സ്ക്രിപ്റ്റിലേക്കുള്ള പാത
cp super.sh ~/supersh/usr/bin/ # ഞങ്ങളുടെ സ്ക്രിപ്റ്റ് ശരിയായ സ്ഥലത്തേക്ക് പകർത്തുക
തൽഫലമായി, ഞങ്ങൾക്ക് ഉണ്ട്:
supersh/DEBIAN/
supersh/usr/
supersh/usr/bin/
supersh/usr/bin/super.sh

പാക്കേജ് സൃഷ്ടിക്കുക: DEBIAN/*

ഞാൻ പറഞ്ഞതുപോലെ, DEBIAN ഫോൾഡറിൽ ഇൻസ്റ്റാളേഷൻ സമയത്ത് ഉപയോഗിക്കുന്ന ഫയലുകൾ അടങ്ങിയിരിക്കുന്നു. ഇവിടെ ഞാൻ ഓരോ ഫയലും (ഉദാഹരണങ്ങളോടെ) വിവരിക്കും.
ഒരു പൂർണ്ണ പാക്കേജ് സൃഷ്ടിക്കാൻ, നിയന്ത്രണ ഫയൽ "നിയന്ത്രണം" മതിയാകും, ബാക്കിയുള്ളവ ഒന്നുകിൽ അറ്റാച്ചുചെയ്യാൻ ഉപയോഗിക്കുന്നു ടെക്സ്റ്റ് വിവരങ്ങൾ(ചേഞ്ച്ലോഗ്, ലൈസൻസ്), അല്ലെങ്കിൽ വിപുലമായ ആപ്ലിക്കേഷൻ ഇൻസ്റ്റാളേഷൻ കഴിവുകൾ നിയന്ത്രിക്കാൻ.
DEBIAN/* ഫോൾഡറിൽ ചുവടെ വിവരിച്ചിരിക്കുന്ന ഫയലുകളിൽ നിന്ന്, ആവശ്യമായവ തിരഞ്ഞെടുത്ത് നിർദ്ദേശങ്ങൾക്കനുസരിച്ച് പൂരിപ്പിക്കുക :)
ഞങ്ങളുടെ ഉദാഹരണത്തിൽ, മാത്രം നിർബന്ധിത DEBIAN/നിയന്ത്രണം.
ഡെബിയൻ/നിയന്ത്രണം: അടിസ്ഥാന വിവരങ്ങൾ
എല്ലാ പ്രധാന സവിശേഷതകളും വിവരിക്കുന്ന സെൻട്രൽ പാക്കേജ് ഫയലാണ് നിയന്ത്രണം. "ആട്രിബ്യൂട്ട്: മൂല്യം" ജോഡികൾ അടങ്ങുന്ന ഒരു ടെക്സ്റ്റ് ഫയലാണ് ഫയൽ. നിങ്ങൾക്ക് അഭിപ്രായങ്ങൾ ഉപയോഗിക്കാം: വരിയുടെ തുടക്കത്തിൽ "#" ചിഹ്നം (സവിശേഷത dpkg പതിപ്പിൽ ചേർത്തു >= 1.10.11, നിങ്ങൾ അഭിപ്രായങ്ങളെ ആശ്രയിക്കരുത് :).
നിയന്ത്രണ ഫയലിനായി നിർവചിച്ചിരിക്കുന്ന എല്ലാ ഫീൽഡുകളും പട്ടിക കാണിക്കുന്നു. ആവശ്യമായ ഫീൽഡുകൾ ഹൈലൈറ്റ് ചെയ്യുന്നു ധീരമായ: അവ കൂടാതെ, പാക്കേജ് ശരിയായി സമാഹരിച്ചതായി കണക്കാക്കില്ല.
ആട്രിബ്യൂട്ട് വിവരണം ഉദാഹരണങ്ങൾ
- അടിസ്ഥാന -
പാക്കേജ്: പാക്കേജിൻ്റെ പേര്: - ലാറ്റിൻ പ്രതീകങ്ങൾ, അക്കങ്ങൾ, ഹൈഫനുകൾ എന്നിവ മാത്രം. ഇൻസ്റ്റാളേഷൻ സമയത്ത് ഉപയോഗിച്ച പേര്: apt-get install പാക്കേജ്: supersh
പതിപ്പ്: പാക്കേജ് പതിപ്പ് (അകത്തെ പ്രോഗ്രാമുകളും). അപ്ഡേറ്റ് ചെയ്യണോ എന്ന് നിർണ്ണയിക്കാൻ ഉപയോഗിക്കുന്നു.
സ്വീകരിച്ച ഫോർമാറ്റ് ഇതാണ്:<версия_программы>-<версия_пакета> .
ഞാൻ ശുപാർശചെയ്യുന്നു എപ്പോഴുംപാക്കേജ് പതിപ്പ് സൂചിപ്പിക്കുക: പാക്കേജ് ഘടന മാറുമ്പോൾ, എണ്ണം ഒന്നായി വർദ്ധിക്കുന്നു.
സ്വീകാര്യമായ പ്രതീകങ്ങൾ തികച്ചും സൗജന്യമാണ്: നിങ്ങൾക്ക് തീയതിയും അക്ഷരങ്ങളും ഉപയോഗിക്കാം. നിങ്ങളുടെ ശേഖരത്തിൽ ഇന്ന് ഉദാഹരണങ്ങൾ കാണുക :)
പതിപ്പ്: 1.0-1
പതിപ്പ്: 2009.12.12-1
നൽകുന്നു ഈ പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്തതിൻ്റെ ഫലമായി സിസ്റ്റത്തിൽ രജിസ്റ്റർ ചെയ്ത ആപ്ലിക്കേഷൻ്റെ പേര് (ഒരുപക്ഷേ വെർച്വൽ).
അപൂർവ്വമായി മാത്രമേ ഉപയോഗിക്കുന്നുള്ളൂ: പ്രധാനമായും പാക്കേജിൻ്റെ പേര് മാറ്റേണ്ടതുണ്ടെങ്കിൽ, അല്ലെങ്കിൽ ഒന്നിലധികം പാക്കേജുകൾ ഒരേ പ്രവർത്തനക്ഷമത വാഗ്ദാനം ചെയ്യുന്നുവെങ്കിൽ. ഉദാഹരണത്തിന്, Apache, nginx പാക്കേജുകൾ httpd ഡെമൺ കഴിവ് നൽകുന്നു: നൽകുന്നു: httpd
ഇൻസ്റ്റാൾ ചെയ്യാൻ ശ്രമിക്കുമ്പോൾ നിങ്ങൾക്ക് ഒരു പിശക് നേരിട്ടേക്കാം: "ഒരു വെർച്വൽ പാക്കേജാണ്". ഇതാണത് :)
നൽകുന്നു: supersh
പരിപാലിക്കുന്നയാൾ പാക്കേജ് പരിപാലിക്കുന്നയാളുടെ പേരും ഇമെയിലും: ആപ്ലിക്കേഷൻ "ഡീബിയനൈസ് ചെയ്ത" വ്യക്തി.
ഫോർമാറ്റ് ഏകപക്ഷീയമാണ്, പക്ഷേ പേര് അംഗീകരിച്ചു
പരിപാലിക്കുന്നയാൾ: o_O Tync
വാസ്തുവിദ്യ പാക്കേജ് ഉദ്ദേശിക്കുന്ന പ്രൊസസർ ആർക്കിടെക്ചർ.
സാധുവായ മൂല്യങ്ങൾ: i386, amd64, എല്ലാം, ഉറവിടം
എല്ലാം സ്ക്രിപ്റ്റുകൾക്കായി ഉപയോഗിക്കുന്നു: അവ പോർട്ടബിൾ ആണ്, അല്ലേ? :)
കംപൈൽ ചെയ്ത സോഴ്സ് പാക്കേജുകൾക്കായി സോഴ്സ് ഉപയോഗിക്കുന്നു
വാസ്തുവിദ്യ: എല്ലാം
വിഭാഗം ആപ്ലിക്കേഷൻ സാധാരണയായി ഉപയോഗിക്കുന്ന ടാസ്ക്ക് നിർവചിക്കുന്നു (അപ്ലിക്കേഷൻ ഗ്രൂപ്പ്).
സാധ്യമായ മൂല്യങ്ങൾ: അഡ്മിൻ, ബേസ്, കോം, കോൺട്രിബ്, ഡെവലപ്പ്, ഡോക്, എഡിറ്റർമാർ, ഇലക്ട്രോണിക്സ്, എംബഡഡ്, ഗെയിമുകൾ, ഗ്നോം, ഗ്രാഫിക്സ്, ഹാംറേഡിയോ, ഇൻ്റർപ്രെട്ടേഴ്സ്, കെഡിഇ, ലിബ്സ്, ലിബ്ഡെവൽ, മെയിൽ, ഗണിതം, മറ്റ്, നെറ്റ്, വാർത്തകൾ, നോൺ-ഫ്രീ , oldlibs, otherosfs, perl, python, science, shells, sound, Tex, text, utils, web, x11
വിഭാഗം: മറ്റുള്ളവ
വിവരണം പാക്കേജിൻ്റെ വിവരണം.
വിവരണത്തിൽ രണ്ട് ഭാഗങ്ങളുണ്ട്: ഒരേ വരിയിൽ ഒരു ഹ്രസ്വ വിവരണം (70 പ്രതീകങ്ങൾ), തുടർന്നുള്ള വരികളിൽ ഒരു നീണ്ട വിവരണം, ഒരു സ്പെയ്സ് ഉപയോഗിച്ച് ആരംഭിക്കുന്നു.
വിപുലീകൃത വിവരണത്തിൽ, എല്ലാ പുതിയ വരികളും അവഗണിച്ചിരിക്കുന്നു. \n ചേർക്കാൻ ഒരൊറ്റ ഡോട്ട് ഉപയോഗിക്കുന്നു.
വിവരണം: ചെറുത്.
␣ നീണ്ട
␣ ഇവിടെ പോകുന്നു.
␣.
␣ പുതിയ ലൈൻ.
- കണക്ഷനുകളും ഡിപൻഡൻസികളും -
ആശ്രയിച്ചിരിക്കുന്നു ഈ പാക്കേജ് ഇൻസ്‌റ്റാൾ ചെയ്യുന്നതിന് ആവശ്യമായ പാക്കേജുകളുടെ കോമയാൽ വേർതിരിച്ച ലിസ്റ്റ്.
പാക്കേജിൻ്റെ പേരിന് ശേഷം, ഓപ്പറേറ്റർമാരെ ഉപയോഗിച്ച് നിങ്ങൾക്ക് പരാൻതീസിസിൽ ഒരു പതിപ്പ് നിയന്ത്രണം വ്യക്തമാക്കാൻ കഴിയും:<<, =, >>, <=, >=. ഓപ്പറേറ്ററെ വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ, >= ഉപയോഗിക്കുന്നു
ആശ്രയിച്ചിരിക്കുന്നു: dpkg, libz (>= 1.2.3), jpeg (= 6b), png (< 2.0)
മുൻകൂട്ടി ആശ്രയിച്ചിരിക്കുന്നു ഈ പാക്കേജിൻ്റെ ഇൻസ്റ്റലേഷൻ പ്രക്രിയയിൽ ആവശ്യമായ പാക്കേജുകളുടെ ലിസ്റ്റ്.
പാക്കേജ് ഇൻസ്റ്റലേഷൻ സ്ക്രിപ്റ്റുകൾക്ക് ഈ ഡിപൻഡൻസികൾ ആവശ്യമായി വന്നേക്കാം: ഉദാഹരണത്തിന്, ഫ്ലാഷ്-ഇൻസ്റ്റാളർ പാക്കേജിന് wget ആവശ്യമാണ്
നിങ്ങൾക്ക് പതിപ്പ് നിയന്ത്രണങ്ങൾ ഉപയോഗിക്കാം (ആശ്രയിക്കുന്നത് കാണുക).
മുൻകൂട്ടി ആശ്രയിച്ചിരിക്കുന്നു: wget (>= 1.0)
സംഘർഷങ്ങൾ ഒരേ സമയം ഇൻസ്റ്റാൾ ചെയ്യാൻ കഴിയാത്ത പാക്കേജുകളുടെ ലിസ്റ്റ്.
ലിസ്റ്റുചെയ്ത പാക്കേജുകളിലൊന്നെങ്കിലും ഇതിനകം ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെങ്കിൽ ഇൻസ്റ്റലേഷൻ പരാജയപ്പെടും.
വൈരുദ്ധ്യങ്ങൾ: ക്രാപ്‌സ്ക്രിപ്റ്റ്
പകരക്കാർ ഈ പാക്കേജ് ഉപയോഗിച്ച് ഫയലുകൾ പരിഷ്കരിച്ച പാക്കേജുകളുടെ ലിസ്റ്റ്.
നിങ്ങൾ എന്തെങ്കിലും മാറ്റുന്ന "പാച്ച് പാക്കേജ്" സൃഷ്ടിക്കുകയാണെങ്കിൽ അത് ആവശ്യമാണ്: അല്ലാത്തപക്ഷം, മറ്റൊരാളുടെ പാക്കേജിൻ്റെ ഫയലുകൾ മാറ്റിസ്ഥാപിക്കുമ്പോൾ, ഒരു ഇൻസ്റ്റാളേഷൻ പിശക് സംഭവിക്കും. ഉദാഹരണത്തിന്, UT2004 പാച്ച് ചെയ്യുന്നതും ലക്ഷ്യമിടുന്ന റോക്കറ്റ് ലോഞ്ചറിൻ്റെ ശബ്ദം നീക്കം ചെയ്യുന്നതുമായ ഈ പാക്കേജ് എൻ്റെ പക്കലുണ്ട് :)
പകരക്കാർ: ut2004
ശുപാർശ ചെയ്യുന്നു ഇൻസ്റ്റാളേഷനായി ശുപാർശ ചെയ്യുന്ന പാക്കേജുകളുടെ ലിസ്റ്റ്
ഈ പാക്കേജുകൾ ഓപ്ഷണൽ ആണ്, എന്നാൽ സാധാരണയായി കറൻ്റുമായി സംയോജിച്ച് ഉപയോഗിക്കുന്നു
ശുപാർശ ചെയ്യുന്നു: സൂപ്പർ പ്ലാറ്റ്ഫോം
നിർദ്ദേശങ്ങൾ ഇൻസ്റ്റാളേഷനായി വാഗ്ദാനം ചെയ്യുന്ന പാക്കേജുകളുടെ ലിസ്റ്റ്.
ഈ പാക്കേജുകൾ ആവശ്യമില്ല, പക്ഷേ അവയ്‌ക്കൊപ്പം പ്രോഗ്രാം കൂടുതൽ നന്നായി പ്രവർത്തിക്കുന്നു :) സിദ്ധാന്തത്തിൽ, പാക്കേജ് മാനേജർ അവ ഇൻസ്റ്റാൾ ചെയ്യാൻ വാഗ്ദാനം ചെയ്യണം.
നിർദ്ദേശിക്കുന്നു: supersh-modules
ബിൽഡ്-ആശ്രിത (വാസ്തുവിദ്യയ്ക്ക് മാത്രം: ഉറവിടം)
ഉറവിടങ്ങൾ കംപൈൽ ചെയ്യുന്നതിന് ആവശ്യമായ പാക്കേജുകളുടെ ലിസ്റ്റ്.
ആശ്രയിക്കുന്നത് പോലെ തന്നെ, എന്നാൽ യുക്തിപരമായി വേർതിരിക്കുന്നു.
ബിൽഡ്-ആശ്രിത: cmake
- അധിക -
ഇൻസ്റ്റാൾ ചെയ്ത വലുപ്പം പാക്കേജ് ഫയലുകളുടെ വലുപ്പം കിലോബൈറ്റിൽ.
ഏറ്റവും അടുത്തുള്ള പൂർണ്ണ സംഖ്യയിലേക്ക് റൗണ്ട് ചെയ്ത ഒരു സംഖ്യ. ആവശ്യമായ മൊത്തം ഡിസ്ക് സ്പേസ് നിർണ്ണയിക്കാൻ പാക്കേജ് മാനേജർ ഉപയോഗിക്കുന്നു.
ഇൻസ്റ്റാൾ ചെയ്ത വലുപ്പം: 3
മുൻഗണന പാക്കേജ് മുൻഗണന: സിസ്റ്റത്തിൽ ഇത് എത്ര പ്രധാനമാണ്
സാധ്യമായ മൂല്യങ്ങൾ: അധിക, ഓപ്ഷണൽ, സ്റ്റാൻഡേർഡ്, പ്രധാനപ്പെട്ട, ആവശ്യമുള്ളത് (അത്തരം പാക്കേജുകൾ നീക്കം ചെയ്യപ്പെടുന്നില്ല!).
മുൻഗണന: ഓപ്ഷണൽ
അത്യാവശ്യം നിങ്ങൾ ഈ ആട്രിബ്യൂട്ട് "അതെ" എന്ന് സജ്ജീകരിച്ചാൽ, പാക്കേജ് നീക്കം ചെയ്യാൻ കഴിയില്ല. അത്യാവശ്യം: അതെ
ഉത്ഭവം സ്ട്രിംഗ്: പാക്കേജിലെ പ്രോഗ്രാമുകൾ എവിടെ നിന്നാണ് വന്നത്. സാധാരണയായി രചയിതാവിൻ്റെ വെബ്സൈറ്റ് URL, ഇമെയിൽ അല്ലെങ്കിൽ പേര് ഉപയോഗിക്കുന്നു. ഉത്ഭവം: തലച്ചോറ്
എക്സ്-സോഴ്സ് ഉറവിടങ്ങളുള്ള *.tar.gz ആർക്കൈവിലേക്കുള്ള പൂർണ്ണ ലിങ്ക് എക്സ്-ഉറവിടം: ...*.tgz

അതെ, ഇവയാണ് നിയന്ത്രണ ഫയലിൻ്റെ ദൃഢമായ കഴിവുകൾ :)
ഞങ്ങളുടെ ഉദാഹരണത്തിൽ ഇത് ഇതുപോലെ കാണപ്പെടുന്നു:
പാക്കേജ്: supersh
പതിപ്പ്: 1.0-1
വിഭാഗം: മറ്റുള്ളവ
വാസ്തുവിദ്യ: എല്ലാം
ആശ്രയിച്ചിരിക്കുന്നു: ബാഷ്, സെഡ് (>= 3.02-8)
പരിപാലിക്കുന്നയാൾ: o_O Tync
വിവരണം: സൂപ്പർ ഷെൽ സ്ക്രിപ്റ്റ്
␣ ഒരു സൂപ്പർ ഉദാഹരണ സ്ക്രിപ്റ്റ്.
␣.
␣ഇത് ഒന്നും ചെയ്യുന്നില്ല :)
ഡെബിയൻ/പകർപ്പവകാശം:/ലൈസൻസ്
ലൈസൻസ് ടെക്സ്റ്റ്. ഫയൽ ആവശ്യമില്ല, എന്നാൽ നിങ്ങളുടെ കർത്തൃത്വത്തെ ഊന്നിപ്പറയുന്നതാണ് നല്ലത്;)
DEBIAN/changelog: ചരിത്രം മാറ്റുക
ഒരു പ്രത്യേക ഫോർമാറ്റിലുള്ള ചേഞ്ച്ലോഗ്: പതിപ്പ് നമ്പർ, പുനരവലോകനം, വിതരണം, പാക്കേജിൻ്റെ പ്രാധാന്യം എന്നിവ ലഭിക്കുന്നതിന് dpkg ഉപയോഗിക്കുന്നു. നോക്കുന്നതാണ് നല്ലത്;) ഞാൻ ഒരു ഉദാഹരണം തരാം:
സൂപ്പർഷ് (1.0-1) സ്ഥിരത; അടിയന്തിരം=ഇടത്തരം

O_O Tync സൺ, 13 ഡിസംബർ 2009 00:11:46 +0300

DEBIAN/confiles: കോൺഫിഗറേഷൻ ഫയലുകളുടെ ലിസ്റ്റ്
സാധാരണയായി പാക്കേജുകളിൽ ശൂന്യത അടങ്ങിയിരിക്കുന്നു കോൺഫിഗറേഷൻ ഫയലുകൾ, ഉദാഹരണത്തിന്, / etc. വ്യക്തമായും, പാക്കേജിലെ കോൺഫിഗറേഷൻ അപ്ഡേറ്റ് ചെയ്താൽ, ഉപയോക്താവിന് അവൻ്റെ എഡിറ്റ് ചെയ്ത കോൺഫിഗറേഷൻ നഷ്‌ടമാകും. "config.d" പോലുള്ള ഫോൾഡറുകൾ ഉപയോഗിച്ച് ഈ പ്രശ്നം എളുപ്പത്തിൽ പരിഹരിക്കപ്പെടും, പ്രധാന കോൺഫിഗറിൽ ഉൾപ്പെടുത്തിയിട്ടുള്ള ഉള്ളടക്കങ്ങൾ, തനിപ്പകർപ്പ് ഓപ്ഷനുകൾ മാറ്റിസ്ഥാപിക്കുന്നു.
DEBIAN/confiles ഫയൽ പ്രശ്നം വ്യത്യസ്തമായി പരിഹരിക്കുന്നു: അതിൽ കോൺഫിഗറേഷൻ ഫയലുകളുടെ ഒരു ലിസ്റ്റ് അടങ്ങിയിരിക്കുന്നു (ഒരു വരിയിൽ ഒന്ന്). അകത്തുണ്ടെങ്കിൽ നിലവിലുള്ള പതിപ്പ്പാക്കേജ് ഈ ഫയലുകളിലൊന്ന് അപ്‌ഡേറ്റുചെയ്‌തു, കോൺഫിഗറേഷൻ പതിപ്പുകളുടെ വൈരുദ്ധ്യത്തെക്കുറിച്ച് ഉപയോക്താവിന് മുന്നറിയിപ്പ് ലഭിക്കുന്നു, കൂടാതെ ഇത് തിരഞ്ഞെടുക്കാം: ഇല്ലാതാക്കുക, മാറ്റിസ്ഥാപിക്കുക, അല്ലെങ്കിൽ ലയിപ്പിക്കുക.
കോൺഫിഗറുകളിലേക്ക് ആഴ്ന്നിറങ്ങുന്ന ഓരോ ലിനക്സ് ഉപയോക്താവിനും ഈ സാഹചര്യം നേരിടേണ്ടി വന്നിട്ടുണ്ടാകും :) ഇവിടെ നിന്ന് കാലുകൾ വളരുന്നു.
ഓരോ വരിയിലും ഓരോ കോൺഫിഗറിലേക്കുള്ള പൂർണ്ണമായ പാത്ത് അടങ്ങിയിരിക്കണം. ഉദാഹരണത്തിന്:
/etc/supersh/init.conf
/etc/supersh/actions.conf
DEBIAN/dirs: സൃഷ്ടിക്കേണ്ട ഫോൾഡറുകളുടെ ലിസ്റ്റ്
"പ്രോഗ്രാമിന് ആവശ്യമായ ഫോൾഡറുകളിലേക്കുള്ള സമ്പൂർണ്ണ പാതകളുടെ ഒരു ലിസ്റ്റ്, പക്ഷേ ചില കാരണങ്ങളാൽ സൃഷ്ടിക്കപ്പെട്ടിട്ടില്ല." - ഔദ്യോഗിക ഡോക്യുമെൻ്റേഷൻ പറയുന്നു. പ്രായോഗികമായി, പ്രോഗ്രാം ഒരു തരത്തിൽ അല്ലെങ്കിൽ മറ്റൊരു തരത്തിൽ ഉപയോഗിക്കുന്ന എല്ലാ ഫോൾഡറുകളും ഇവിടെ ലിസ്റ്റ് ചെയ്തിരിക്കുന്നു: ബൈനറികൾ സ്ഥിതി ചെയ്യുന്നതും പ്രോഗ്രാം ഉപയോഗിക്കുന്നതും.
വരിയിൽ ഒന്ന്. ഉദാഹരണത്തിന്:
/var/log/supersh
/var/lib/supersh
നിരവധി ശൂന്യമായ ഫോൾഡറുകൾ സൃഷ്ടിക്കുന്നതിന് ഉപയോഗിക്കാൻ സൗകര്യപ്രദമാണ്.
DEBIAN/മെനു: മെനു ഇനങ്ങൾ സൃഷ്ടിക്കുക
മെനു ഇനങ്ങൾ സൃഷ്ടിക്കുന്നതിനുള്ള ഒരു തന്ത്രപരമായ ഫയൽ. അത് എനിക്കൊരിക്കലും പ്രവർത്തിച്ചില്ല :) അതിലെ ഉള്ളടക്കങ്ങൾ അസാധാരണമായ രീതിയിൽ ഉപയോഗിച്ചിട്ടുണ്ടെന്ന തോന്നൽ ഒരാൾക്ക് ലഭിക്കും വിൻഡോ മാനേജർമാർ, അല്ലെങ്കിൽ ചില കൺസോൾ മെനുവിൽ... അല്ലെങ്കിൽ ഇത് നേരത്തെ ഉപയോഗിച്ചിരുന്നു, അത് മറന്നുപോയി :)
ഉദാഹരണം:
?പാക്കേജ്(supersh):needs="text" section="Applications/programming" title="Super Shell Script" command="/usr/bin/super.sh" !}
ചെയ്യേണ്ടത്: നിങ്ങൾക്ക് ഇത് എന്തിന് ആവശ്യമാണെന്ന് കണ്ടെത്തുക. ഇത് man5 മെനുഫയലിൽ എഴുതിയിട്ടുണ്ട്, സത്യം പറഞ്ഞാൽ ഞാൻ അതിലേക്ക് ആഴ്ന്നിറങ്ങിയില്ല :)
UPD: ഒരു മെനു ഇനം ചേർക്കുന്നതിനുള്ള ശരിയായ മാർഗം
/DEBIAN/menu ഫയൽ അജ്ഞാതമായതും എവിടെയാണെന്ന് അറിയാത്തതും സൃഷ്ടിക്കുന്നു: ഗ്രാഫിക്കൽ മെനു ഘടകങ്ങൾ ഇപ്പോഴും സൃഷ്ടിച്ചിട്ടില്ല. അതിനാൽ നമുക്ക് അത് ശരിയാക്കാം :)
/usr/share/applications-ൽ നമ്മൾ ഒരു കൂട്ടം *.desktop ഫയലുകൾ കാണുന്നു: ഇവയാണ് മെനു ഇനങ്ങൾ. അവർ പ്രതിനിധീകരിക്കുന്നു ടെക്സ്റ്റ് ഫയലുകൾഒരു ini ഫയലിന് സമാനമായ ഒരു വാക്യഘടനയോടെ. തുറക്കുക, പഠിക്കുക, അതുപോലെ ചെയ്യുക, ഫലമായുണ്ടാകുന്ന *.desktop ഫയൽ usr/share/applications/ എന്നതിൽ ഇടുക. അതിനുള്ള ഐക്കൺ usr/share/pixmaps-ൽ ആയിരിക്കണം.
ഇതിനുശേഷം, postinst സ്ക്രിപ്റ്റിലേക്ക് അപ്ഡേറ്റ്-മെനുകൾ മെനു അപ്ഡേറ്റ് കമാൻഡിൻ്റെ എക്സിക്യൂഷൻ നിങ്ങൾ ചേർക്കേണ്ടതുണ്ട്:
എങ്കിൽ [ "$1" = "കോൺഫിഗർ ചെയ്യുക" ] && [ -x "`which update-menus 2>/dev/null`" ] ; പിന്നെ
അപ്ഡേറ്റ്-മെനുകൾ
fi

പാക്കേജ് ഇൻസ്റ്റാളേഷൻ സ്ക്രിപ്റ്റുകൾ ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്നത് ചുവടെ ചർച്ചചെയ്യും.
നുറുങ്ങിന് കോണ്ടോറിയസിന് നന്ദി :)

DEBIAN/md5sums: ഫയൽ ചെക്ക്സംസ്
പാക്കേജിൻ്റെ സമഗ്രത പരിശോധിക്കാൻ ഉപയോഗിക്കുന്നു. പ്രധാനപ്പെട്ട ഫയൽ.
ഇതുപോലെ പൂരിപ്പിക്കുക (cwd=പാക്കേജ് റൂട്ട്):
$ md5deep -r usr > DEBIAN/md5sums
ഡെബിയൻ/വാച്ച്: പ്രോഗ്രാം ഡൗൺലോഡ് ചെയ്ത സൈറ്റ് നിരീക്ഷിക്കുന്നു
നിങ്ങൾ നിരവധി ഡസൻ പാക്കേജുകൾ പരിപാലിക്കുകയാണെങ്കിൽ ഫംഗ്ഷൻ ഉപയോഗപ്രദമാണ്, കൂടാതെ എല്ലാ അപ്ഡേറ്റുകളും ട്രാക്ക് ചെയ്യുന്നത് ബുദ്ധിമുട്ടാണ്.
uscan, update പ്രോഗ്രാമുകൾക്കുള്ള നിർദ്ദേശങ്ങൾ ഫയലിൽ അടങ്ങിയിരിക്കുന്നു. ഈ സവിശേഷത ഉപയോഗിച്ച്, നിങ്ങൾക്ക് പാക്കേജ് ഉറവിടങ്ങൾ ലഭിച്ച സൈറ്റ് നിരീക്ഷിക്കാനും വിതരണത്തിൻ്റെ മൊത്തത്തിലുള്ള ഗുണനിലവാര നിയന്ത്രണം ഉറപ്പാക്കാനും കഴിയും.
ഉദാഹരണം:
# സൈറ്റ് ഡയറക്ടറി പാറ്റേൺ പതിപ്പ് സ്ക്രിപ്റ്റ്
ftp.obsession.se /gentoo gentoo-(.*)\.tar\.gz debian uupdate
DEBIAN/(preinst|postinst|prerm|postrm): ഇൻസ്റ്റലേഷൻ സ്ക്രിപ്റ്റുകൾ
മൊത്തത്തിൽ, നിങ്ങൾക്ക് ഒരു പാക്കേജിൽ നാല് സ്ക്രിപ്റ്റുകൾ വരെ സൃഷ്ടിക്കാൻ കഴിയും:

ഈ സ്ക്രിപ്റ്റുകളിൽ പിശകുകൾ നേരിട്ടത് ശ്രദ്ധിക്കുക ലോഗിൻ ചെയ്തിട്ടില്ല: സ്ക്രിപ്റ്റ് റിട്ടേൺ കോഡ് എവിടെയും സംരക്ഷിച്ചിരിക്കുന്നതിനേക്കാൾ രസകരമായ ഒന്നും തന്നെയില്ല, കൂടാതെ ലോഗിംഗ് സ്വമേധയാ ചെയ്യണം! എൻ്റെ ഒരു പാക്കേജിൻ്റെ ഉപയോക്താക്കൾക്ക് ഇൻസ്റ്റലേഷൻ പരാജയം സംഭവിച്ചു ലിനക്സ് മിൻ്റ്, കാരണം കണ്ടെത്തുന്നതിന് അവരോട് ഒരു പിശക് ലോഗ് (അവർക്ക് ഇല്ലാത്തത്) ചോദിക്കാൻ പോലും സാധ്യമല്ല :)
ഓരോ സ്ക്രിപ്റ്റിൻ്റെയും തുടക്കത്തിൽ ഇനിപ്പറയുന്ന ശൂന്യമായത് ഉപയോഗിക്കാൻ ഞാൻ ശുപാർശ ചെയ്യുന്നു: ഇത് സിസ്ലോഗിൽ സംഭവിക്കുന്ന എല്ലാ പിശകുകളും സംരക്ഷിക്കും.
#!/bin/bash
ഏതെങ്കിലും പിശകിൽ സെറ്റ് -ഇ # പരാജയപ്പെടുന്നു
set -u # സജ്ജീകരിക്കാത്ത വേരിയബിളുകളെ പിശകുകളായി കണക്കാക്കുന്നു

# ======[ ട്രാപ്പ് പിശകുകൾ ]======#
സെറ്റ് -E # ഷെൽ ഫംഗ്‌ഷനുകൾ ERR ട്രാപ്പ് അവകാശമാക്കട്ടെ

# സാധാരണമല്ലാത്ത എക്സിറ്റ് സിഗ്നലുകൾ ട്രാപ്പ് ചെയ്യുക:
# 1/HUP, 2/INT, 3/QUIT, 15/ടേം, ERR
ട്രാപ്പ് err_handler 1 2 3 15 ERR
ഫംഗ്‌ഷൻ err_handler(
ലോക്കൽ എക്സിറ്റ്_സ്റ്റാറ്റസ്=$(1:-$?)
logger -s -p "syslog.err" -t "ootync.deb" "supersh.deb സ്ക്രിപ്റ്റ് "$0" പിശക് കോഡ് $exit_status (ലൈൻ $BASH_LINENO: "$BASH_COMMAND")"
$exit_status-ൽ നിന്ന് പുറത്തുകടക്കുക
}

നിങ്ങളുടെ ഇൻസ്റ്റലേഷൻ സ്ക്രിപ്റ്റ് കോഡ്...

മുന്നറിയിപ്പ്: ശൂന്യമായത് ഇതുവരെ വ്യാപകമായി പരീക്ഷിച്ചിട്ടില്ല, അത് വീണ്ടും പരിശോധിക്കുക! ഡീബഗ്ഗിംഗ് അസാധ്യമാണെന്ന് ഞാൻ അടുത്തിടെ കണ്ടു :)

DEBIAN/ടെംപ്ലേറ്റുകൾ: ഡയലോഗുകൾക്കുള്ള ടെംപ്ലേറ്റുകൾ
ഇതിനകം സൂചിപ്പിച്ചതുപോലെ, DEBIAN/config സ്ക്രിപ്റ്റിൽ നിങ്ങൾക്ക് ഉപയോക്താവിനോട് ചോദ്യങ്ങൾ ചോദിക്കാം: ഒരു ലൈൻ നൽകുക, ഓപ്ഷനുകളിലൊന്ന് തിരഞ്ഞെടുക്കുക, ഒരു ബോക്സ് ചെക്ക് ചെയ്യുക,... ഇതാണ് "ലൈബ്രറി" ചെയ്യുന്നത് ബാഷ് പ്രവർത്തനങ്ങൾ debconf പാക്കേജിൻ്റെ debhelper, ഇതിന് ധാരാളം ഉപയോഗപ്രദമായ കാര്യങ്ങൾ ചെയ്യാൻ കഴിയും. ഞാൻ അവരെ ഇവിടെ നോക്കുന്നില്ല :)
DEBIAN/templates ഫയലിൽ ഡയലോഗ് ബോക്സുകൾ (GUI അല്ലെങ്കിൽ ncurses) റെൻഡർ ചെയ്യാൻ ഉപയോഗിക്കുന്ന ഡാറ്റ അടങ്ങിയിരിക്കുന്നു. ഫയലിൽ വേർതിരിച്ച ബ്ലോക്കുകൾ അടങ്ങിയിരിക്കുന്നു ശൂന്യമായ വരി. ഓരോ ബ്ലോക്കും ഒരു പ്രത്യേക ഡയലോഗ് ബോക്സിൽ ഉപയോഗിക്കുന്ന ഉറവിടങ്ങളെ നിർവചിക്കുന്നു.
എല്ലാത്തരം ഡയലോഗുകളുടെയും തലക്കെട്ട് സ്റ്റാൻഡേർഡ് ആണ്:
ടെംപ്ലേറ്റ്: supersh/template-name
തരം: സ്ട്രിംഗ്
ഡിഫോൾട്ട്: ഡിഫോൾട്ട്-മൂല്യം
വിവരണം: ഡയലോഗ്-ശീർഷകം
␣ ഡയലോഗ്-ടെക്സ്റ്റ്

ടെംപ്ലേറ്റ് - അതുല്യമായ (ഒരു പാക്കേജിനുള്ളിൽ) ടെംപ്ലേറ്റ് ഐഡൻ്റിഫയർ. നിങ്ങൾക്ക് ഒരു സ്ക്രിപ്റ്റിൽ ഒരു പ്രത്യേക ഡയലോഗ് വിളിക്കണമെങ്കിൽ, ഈ പേര് ഉപയോഗിക്കുന്നു.
തരം - ടെംപ്ലേറ്റ് തരം. ഇനിപ്പറയുന്ന തരങ്ങൾ നിർവചിച്ചിരിക്കുന്നു: സ്ട്രിംഗ്, പാസ്‌വേഡ്, ബൂളിയൻ, സെലക്ട്, മൾട്ടിസെലക്ട്, ടെക്സ്റ്റ്, നോട്ട്, പിശക്.
Default-value - default value: ഉപയോക്താവിന് അത് അംഗീകരിക്കാൻ കഴിയും.
വിവരണം - നിയന്ത്രണ ഫയലിലെന്നപോലെ, രണ്ട് ഫീൽഡുകൾ അടങ്ങിയിരിക്കുന്നു: ഒരു ഹ്രസ്വ വിവരണവും ഒരു നീണ്ട വാചകവും. ആദ്യത്തേത് "വിൻഡോ" യുടെ ശീർഷകമാണ്, രണ്ടാമത്തേത് ഉപയോക്താവിൽ നിന്ന് ആവശ്യമുള്ളതിൻ്റെ കൂടുതൽ വിശദമായ വിവരണമാണ്. "എൻറർ" പോലുള്ള വാക്കുകൾ ഉപയോഗിക്കരുതെന്ന് ശുപാർശ ചെയ്യുന്നു, പക്ഷേ സാരാംശം: "സ്ക്രിപ്റ്റ് ആശംസകൾ", "മൗണ്ട് പോയിൻ്റ്", ...

ടൈപ്പ് ചെയ്യുക ടെംപ്ലേറ്റ് വിവരണം
സ്ട്രിംഗ് ടെക്സ്റ്റ് പ്രോംപ്റ്റ്
password പാസ്‌വേഡ് പ്രോംപ്റ്റ്.
വ്യക്തമായ കാരണങ്ങളാൽ ഈ ടെംപ്ലേറ്റ് തരത്തിന് സ്ഥിരസ്ഥിതി മൂല്യമില്ല :)
ബൂളിയൻ ചെക്ക്മാർക്ക് :) "ശരി" അല്ലെങ്കിൽ "തെറ്റ്" എന്ന സ്ട്രിംഗ് മൂല്യമുണ്ട്
തിരഞ്ഞെടുക്കുക നിരവധി ഓപ്ഷനുകളിൽ ഒന്ന് തിരഞ്ഞെടുക്കാനുള്ള സാധ്യത.

തിരഞ്ഞെടുപ്പുകൾ: അതെ, ഇല്ല, ഒരുപക്ഷേ
മൾട്ടിസെലക്ട് ടിക്ക് ഉപയോഗിച്ച് നിരവധി ഓപ്ഷനുകൾ തിരഞ്ഞെടുക്കാനുള്ള സാധ്യത.
ഒരു അധിക ടെംപ്ലേറ്റ് ആട്രിബ്യൂട്ടിൽ ഓപ്ഷനുകൾ വാഗ്ദാനം ചെയ്യുന്നു:
തിരഞ്ഞെടുപ്പുകൾ: ലൈംഗികത, മയക്കുമരുന്ന്, റോക്ക്-എൻ-റോൾ
വാചകം വാചകം പ്രദർശിപ്പിക്കുന്നു: ചിലത് വളരെ അല്ല പ്രധാനപ്പെട്ട വിവരം
കുറിപ്പ് ടെക്സ്റ്റ് പ്രദർശിപ്പിക്കുന്നു: പ്രധാനപ്പെട്ട വിവരങ്ങൾ
പിശക് സ്ക്രീനിൽ ടെക്സ്റ്റ് പ്രദർശിപ്പിക്കുന്നു: വളരെ പ്രധാനപ്പെട്ട വിവരങ്ങൾ, നിർണായകമാണ്.

ടെക്‌സ്‌റ്റ്, കുറിപ്പ്, പിശക് ടെംപ്ലേറ്റുകൾ എന്നിവയ്‌ക്ക് സ്ഥിരസ്ഥിതി മൂല്യവും ഇല്ല, കാരണം അവ വിവരങ്ങൾ മാത്രം പ്രദർശിപ്പിക്കുന്നു :)
ഇനിപ്പറയുന്ന ടെംപ്ലേറ്റ് ഉപയോഗിച്ച് നമുക്ക് കളിക്കാം:
ടെംപ്ലേറ്റ്: സൂപ്പർഷ്/ആശംസകൾ
തരം: സ്ട്രിംഗ്
വിവരണം: സ്വാഗത സന്ദേശം
␣ സ്ക്രിപ്റ്റ് നിങ്ങളെ സ്വാഗതം ചെയ്യണമെന്ന് നിങ്ങൾ ആഗ്രഹിക്കുന്ന സന്ദേശം.
ഡിഫോൾട്ട്: ആശംസകൾ, എൻ്റെ മാസ്റ്റർ!
debconf, debhelper എന്നിവ ഉപയോഗിക്കുന്നതിനുള്ള അടിസ്ഥാനകാര്യങ്ങൾ
ഇവ പ്രവർത്തിക്കാവുന്ന സ്കെച്ചുകൾ മാത്രമാണ്. ടെംപ്ലേറ്റുകളെക്കുറിച്ചും അവയ്‌ക്കൊപ്പം പ്രവർത്തിക്കുന്നതിനെക്കുറിച്ചും ഒറിജിനലിൽ നിങ്ങൾക്ക് ഇവിടെ വായിക്കാം: man 7 debconf-devel :)
നിങ്ങളുടെ DEBIAN/config കോൺഫിഗറേഷൻ സ്ക്രിപ്റ്റിൽ ടെംപ്ലേറ്റുകൾ ഉപയോഗിക്കുന്നതിന്, നിങ്ങൾ ആദ്യം debhelper ഫംഗ്ഷനുകൾ പ്രവർത്തനക്ഷമമാക്കണം:
. /usr/share/debconf/confmodule . ഈ ഫയലും postinst സ്ക്രിപ്റ്റിൽ ഉൾപ്പെടുത്തേണ്ടതുണ്ട്: അല്ലാത്തപക്ഷം DEBIAN/config സ്ക്രിപ്റ്റ് എക്സിക്യൂട്ട് ചെയ്യപ്പെടില്ല!
ഈ സവിശേഷതകൾ debconf പാക്കേജിൽ ലഭ്യമാണ്, ഡിപൻഡൻസി അനുസരിച്ച് ഇത് പ്രവർത്തനക്ഷമമാക്കാൻ മറക്കരുത്!
ഉപയോഗത്തിൻ്റെ ഒരു പ്രാകൃത ഉദാഹരണം. DEBIAN/config ഫയൽ
#!/bin/bash -e

# debconf കമാൻഡുകൾ ബന്ധിപ്പിക്കുന്നു

കേസ് "$1" ഇൽ
ക്രമീകരിക്കുക|വീണ്ടും ക്രമീകരിക്കുക)
#അഭ്യർത്ഥന


# പ്രതികരണം പ്രോസസ്സ് ചെയ്യുക

ആശംസ="$RET"
echo "$greeting" > /etc/supersh/greeting.txt
;;
*)
echo "config അജ്ഞാത ആർഗ്യുമെൻ്റ് \`$1" ഉപയോഗിച്ച് വിളിക്കുന്നു" >&2
പുറത്തുകടക്കുക 1
;;
esac
#അഭ്യർത്ഥന
db_input മീഡിയം "സൂപ്പർഷ്/ഗ്രീറ്റിംഗ്" || ശരി # സമാരംഭം
db_go || true # സ്ക്രീനിൽ അഭ്യർത്ഥന പ്രദർശിപ്പിക്കുക

# പ്രതികരണം പ്രോസസ്സ് ചെയ്യുക
db_get "supersh/greeting" # $RET വേരിയബിളിലേക്ക് മൂല്യം നേടുക
ആശംസ="$RET"
echo "$greeting" > /etc/supersh/greeting.txt

ഇവിടെ ഇതിനകം ഒരു അസുഖകരമായ പതിയിരുന്ന് ഉണ്ട്: മീഡിയം ഡയലോഗിൻ്റെ മുൻഗണന db_input ഫംഗ്‌ഷനാണ് നൽകിയിരിക്കുന്നത് എന്നത് ശ്രദ്ധിക്കുക. debconf-ന്, നിങ്ങൾക്ക് ഒരു മിനിമം മുൻഗണന സജ്ജീകരിക്കാൻ കഴിയും: ചുവടെയുള്ള മുൻഗണനയുള്ള ഡയലോഗുകൾ പ്രദർശിപ്പിക്കില്ല, പക്ഷേ സ്ഥിരസ്ഥിതി മൂല്യം (സ്ഥിരസ്ഥിതി ടെംപ്ലേറ്റ്) എടുക്കുന്നു! ഇത് സംഭവിക്കുന്നത് തടയാൻ, ഞങ്ങൾ നിർണായക മുൻഗണന ഉപയോഗിക്കുന്നു :) കൂടാതെ, GUI-യിൽ നിന്ന് ഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ, ചോദ്യങ്ങൾ പ്രദർശിപ്പിക്കുന്നതിനുള്ള പരിധി കൂടുതലാണ്, അവയിൽ പലതും പ്രദർശിപ്പിക്കില്ല.
സാധ്യമായ മുൻഗണനകൾ: കുറഞ്ഞ - സ്ഥിരസ്ഥിതി എല്ലായ്പ്പോഴും ഉപയോഗിക്കുന്നു, ഇടത്തരം - സ്ഥിരസ്ഥിതി സാധാരണയായി തികച്ചും അനുയോജ്യമാണ്, ഉയർന്നത് - സ്ഥിരസ്ഥിതി അഭികാമ്യമല്ല, നിർണായകമാണ് - ഉപയോക്തൃ ശ്രദ്ധ പ്രധാനമാണ്.
|| "-e" സ്വിച്ച് ബാഷിലേക്ക് കൈമാറിയതിനാൽ സ്ക്രിപ്റ്റ് മരിക്കുന്നത് തടയാൻ true ഉപയോഗിക്കുന്നു.
ഈ സ്ക്രിപ്റ്റിൽ, പിശകുകൾ കണ്ടെത്തുന്നതിന് ആ ശൂന്യത ഉപയോഗിക്കാനും ശുപാർശ ചെയ്യുന്നു, അല്ലാത്തപക്ഷം ഡീബഗ്ഗിംഗ് സമയത്ത് വിതരണം ചെയ്ത പാക്കേജിൽ പ്രശ്നങ്ങൾ ഉണ്ടാകാം :)
debconf (ഫംഗ്ഷനുകൾ, രീതികൾ, പാരാമീറ്ററുകൾ, പിശക് കോഡുകൾ) ഉപയോഗിക്കുന്നതിൻ്റെ എല്ലാ സങ്കീർണതകളും തികച്ചും വാചാലമായ മാനയിൽ വിവരിച്ചിരിക്കുന്നു: man debconf-devel.

അവസാനമായി ഒരു കാര്യം: നിങ്ങൾ purge കമാൻഡ് ഉപയോഗിച്ച് ഒരു പാക്കേജ് നീക്കം ചെയ്യുമ്പോൾ, debconf അതിൻ്റെ ഡാറ്റാബേസിൽ നിന്ന് പാക്കേജിനെക്കുറിച്ചുള്ള വിവരങ്ങളും ശുദ്ധീകരിക്കണം. ഉദാഹരണത്തിന്, db_input ക്വറികളിലെ ഉപയോക്താവിൻ്റെ തിരഞ്ഞെടുപ്പ് ഇത് സംരക്ഷിക്കുന്നു.
ഈ ഡാറ്റ മായ്‌ക്കുന്നതിന്, നിങ്ങൾ ഇനിപ്പറയുന്നവ postinst സ്‌ക്രിപ്റ്റിലേക്ക് ചേർക്കേണ്ടതുണ്ട്:
എങ്കിൽ [ "$1" == "purge" ] && [ -e /usr/share/debconf/confmodule ] ; പിന്നെ
. /usr/share/debconf/confmodule
db_purge
fi

നമുക്ക് പാക്കേജ് ശേഖരിക്കാം! :)

ഹൂറേ! ആവശ്യമായ എല്ലാ ഫയലുകളും സൃഷ്ടിച്ചു, അവ ആവശ്യമായ ഫോൾഡറുകളിൽ സ്ഥിതിചെയ്യുന്നു. ഇപ്പോൾ പാക്കേജ് കൂട്ടിച്ചേർക്കാൻ സമയമായി :)
ആദ്യം ചെയ്യേണ്ടത് പാക്കേജിൻ്റെ റൂട്ടിലെ എല്ലാ ഫയലുകളും ഉപയോക്താവിനും ഗ്രൂപ്പ് റൂട്ടിനും (അല്ലെങ്കിൽ മറ്റുള്ളവ, ആവശ്യമെങ്കിൽ) ആവർത്തിച്ച് സജ്ജമാക്കുക എന്നതാണ്. പാക്കേജ് ഫയലുകൾ ഒരു tar.gz ആർക്കൈവിലേക്ക് പാക്കേജുചെയ്‌തിരിക്കുന്നതിനാൽ ഇത് ആവശ്യമാണ്, അത് ഫയലുകളുടെയും ഉടമയുടെയും ആക്‌സസ് അവകാശങ്ങൾ സംരക്ഷിക്കുന്നു. അതിനാൽ നിങ്ങൾ ചെയ്യേണ്ടത്:
$ sudo chown -R റൂട്ട്: റൂട്ട് .
എന്നിരുന്നാലും, ഇത് ആവശ്യമില്ല. ഒരു ആർക്കൈവ് സൃഷ്‌ടിക്കുമ്പോൾ, ഫയലിൻ്റെ ഉടമയെ റൂട്ട് ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്ന ഒരു മികച്ച ഫേക്ക്റൂട്ട് കമാൻഡ് ഉണ്ട്.
ഞങ്ങളുടെ ഉദാഹരണത്തിൽ, സ്ക്രിപ്റ്റിന് എക്സിക്യൂട്ടബിലിറ്റി ബിറ്റ് ഉണ്ടായിരിക്കണം.
തുടർന്ന് ഞങ്ങൾ ഫോൾഡറിലേക്ക് മടങ്ങുന്നു, അങ്ങനെ പാക്കേജിൻ്റെ റൂട്ട് ഫോൾഡർ ദൃശ്യമാകും, കൂടാതെ ഒരു ലൈറ്റ് കിക്ക് ഉപയോഗിച്ച് പാക്കേജ് സൃഷ്ടിക്കപ്പെടുന്നു:
$ fakeroot dpkg-deb --build supersh
*.deb പാക്കേജുകളുടെ നാമകരണ ക്രമവുമായി പൊരുത്തപ്പെടുന്നതിന് സൃഷ്ടിച്ച പാക്കേജ് പുനർനാമകരണം ചെയ്യണം:<имя пакета>_<версия>_<архитектура>.deb
$ mv supersh.deb supersh_1.0-1_all.deb
അത്രയേയുള്ളൂ, പാക്കേജ് തയ്യാറാണ്!
യാന്ത്രിക പാക്കേജ് സ്ഥിരീകരണം
ഒരു പാക്കേജ് പരിശോധിക്കാനും അതിൻ്റെ ഘടനയിലെ പൊതുവായ പിശകുകൾ തിരിച്ചറിയാനും നിങ്ങളെ അനുവദിക്കുന്ന ഒരു ലിൻ്റിയൻ യൂട്ടിലിറ്റി ഉണ്ട്. ഇത് ഇതുപോലെയാണ് ചെയ്യുന്നത്:
$lintian supersh_1.0-1_all.deb
പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുന്നു
$ sudo dpkg -i supersh_1.0-1_all.deb

നിങ്ങളുടെ സ്വന്തം പാക്കേജ് ശേഖരം സൃഷ്ടിക്കുക

ഇപ്പോൾ ഞങ്ങൾക്ക് ഞങ്ങളുടെ സ്വന്തം പാക്കേജ് ഉണ്ട്. അവയിൽ പലതും ഉള്ളപ്പോൾ, പ്രത്യേകിച്ച് ഡിപൻഡൻസികൾക്കൊപ്പം, നിങ്ങളുടെ സ്വന്തം പ്രാദേശിക മൈക്രോ-റിപ്പോസിറ്ററി വേഗത്തിൽ സൃഷ്ടിക്കുന്നതും പാക്കേജ് മാനേജർ ഉറവിടങ്ങളുടെ പട്ടികയിൽ ഉൾപ്പെടുത്തുന്നതും കൂടുതൽ സൗകര്യപ്രദമാണെന്ന് ഇത് മാറും :) ഇവിടെ ഞാൻ എങ്ങനെ ഒരു ദ്രുതഗതി വിവരിക്കും. "നിങ്ങളുടെ സ്വന്തം ശേഖരം എങ്ങനെ സൃഷ്ടിക്കാം". പ്രസക്തമായ ഡോക്യുമെൻ്റേഷൻ വായിച്ചുകൊണ്ട് ആശയം വികസിപ്പിക്കുന്നത് എളുപ്പമായിരിക്കും :)
ആദ്യം, നമുക്ക് സഹായിയെ ഇൻസ്റ്റാൾ ചെയ്യാം:
$ sudo apt-get install reprepro
ഭാവി സംഭരണിയുടെ വിവരണം
ശേഖരത്തിൻ്റെ കേന്ദ്രം അതിൻ്റെ വിവരണമാണ്. അതിൽ പ്രധാന കാര്യം റിപ്പോസിറ്ററി ഘടകങ്ങളുടെ പട്ടികയാണ്. ഞങ്ങൾ "സോഫ്റ്റ്", "ഗെയിംസ്" ഘടകങ്ങൾ സൃഷ്ടിക്കും.
ഭാവി ശേഖരണത്തിനായി ഒരു ഫോൾഡർ തിരഞ്ഞെടുക്കുക. എല്ലാ പ്രവർത്തനങ്ങളും അതിൻ്റെ വേരിൽ നിന്നാണ് നടപ്പിലാക്കുന്നത്.
ഇനിപ്പറയുന്ന ഉള്ളടക്കം ഉപയോഗിച്ച് ഒരു ഫയൽ conf/distributions സൃഷ്‌ടിക്കുക:
വിവരണം: എൻ്റെ പ്രാദേശിക ശേഖരം
ഉത്ഭവം: ഉബുണ്ടു
സ്യൂട്ട്: ടെസ്റ്റിംഗ്
AlsoAcceptFor: അസ്ഥിരമായ പരീക്ഷണാത്മകം
കോഡ്നാമം: കർമ്മം
പതിപ്പ്: 5.0
ആർക്കിടെക്ചറുകൾ: i386 amd64 ഉറവിടം
ഘടകങ്ങൾ: സോഫ്റ്റ് ഗെയിമുകൾ
UDebComponents: സോഫ്റ്റ് ഗെയിമുകൾ

ലളിതമായ ഒരു ശേഖരം സൃഷ്ടിക്കുന്നതിനുള്ള ഞങ്ങളുടെ ബിസിനസ്സിൽ, എല്ലാ ഫീൽഡുകളും അടിസ്ഥാനപരമായ പങ്ക് വഹിക്കുന്നില്ല, മാത്രമല്ല "എന്താണ്" എന്ന് ദൃശ്യപരമായി നിർണ്ണയിക്കാൻ മാത്രമാണ് ഉപയോഗിക്കുന്നത് :)

ഒരു ശേഖരം സൃഷ്ടിക്കുന്നു
ശേഖരം വിവരിച്ചിരിക്കുന്നു! ഇപ്പോൾ വിവരണത്തെ അടിസ്ഥാനമാക്കി ഒരു ശൂന്യത സൃഷ്ടിക്കാം. റിപ്പോസിറ്ററിയുടെ റൂട്ടിൽ കമാൻഡുകൾ എക്സിക്യൂട്ട് ചെയ്യുന്നു:
$ reprepro കയറ്റുമതി
$ reprepro സിംലിങ്കുകൾ സൃഷ്ടിക്കുന്നു
പൂർത്തിയാക്കിയ ശേഖരം /etc/apt/sources.list-ലേക്ക് ചേർക്കുക:
deb file:///path/to/repo/ karmic soft games
ഒരു വെബ് സെർവർ ഉപയോഗിച്ചും ഈ ശേഖരം പങ്കിടാം.
സംഭരണിയിൽ പാക്കേജുകൾ കൈകാര്യം ചെയ്യുന്നു
റിപ്പോസിറ്ററിയുടെ റൂട്ടിൽ ഞങ്ങൾ ചേർക്കേണ്ട *.deb ഫയലുകൾ ഇടുകയും അവയെ കർമ്മ വിതരണത്തിൻ്റെ സോഫ്റ്റ് ഘടകത്തിലേക്ക് ചേർക്കുകയും ചെയ്യുന്നു:
reprepro -C സോഫ്റ്റ് ഉൾപ്പെടുത്തിയിരിക്കുന്ന കർമ്മം *.deb
പാക്കേജുകൾ ഇപ്പോൾ പാക്കേജ് മാനേജരിൽ നിന്ന് ലഭ്യമാണ് :)
പാക്കേജുകൾ നീക്കംചെയ്യുന്നു:
reprepro -C സോഫ്റ്റ് നീക്കം കർമ്മ സൂപ്പർഷ്

പൂർത്തിയാക്കുക

ഡെബ് പാക്കേജുകൾ സൃഷ്ടിക്കുന്നതിനുള്ള മെറ്റീരിയലുകൾ ലേഖനം ചർച്ചചെയ്യുന്നു. ഇൻ്റർനെറ്റിൽ വേണ്ടത്ര വ്യക്തമായ വിവരണം ഇല്ലാത്ത പോയിൻ്റുകൾക്കാണ് ഊന്നൽ നൽകുന്നത്. ഇത് ലളിതമായും വ്യക്തമായും അവതരിപ്പിക്കാനുള്ള എൻ്റെ ശ്രമം പരാജയപ്പെട്ടില്ല എന്ന് ഞാൻ പ്രതീക്ഷിക്കുന്നു :)
ഗൃഹപാഠം :)) - മനുഷ്യനിലും ലേഖനങ്ങളിലും കണ്ടെത്താൻ എളുപ്പമുള്ള കാര്യങ്ങൾ നന്നായി രേഖപ്പെടുത്തി:
  • സോഴ്സ് കോഡുകൾ കംപൈൽ ചെയ്യുന്ന സോഴ്സ് പാക്കേജുകൾ സൃഷ്ടിക്കുന്നു: Zabbix ൻ്റെ ഉദാഹരണം ഉപയോഗിച്ച്, Habrauser mahoro തൻ്റെ ലേഖനത്തിൽ ഇതിനെക്കുറിച്ച് നന്നായി സംസാരിച്ചു.
  • Debconf, കോൺഫിഗറേഷൻ സ്ക്രിപ്റ്റുകളിലെ debhelper: debconf-devel, debhelper എന്നിവയ്ക്കായി മന വായിക്കുക. dh_make കമാൻഡ് ഉപയോഗിച്ച് ഒരു സ്കെലിറ്റൺ പാക്കേജ് സൃഷ്ടിക്കാനും അവ നിങ്ങളെ അനുവദിക്കുന്നു.
  • പാക്കേജുകളിൽ ഡോക്യുമെൻ്റേഷൻ സൃഷ്ടിക്കുന്നതിനുള്ള വിപുലമായ വഴികൾ: DEBIAN/docs, DEBIAN/manpage.* ഫയലുകൾ
  • init സ്ക്രിപ്റ്റുകൾ സൃഷ്ടിക്കുന്നു
  • ക്രോൺ ജോലികൾ കൈകാര്യം ചെയ്യുന്നു
  • gpg കീ ഉപയോഗിച്ച് ശേഖരത്തിൽ ഒപ്പിടുന്നു

മനോഹരമായ ഭാഷയിൽ പോകൂ. എല്ലാം ഒരു ബൈനറിയിലേക്ക് കംപൈൽ ചെയ്യാനുള്ള കഴിവാണ് അതിൻ്റെ സൂപ്പർ പവർ. ഇത് വളരെ സൗകര്യപ്രദമാണ്, നിങ്ങൾക്ക് ഈ ഫയൽ എല്ലായിടത്തും കൊണ്ടുപോകാനും ഏത് മെഷീനിലും ഉപയോഗിക്കാനും കഴിയും. എന്നാൽ ഞങ്ങളുടെ പ്രോഗ്രാം ലളിതമായ രീതിയിൽ ഇൻസ്റ്റാൾ ചെയ്യാൻ ഞാൻ ആഗ്രഹിക്കുന്നു.

ഡെബ് പാക്കേജുകളുടെ സഹായത്തോടെ, നിങ്ങളുടെ സെർവറുകളിലേക്ക് എളുപ്പത്തിൽ വിന്യാസം സംഘടിപ്പിക്കാൻ കഴിയും. അതേ സമയം, നിങ്ങൾക്ക് പതിപ്പിംഗും അതെല്ലാം ഉണ്ടായിരിക്കും. ഞാൻ മിക്കപ്പോഴും ഉബുണ്ടു ഉപയോഗിക്കുന്നു, അതിനാൽ ആപ്റ്റ് യൂട്ടിലിറ്റികൾ ഉപയോഗിച്ച് ഇൻസ്റ്റാൾ ചെയ്യാനോ നീക്കം ചെയ്യാനോ കഴിയുന്ന deb പാക്കേജുകളെക്കുറിച്ച് ഞങ്ങൾ പ്രത്യേകം സംസാരിക്കും.

പാക്കേജുകൾ ഉപയോഗിച്ച് നിങ്ങളുടെ സ്വന്തം ശേഖരം സൃഷ്ടിക്കാൻ നിങ്ങൾ എന്താണ് ചെയ്യേണ്ടത്? നിങ്ങൾക്ക് അതേ launchpad.net ഉപയോഗിക്കാം, ഉദാഹരണത്തിന്. എന്നാൽ ഈയിടെയായി, ഇത് നന്നായി വികസിച്ചിട്ടില്ല, മാത്രമല്ല വിശ്വസനീയമല്ലെന്ന് തോന്നുന്നു. കൂടാതെ, നിങ്ങളുടെ വാണിജ്യേതര സംഭവവികാസങ്ങൾക്കായി ഇത് ഉപയോഗിക്കുന്നത് സൗകര്യപ്രദമാണ്, എന്നാൽ എൻ്റർപ്രൈസ് സോഫ്‌റ്റ്‌വെയർ വിതരണം ചെയ്യുന്നതിന് ഇത് ഉപയോഗിക്കുന്നത് പ്രശ്‌നകരമാണ്.

നമുക്ക് മറുവശത്ത് നിന്ന് പ്രശ്നത്തെ സമീപിക്കാം. ഒന്നാമതായി, നമ്മൾ deb പാക്കേജുകൾ ശേഖരിക്കേണ്ടതുണ്ട്, dpkg-deb യൂട്ടിലിറ്റി ഉപയോഗിച്ച് ഇത് സ്വയം ചെയ്യാൻ വളരെ എളുപ്പമാണ്. രണ്ടാമതായി, ഞങ്ങൾ ഈ പാക്കേജുകൾ എവിടെയെങ്കിലും സ്ഥാപിക്കേണ്ടതുണ്ട്, ഇതിനായി ഞങ്ങൾ സൂപ്പർ സിമ്പിൾ ഉപയോഗിക്കും

കെട്ടിട പാക്കേജുകൾ

എൻ്റെ എല്ലാ പ്രോജക്റ്റുകൾക്കും ഞാൻ ഉപയോഗിക്കുന്നു. പ്രോജക്റ്റ് ഘടന ഇതുപോലെ കാണപ്പെടുന്നു:

പദ്ധതി/ |- ബിൻ/ | |- പദ്ധതി |- src/ | |- github.com/ | |- 4ഗോഫർമാർ/ | |- പദ്ധതി/ | |- main.go |- vendor/

ഞാൻ gb ബിൽഡ് പ്രവർത്തിപ്പിക്കുമ്പോൾ, എല്ലാ ബൈനറികളും ബിൻ ഫോൾഡറിലാണ് നിർമ്മിച്ചിരിക്കുന്നത്. അതിനാൽ, ഞങ്ങളുടെ ഭാവി ഡെബ് പാക്കേജിൻ്റെ സ്പെസിഫിക്കേഷൻ പ്രോജക്റ്റ് ഫോൾഡറിലേക്ക് നേരിട്ട് ചേർക്കുക മാത്രമാണ് ഞങ്ങൾക്ക് വേണ്ടത്:

Mkdir പ്രോജക്റ്റ്/DEBIAN ടച്ച് പ്രോജക്റ്റ്/DEBIAN/നിയന്ത്രണം

ഫലം ഇതുപോലുള്ള ഒരു ഘടനയായിരിക്കും:

പദ്ധതി/ |- DEBIAN/ | |- നിയന്ത്രണം |- ബിൻ/ | |- പദ്ധതി |- src/ |- വെണ്ടർ/

നിയന്ത്രണ ഫയലിൽ ഞങ്ങളുടെ പാക്കേജിനെക്കുറിച്ചുള്ള വിവരങ്ങൾ വ്യക്തമാക്കേണ്ടതുണ്ട്. ശൂന്യമായ അവസാന വരിയെക്കുറിച്ച് മറക്കരുത്:

പാക്കേജ്: പ്രോജക്റ്റ് മുൻഗണന: ഓപ്ഷണൽ വിഭാഗം: ഡെവലപ്പ് ഇൻസ്റ്റാൾ ചെയ്തു-വലുപ്പം: 100 മെയിൻ്റനർ: ഇവാൻ ഇവാനോവ് ആർക്കിടെക്ചർ: i386 പതിപ്പ്: 1.0 ആശ്രയിച്ചിരിക്കുന്നു: libc6 (>= 2.1) വിവരണം: ഹ്രസ്വ വിവരണം ഇവിടെ നീണ്ട വിവരണം ഇവിടെ

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

പ്രോജക്റ്റ് ഫോൾഡറിൽ ഉള്ളതെല്ലാം പാക്കേജിലേക്ക് പോകും. കൂടാതെ ബിൻ ഫോൾഡറും. ഈ ഫോൾഡറിൽ ഇൻസ്റ്റാൾ ചെയ്യേണ്ട ഞങ്ങളുടെ ബൈനറി ഫയൽ അടങ്ങിയിരിക്കുന്നു. ഉപയോക്താവിൻ്റെ കമ്പ്യൂട്ടറിൽ ആവശ്യമുള്ള ഡയറക്‌ടറിയിൽ നിങ്ങളുടെ ഫയലുകൾ അവസാനിക്കുന്നതിന്, നിങ്ങളുടെ പ്രോജക്‌റ്റ് ഫോൾഡറിനുള്ളിൽ ഉചിതമായ ഡയറക്‌ടറി ഘടന സൃഷ്‌ടിക്കേണ്ടതുണ്ട്.

ഡെബ് പാക്കേജുകൾ സൃഷ്ടിക്കുന്നതിനുള്ള ഈ സമീപനം ഏറ്റവും ശരിയല്ല എന്നത് ശ്രദ്ധിക്കേണ്ടതാണ്. തീർച്ചയായും, ഞങ്ങളുടെ കാര്യത്തിൽ, ഞങ്ങൾ ബോധപൂർവ്വം ഈ നടപടി സ്വീകരിക്കുന്നു, എന്നാൽ deb പാക്കേജിൽ src, വെണ്ടർ, തുടങ്ങിയ ഫോൾഡറുകൾ ഉൾപ്പെടെ പ്രോജക്റ്റ് ഫോൾഡറിലെ എല്ലാ ഉള്ളടക്കങ്ങളും അടങ്ങിയിരിക്കുമെന്ന് നിങ്ങൾ മനസ്സിലാക്കേണ്ടതുണ്ട്. തീർച്ചയായും, നിങ്ങൾക്ക് മറ്റൊരു ഫോൾഡറിലേക്ക് ഫയലുകൾ പകർത്താനും ഇതിനായി ഒരു സ്ക്രിപ്റ്റ് എഴുതാനും കഴിയും, എന്നാൽ എല്ലാം ഇതിനകം തന്നെ നമുക്ക് മുന്നിൽ കണ്ടുപിടിച്ചതാണ്. dh_make, dpkg-buildpackage യൂട്ടിലിറ്റികൾ ഉപയോഗിക്കുന്നതാണ് കൂടുതൽ ശരിയായ മാർഗം.

ഇപ്പോൾ നിങ്ങൾക്ക് പാക്കേജ് കൂട്ടിച്ചേർക്കാം. ഇത് ചെയ്യുന്നതിന്, ഒരു ലെവൽ ഉയർന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക:

Dpkg-deb -z8 -Zgzip --build project

ഒരു ലെവൽ മുകളിലേക്ക്, ഒരു project.deb ഫയൽ സൃഷ്ടിക്കപ്പെടും, അത് കമാൻഡ് ഉപയോഗിച്ച് ഇൻസ്റ്റാൾ ചെയ്യാൻ കഴിയും:

Sudo dpkg -i project.deb

നിങ്ങളുടെ സ്വന്തം പാക്കേജ് ശേഖരം

ഇനി നമുക്ക് രസകരമായ ഭാഗത്തേക്ക് വരാം. ഞങ്ങളുടെ പാക്കേജുകൾ എങ്ങനെ വിതരണം ചെയ്യും? നമുക്ക് നമ്മുടെ സ്വന്തം റിപ്പോസിറ്ററി സെർവർ സമാരംഭിക്കാം, തീർച്ചയായും. ഇതിനായി ഞങ്ങൾ apt repository സെർവർ deb-simple ഉപയോഗിക്കും.

ഇത് ഒരു കമാൻഡ് ഉപയോഗിച്ച് ഇൻസ്റ്റാൾ ചെയ്യാൻ കഴിയുന്ന വളരെ ലളിതമായ സെർവറാണ്:

പോയി github.com/esell/deb-simple നേടുക

നിങ്ങൾ റിപ്പോസിറ്ററികൾ ഉപയോഗിച്ച് സെർവർ പ്രവർത്തിപ്പിക്കാൻ പോകുന്ന മെഷീനിൽ go ഇൻസ്റ്റാൾ ചെയ്തിട്ടില്ലെങ്കിൽ, നിങ്ങൾക്ക് ബൈനറി പ്രാദേശികമായി നിർമ്മിക്കാനും അത് പകർത്താനും കഴിയും. പകരമായി, നിങ്ങൾക്ക് ഡോക്കർ ഉപയോഗിക്കാം.

അപ്പോൾ നിങ്ങൾ സെർവർ ആരംഭിക്കേണ്ടതുണ്ട്. ഡോക്കർ ഉപയോഗിച്ച് ഇത് ചെയ്യാൻ കഴിയും, എന്നാൽ സൂപ്പർവൈസർ ഉപയോഗിക്കുന്നതാണ് ഞാൻ ഇഷ്ടപ്പെടുന്നത്. എൻ്റെ സേവന കോൺഫിഗറേഷൻ്റെ ഒരു ഉദാഹരണം ഇതാ:

കമാൻഡ്=/home/user/go1.5/bin/deb-simple directory=/home/user/deb-simple/ autorestart=true stdout_logfile=none

ബൈനറി (കമാൻഡ്), വർക്കിംഗ് ഫോൾഡർ (ഡയറക്‌ടറി) എന്നിവയിലേക്കുള്ള പാത സൂചിപ്പിക്കുന്നത് ഇവിടെ പ്രധാനമാണ്, അതിൽ ഞങ്ങൾ കോൺഫിഗറേഷൻ സ്ഥാപിക്കും.

deb-simple സെർവർ https പിന്തുണയ്‌ക്കുന്നു, പക്ഷേ ഞങ്ങൾക്ക് ഇത് ഇതുവരെ ആവശ്യമില്ല. റിപ്പോസിറ്ററികൾക്കായി, നിങ്ങൾ ഒരു റിപ്പോ ഫോൾഡർ സൃഷ്ടിക്കേണ്ടതുണ്ട്. ഞങ്ങളുടെ conf.json കോൺഫിഗറേഷൻ ഇതുപോലെ കാണപ്പെടും:

( "listenPort" : "9090", "rootRepoPath" : "/home/user/deb-simple/repo", "supportedArch" : ["എല്ലാം","i386","amd64"], "enableSSL" : തെറ്റ്, "SSLcert" : "server.crt", "SSLkey" : "server.key" )

നിങ്ങളുടെ ശേഖരത്തിലേക്ക് ഒരു പാക്കേജ് അപ്‌ലോഡ് ചെയ്യുന്നതിന്, നിങ്ങൾ സേവനത്തിൻ്റെ തന്നെ HTTP API ഉപയോഗിക്കേണ്ടതുണ്ട്:

Curl -XPOST "http://localhost:9090/upload?arch=amd64" -F " [ഇമെയിൽ പരിരക്ഷിതം]"

അതുപോലെ ഇല്ലാതാക്കുന്നതിന്:

Curl -XDELETE "http://localhost:9090/delete" -d "("ഫയലിൻ്റെ പേര്":"project.deb","arch":"amd64")"

നമ്മൾ ചെയ്യേണ്ടത്, /etc/apt/source.list.d/ എന്നതിലെ ലിസ്റ്റിലേക്ക് നമ്മുടെ റിപ്പോസിറ്ററി സെർവറിനെ ചേർക്കുക മാത്രമാണ്. ഉള്ളടക്കങ്ങൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഒരു പ്രത്യേക ഫയൽ സൃഷ്ടിക്കാൻ കഴിയും:

ഡെബ് http://my-hostname:9090/ സ്ഥിരതയുള്ള പ്രധാനം

ഇപ്പോൾ sudo apt-get അപ്‌ഡേറ്റ് പ്രവർത്തിപ്പിച്ച് നിങ്ങളുടെ പ്രോഗ്രാമുകൾ നിങ്ങളുടെ ഹൃദയത്തിൻ്റെ ഉള്ളടക്കത്തിൽ ഇൻസ്റ്റാൾ ചെയ്യുക.