Skip to main content

ఉబుంటు ప్యాకేజింగ్ గైడ్ - డెఫెల్పర్తో ప్యాకేజింగ్

Anonim

డెఫెల్పర్తో ప్యాకేజింగ్

ముఖ్యమైన

అవసరాలు: విభాగం నుండి "స్క్రాచ్ ప్యాకేజింగ్" అని పిలువబడే విభాగం మరియు ప్లెబెర్స్ మరియు డీ-మేక్

ప్యాకేజీగా, మునుపటి విభాగంలో మేము చేసిన విధంగా మీరు అరుదుగా ప్యాకేజీలను స్క్రాచ్ నుండి తయారు చేస్తారు. మీరు ఊహించిన విధంగా, అనేక పనులు మరియు సమాచారం నియమాలు ఫైల్, ఉదాహరణకు, ప్యాకేజీలకు సాధారణం. ప్యాకేజింగ్ సులభం మరియు మరింత సమర్థవంతంగా చేయడానికి, మీరు ఉపయోగించవచ్చు debhelper ఈ పనులకు సహాయం. డెబ్భెర్ అనేది పెర్ల్ స్క్రిప్ట్ యొక్క సమితి (పూర్వం dh_) ప్యాకేజీ-భవనం యొక్క విధానాన్ని స్వయంచాలకం చేస్తుంది. ఈ లిపులతో, డెబియన్ ప్యాకేజీని నిర్మించడం చాలా సరళంగా మారుతుంది.

ఈ ఉదాహరణలో, మేము మళ్ళీ GNU హలో ప్యాకేజీని నిర్మిస్తాము, కానీ ఈ సమయంలో మేము ఉబుంటుకు మా పనిని పోల్చుతాము హలో debhelper ప్యాకేజీ. మళ్ళీ, మీరు పనిచేసే డైరెక్టరీని సృష్టించండి:

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

అప్స్ట్రీమ్ టార్బాల్ ను కాపీ చేయడానికి బదులుగా hello_2.1.1.orig.tar.gz మేము మునుపటి ఉదాహరణలో చేశాము, మనం వీలు ఉంటుంది dh_make మాకు పని చేయండి. మీరు చేయవలసిన ఏకైక విషయం మూలం ఫోల్డర్ రూపంలో ఉంటుంది కాబట్టి ఇది రూపంలో ఉంటుంది - ఇక్కడ packagename చిన్నది. ఈ సందర్భంలో, సరిగ్గా పేరు పెట్టబడిన సోర్స్ డైరెక్టరీని టార్బల్ ను అన్టార్రింగ్ చేస్తే మనము దీనిని కదిలిద్దాం:

cd hello-2.1.1

మూలం యొక్క ప్రారంభ "debianization" సృష్టించడానికి మేము ఉపయోగించే dh_make.

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

dh_make అప్పుడు మీరు ప్రశ్నలు వరుస అడుగుతాము:

ప్యాకేజీ రకం: ఒకే బైనరీ, బహుళ బైనరీ, లైబ్రరీ, కెర్నల్ మాడ్యూల్ లేదా సి డబ్లులు? లు / m / l / k / b లు కాపెన్ పేజర్: ఇమెయిల్ చిరునామా: [email protected] తేదీ: థు, 6 ఏప్రిల్ 2006 10:07:19 -0700 ప్యాకేజీ పేరు: హలో వెర్షన్: 2.1.1 లైసెన్సు: ఖాళీ రకం ప్యాకేజీ: సింగిల్ హిట్ నిర్దారించుటకు: ఎంటర్

హెచ్చరిక

మాత్రమే అమలు dh_make -e ఒకసారి. మీరు మొదటి సారి చేసిన తర్వాత దాన్ని మళ్ళీ అమలు చేస్తే, అది సరిగా పనిచేయదు. మీరు దానిని మార్చాలని లేదా పొరపాటు చేయాలనుకుంటే, మూలం డైరెక్టరీని తీసివేసి, అప్స్ట్రీమ్ టార్బల్ ను తిరిగి తీసివేయండి. అప్పుడు మీరు మూలం డైరెక్టరీకి వెళ్ళవచ్చు మరియు మళ్లీ ప్రయత్నించండి.

రన్నింగ్ dh_make -e రెండు విషయాలు చేస్తుంది:

  • సృష్టిస్తుంది hello_2.1.1.orig.tar.gz పేరెంట్ డైరెక్టరీలో ఫైల్,
  • అవసరమైన ప్రాథమిక ఫైళ్లను సృష్టిస్తుంది డెబియన్ / మరియు అవసరమైన అనేక టెంప్లేట్ ఫైల్స్ (.exex).

ది హలో కార్యక్రమం చాలా క్లిష్టంగా లేదు, మరియు మేము "స్క్రాచ్ ప్యాకేజింగ్" అని పిలువబడే విభాగంలో చూసినట్లుగా, ప్రాథమిక ఫైళ్ళ కంటే ఇది ప్యాకేజీకి చాలా అవసరం లేదు. అందువలన, మనం తొలగించండి .ఇండోనేషియా కు Ex ఫైళ్లు:

cd debian rm * .ex * .EX

కోసం హలో, మీరు కూడా కాదు

* లైసెన్సు

* ఉబుంటు ప్యాకేజింగ్ గైడ్ ఇండెక్స్

అవసరం README.Debian (నిర్దిష్ట Debian సమస్యలకు README ఫైల్, ప్రోగ్రామ్ README కాదు), dirs (ఉపయోగించింది dh_installdirs అవసరమైన డైరెక్టరీలను సృష్టించడం), డాక్స్ (ఉపయోగించింది dh_installdocs ప్రోగ్రామ్ డాక్యుమెంటేషన్ను ఇన్స్టాల్ చేయడానికి), లేదా సమాచారం (ఉపయోగించింది dh_installinfo సమాచార ఫైల్ను ఇన్స్టాల్ చేయడానికి) లోకి ఫైల్స్ డెబియన్ డైరెక్టరీ. ఈ ఫైళ్ళపై మరింత సమాచారం కొరకు, "dh_make ఉదాహరణకు ఫైల్స్" అనే విభాగాన్ని చూడండి.

ఈ సమయంలో, మీరు మాత్రమే ఉండాలి చేంజ్లాగ్, compat, నియంత్రణ, కాపీరైట్, మరియు నియమాలు లో ఫైళ్లు డెబియన్ డైరెక్టరీ. "స్క్రాచ్ నుండి ప్యాకేజింగ్" అని పిలువబడే విభాగం నుండి, క్రొత్తది మాత్రమే compat, ఇది కలిగివున్న ఒక ఫైల్ debhelper ఉపయోగించబడుతుంది వెర్షన్ (ఈ సందర్భంలో 4).

మీరు సర్దుబాటు చేయాలి చేంజ్లాగ్కొంచెం ఈ కేసులో ఈ ప్యాకేజీ పేరు పెట్టబడిందని ప్రతిబింబించటం హలో debhelper బదులుగా కేవలం హలో:

హలో-డెబ్helper (2.1.1-1) డాపెర్; అత్యవసర = తక్కువ * ప్రారంభ విడుదల - కెప్టెన్ ప్యాకేజీ థు, 6 ఏప్రిల్ 2006 10:07:19 -0700

ఉపయోగించడం ద్వార debhelper, మనము మార్చవలసిన విషయాలు మాత్రమే నియంత్రణ పేరు (ప్రత్యామ్నాయం హలో కోసం హలో debhelper) మరియు జోడించడం debhelper (> = 4.0.0) కు బిల్డ్ ఆధారపడి మూలం ప్యాకేజీ కోసం ఫీల్డ్. కోసం ఉబుంటు ప్యాకేజీ హలో debhelper కనిపిస్తోంది:

మూలం: హలో-డెబ్helper విభాగం: devel ప్రాధాన్యత: అదనపు సంరక్షకుడు: కెప్టెన్ Packager డెవలపర్లు-సంస్కరణ: 3.6.1 బిల్డ్-డిపెండ్స్: డెబ్helper (> = 4) ప్యాకేజీ: హలో-డెబ్helper ఆర్కిటెక్చర్: ఏదైనా ఆధారపడి: $ {shlibs: ఆధారపడి ఉంటుంది} విభేదాలు: హలో అందిస్తుంది: హలో ప్రత్యామ్నాయాలు: హలో వివరణ: క్లాసిక్ గ్రీటింగ్ మరియు మంచి ఉదాహరణ GNU హలో కార్యక్రమం తెలిసిన, స్నేహపూర్వక గ్రీటింగ్ను ఉత్పత్తి చేస్తుంది. ఇది ప్రోగ్రామర్లు ఒక క్లాసిక్ కంప్యూటర్ సైన్స్ సాధనాన్ని ఉపయోగించడానికి అనుమతిస్తుంది, లేకపోతే అది వారికి అందుబాటులో ఉండదు. . తీవ్రంగా, అయితే: ఇది డెబియన్ ప్యాకేజీని ఎలా చేయాలో చెప్పడం. GNU ప్రాజెక్ట్ యొక్క 'హలో వరల్డ్' ప్రోగ్రామ్ యొక్క డెబియన్ వెర్షన్ (ఇది GNU ప్రాజెక్ట్కు ఇది ఒక ఉదాహరణ). . ఇది డెబ్ చేయడానికి డెబ్helper ను ఉపయోగిస్తున్నప్పుడు తప్ప, హలో ప్యాకేజీ వలె ఉంటుంది. ఇది ఏమిటో ఏమిటో తెలుసు.

మేము కాపీ చేయవచ్చు కాపీరైట్ ఫైలు మరియు postinst మరియు prerm ఉబుంటు నుండి స్క్రిప్ట్స్ హలో debhelper ప్యాకేజీ, ఎందుకంటే "స్క్రాచ్ నుండి ప్యాకేజింగ్" అని పిలువబడే విభాగం నుండి మార్చబడలేదు. మేము కూడా కాపీ చేస్తాము నియమాలు ఫైల్ కాబట్టి మేము దానిని తనిఖీ చేయవచ్చు.

cp ../../unt/hello-debhelper-2.1.1/debian/copyright. cp ../../unt/hello-debhelper-2.1.1/debian/postinst. cp ../../unt/hello-debhelper-2.1.1/debian/prerm. cp ../../unt/hello-debhelper-2.1.1/debian/rules.

మేము చూడవలసిన చివరి ఫైలు నియమాలు, ఎక్కడ శక్తి debhelper స్క్రిప్ట్స్ చూడవచ్చు. ది debhelper యొక్క వెర్షన్ నియమాలు ("నియమాలు" అని పిలువబడే విభాగంలోని 72 పంక్తులు వ్యతిరేకంగా 54 పంక్తులు) కొంత తక్కువగా ఉంటుంది.

ది debhelper వెర్షన్ కనిపిస్తుంది:

#! / usr / bin / make -f package = hello-debhelper CC = gcc CFLAGS = -g -all ifeq (, $ (findstring noopt, $ (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) prefix = $ (CURDIR) / debian / $ (ప్యాకేజీ) / usr mandir = $ (CURDIR) / debian / $ (ప్యాకేజీ) / usr / share / man infodir = $ (CURDIR) / debian / $ (ప్యాకేజీ) / usr / share / info install బిల్డ్: ./configure --prefix = / usr $ (MAKE) CC = "$ (CC) "CFLAGS =" $ (CFLAGS) "

టచ్ బిల్డ్ బైనరీ-ఇండిపెండ్: ఇన్స్టాల్ # ఈ ప్యాకేజీచే సృష్టించబడిన # నిర్మాణం-లేని స్వతంత్ర ఫైల్లు ఉన్నాయి. ఏదైనా ఉంటే అవి # ఇక్కడ తయారు చేయబడతాయి. బైనరీ-వంపు: dh_testdir -a dh_testroot -a dh_installdocs -a న్యూస్ dh_installchangelogs -a చేంజ్లాగ్ dh_strip -a dh_compress -a dh_fixperms -a dh_installdeb -a dh_shlibdeps -a dh_mountcontrol -a dh_builddeb -a dh_builddeb -a బైనరీ: బైనరీ- indep బైనరీ- arch .బయోనీ: బైనరీ బైనరీ వంపు బైనరీ ఇండిపెండెడ్ క్లీన్ చెక్రోట్

మీరు సరైన డైరెక్టరీలో ఉంటే పరీక్షలు వంటివి గమనించండి (dh_testdir), మీరు రూట్ అధికారాలు కలిగిన ప్యాకేజీని తయారు చేస్తున్నారని చూసుకోండి (dh_testroot), సంస్థాపించుట డాక్యుమెంటేషన్ (dh_installdocs మరియు dh_installchangelogs), మరియు బిల్డింగ్ తర్వాత శుభ్రం (dh_clean) స్వయంచాలకంగా నిర్వహించబడతాయి. చాలా ప్యాకేజీలు చాలా క్లిష్టంగా ఉంటాయి హలో కలిగి నియమాలు ఎటువంటి పెద్ద ఫైల్స్ ఎందుకంటే debhelper స్క్రిప్ట్ చాలా పనులు నిర్వహించడానికి. పూర్తి జాబితా కోసం debhelper స్క్రిప్ట్స్, అని విభాగం చూడండి "జాబితా debhelper స్క్రిప్ట్స్ "అని కూడా పిలుస్తారు మనిషి పేజీలు. ఇది పైన ఉపయోగించిన సహాయక స్క్రిప్టు కొరకు మాన్యువల్ పేజ్ (వారు బాగా వ్రాసినవి మరియు సుదీర్ఘమైనవి కాదు) చదవడానికి ఉపయోగకరంగా ఉండే వ్యాయామం నియమాలు దాఖలు.