इस लेख में, हम चॉकलेटी पैकेज निर्माण के प्रमुख चरणों पर एक संक्षिप्त नज़र डालेंगे।
आवश्यकताएं
चॉकलेटी पैकेज के निर्माण के साथ आरंभ करने से पहले, सुनिश्चित करें कि आपको निम्न करने की आवश्यकता है:
- चॉकलेटी स्थापित कर लें;
- चॉकलेटी पैकेज क्या हैं पढ़ें? चॉकलेटी दस्तावेज़ीकरण का अनुभाग;
- जानें कि पैकेज कैसे काम करता है। विशेष रूप से, आप जानते हैं कि:
- एक पैकेज में एक *.nuspe . होता है सी फ़ाइल। यह पैकेज को परिभाषित करता है। (दस्तावेज़);
- पैकेज में एम्बेडेड सॉफ़्टवेयर हो सकता है;
- पैकेज में इंस्टॉलेशन स्क्रिप्ट हो सकती है।
- एक पैकेज में एक *.nuspe . होता है सी फ़ाइल। यह पैकेज को परिभाषित करता है। (दस्तावेज़);
एक चॉकलेटी पैकेज में निम्नलिखित मुख्य तत्व होते हैं:
- एक *.nuspec फ़ाइल। यह चरण अनिवार्य है।
- द ChocolateyInstall.ps1 फ़ाइल।
- शामिल करने के लिए कोई भी एप्लिकेशन फाइल (यह अत्यधिक अनुशंसित है कि आप इस मामले में लेखक हैं या आपको फाइलों को वितरित करने का अधिकार है)। *.exe चॉकलेटीइंस्टाल.ps1 से पैकेज/पैकेज फ़ोल्डर में डाउनलोड की गई फाइलों में कमांड लाइन का लिंक होगा।
- chocolateyUninstall.ps1 अपने पैकेज को अनइंस्टॉल करने के लिए।
मैं आपको पैकेज निर्माण को दर्शाने वाले वीडियो को देखने की सलाह देता हूं। कृपया ध्यान दें कि वीडियो में chocolateyInstall.ps1 की कुछ पुरानी सामग्री है . फिलहाल, ChocolateyInstall.ps1 निम्न जैसा दिखता है:
$packageName = 'windirstat $fileType = 'exe' $url = 'http://prdownloads.sourceforge.net/windirstat/windirstat1_1_2_setup.exe' $silentArgs = '/S' Install-ChocolateyPackage $packageName $fileType $silentArgs $url
चॉकलेट विंडोज पैकेज प्रबंधक NuGet के समान बुनियादी ढांचे का उपयोग करता है, जो कि विजुअल स्टूडियो . है पैकेज प्रबंधक। इसलिए, पैकेज समान सिद्धांतों पर आधारित होते हैं, जिसमें यह भी शामिल है कि पैकेज विवरण (विनिर्देश) को XML प्रारूप में संग्रहीत किया जाना चाहिए, जिसे Nuspec के रूप में जाना जाता है।
द *.nuspec फ़ाइल में संस्करण, लाइसेंस, अनुरक्षक और पैकेज निर्भरता जैसी मूलभूत जानकारी होती है। चॉकलेट में NuGet के शीर्ष पर अतिरिक्त वैकल्पिक कार्यक्षमता शामिल है *.nuspec फ़ाइल। इस प्रकार, वर्तमान में समर्थित सुविधाओं को निर्धारित करने का सबसे अच्छा तरीका एक परीक्षण पैकेज बनाना है, और उत्पन्न *.nuspec फ़ाइल को देखना है:
choco new testpackage
नोट: यदि आपका पैकेज हाल ही में पेश की गई कार्यक्षमता का उपयोग करता है, तो हो सकता है कि आप एक निर्भरता शामिल करना चाहें जो आवश्यक कार्यक्षमता का समर्थन करने वाले निम्नतम चॉकलेट संस्करण का संकेत दे। अन्यथा, उन उपयोगकर्ताओं के लिए स्थापना विफल हो सकती है जिनके पास पुराना चॉकलेटी संस्करण स्थापित है।
आप किसी अन्य निर्भरता की तरह चॉकलेटी निर्भरता को इंगित कर सकते हैं, जैसे:
<dependencies> <dependency id="chocolatey" version="0.9.8.21" /> </dependencies>
त्वरित प्रारंभ मार्गदर्शिका
- नया पैकेज जेनरेट करें :
- द
choco new -h
कमांड आपको पैकेज विकल्प सेट करने में मदद करेगा। - एक बार जब आप सभी विकल्पों का पता लगा लेते हैं, तो आप अपना टेम्प्लेट बनाने के लिए आगे बढ़ सकते हैं।
- द
- तदनुसार टेम्प्लेट संपादित करें :
cd package-name
package-name.
nuspec कॉन्फ़िगरेशन फ़ाइल.- संपादित करें
./tools/chocolateyInstall.ps1
स्क्रिप्ट स्थापित करें।- सुनिश्चित करें कि आपने इंस्टॉलर साइलेंट मोड को कॉन्फ़िगर किया है। यूनिवर्सल साइलेंट स्विच फ़ाइंडर का उपयोग करें, जो चोको पैकेज के रूप में उपलब्ध है:
choco install ussf.
- आपको अपनी फ़ाइलों को BOM के बिना UTF-8 वर्ण एन्कोडिंग के साथ सहेजना होगा।
- सुनिश्चित करें कि आपने इंस्टॉलर साइलेंट मोड को कॉन्फ़िगर किया है। यूनिवर्सल साइलेंट स्विच फ़ाइंडर का उपयोग करें, जो चोको पैकेज के रूप में उपलब्ध है:
- पैकेज बनाएं :
- अभी भी पैकेज निर्देशिका में है।
choco pack
- “सफलतापूर्वक बनाया गया पैकेज-नाम.1.1.1.0.nupkg”।
- पैकेज का परीक्षण करें :
- परीक्षण वर्चुअल मशीन पर किया जाना चाहिए।
- अपनी पैकेज निर्देशिका में, उपयोग करें:
choco install package-name -s
package-name
nuspec में id तत्व है
- पैकेज को पुश करें चॉकलेटी कम्युनिटी पैकेज रिपॉजिटरी में:
- चॉकलेट खाता प्राप्त करें:
- पंजीकरण करें।
- अपने चॉकलेटी खाते से एपीआई कुंजी कॉपी करें।
choco apikey -k [API_KEY_HERE] -source https://push.chocolatey.org/
choco push package-name.1.1.0.nupkg -s https://push.chocolatey.org/
- *.nupkg फ़ाइल को छोड़ा जा सकता है यदि यह निर्देशिका में केवल एक है।
- चॉकलेट खाता प्राप्त करें:
उदाहरण
यहां कुछ सरल उदाहरण दिए गए हैं।
नोट :प्रदान किए गए उदाहरणों में चेकसम और नए पैकेज अवधारणाओं के अद्यतन की आवश्यकता हो सकती है। choco new
चलाएं पैकेज बनाते समय क्योंकि इसमें नवीनतम नोट होते हैं।
.exe इंस्टॉलर के लिए chocolateyInstall.ps1
$name = 'Package Name' $installerType = 'exe' $url = 'http://path/to/download/installer.exe' $silentArgs = '/VERYSILENT' Install-ChocolateyPackage $name $installerType $silentArgs $url
नोट :इंस्टॉलर को चुप कराने के लिए आपको कमांड लाइन स्विच सेट करना होगा, उदा। ./VERYSILENT
इंस्टॉलर के आधार पर स्विच का नाम बदलता रहता है।
.msi इंस्टॉलर के लिए chocolateyInstall.ps1
नोट :आपको पॉश v2 के साथ संगतता बनाए रखने की आवश्यकता है। प्रत्येक समर्थित OS पॉश v2 पर नहीं है (न ही OOB पॉश v3+ के साथ आता है)। सिस्टम की व्यापक संगतता के साथ काम करना सबसे अच्छा अभ्यास है।
$packageName = 'Package Name' $installerType = 'msi' $url = 'http://path/to/download/installer_x86.msi' $url64 = 'http://path/to/download/installer_x64.msi' $silentArgs = '/quiet' $validExitCodes = @(0,3010) Install-ChocolateyPackage $packageName $installerType $silentArgs $url $url64 -validExitCodes $validExitCodes
अपने पैकेज का परीक्षण करना
नोट 1 :मैं दृढ़ता से एक वर्चुअल मशीन पर परीक्षण करने की सलाह देता हूं, न कि आपकी कार्यशील मशीन पर।
नोट 2 :पैकेज परीक्षण उसी तरह से किया जा सकता है जैसे सत्यापनकर्ता। चॉकलेटी सत्यापनकर्ता परीक्षण पर एक नज़र डालें।
नवनिर्मित पैकेज का परीक्षण करने के लिए, एक कमांड-लाइन शेल खोलें, और उस निर्देशिका में नेविगेट करें जहां *.nupkg फ़ाइल स्थित है। फिर निम्नलिखित टाइप करें:
choco install packageName -dv -s .
यह आदेश पैकेज को आपके स्रोत से ठीक बाहर स्थापित करेगा। अगर आपको ऐसी चीज़ें मिलती हैं जिन्हें आपको ठीक करने की ज़रूरत है, तो --force (-f)
. का उपयोग करें अपडेट किए गए *.nupkg . से पैकेज को हटाने और पुनर्स्थापित करने के लिए . यदि आप विशेष रूप से chocolateyBeforeModify.ps1 . का परीक्षण कर रहे हैं , आपको अपग्रेड का परीक्षण करने और परिदृश्यों की स्थापना रद्द करने की आवश्यकता है। आपको पहले इस फ़ाइल के साथ पैकेज का एक संस्करण स्थापित करने की आवश्यकता है क्योंकि समान t0 अनइंस्टॉल, संशोधित करने से पहले इंस्टॉल किए गए पैकेज से चलता है, न कि उस पैकेज से जिसे आप इंस्टॉल कर रहे हैं (जैसे chocolateyInstall.ps1 करता है)।
नोट 1 :Force --force (-f)
केवल बाद के परीक्षण के दौरान उपयोग किया जाना चाहिए जब आप उसी पैकेज को पुनः स्थापित कर रहे हों जिसे आपने बदल दिया है और नहीं नियमित उपयोग परिदृश्यों में उपयोग किया जा सकता है। यह निश्चित रूप से स्क्रिप्ट में नहीं होना चाहिए।
नोट 2 :यदि आप अपने पैकेज संस्करण में सेमर डैश का उपयोग करते हैं (जैसे 1.0.0-बीटा ), आपको -pre
. का उपयोग करना होगा बदलना। अन्यथा, आपको 'पैकेज खोजने में असमर्थ . मिलेगा ' चोको इंस्टाल से त्रुटियाँ। आप -version 1.0.0-beta
. भी निर्दिष्ट कर सकते हैं सटीक संस्करण स्थापित करने के लिए।
डॉट कैरेक्टर वर्तमान निर्देशिका को इंगित करता है। आप अर्धविराम द्वारा अलग की गई अनेक निर्देशिकाओं को निर्दिष्ट कर सकते हैं।
अपना पैकेज पुश करें
अपने पैकेज का निर्माण और परीक्षण करने के बाद उसे आगे बढ़ाने के लिए, निम्नलिखित टाइप करें:
choco push packageName.nupkg -s sourceLocation
कहां:
packageName.nupkg
nupkg का नाम है जिसे पैकेज नाम के एक भाग के रूप में एक संस्करण संख्या के साथ बनाया गया था;sourceLocation
उस स्रोत का स्थान है जिसे आप पुश करना चाहते हैं (उदा.-s https://chocolatey.org/
चॉकलेटी कम्युनिटी फीड के लिए)।
https://chocolatey.org/ सेट के लिए आपके पास API कुंजी होनी चाहिए। चोको पुश पर एक नज़र डालें।
आप Chocolatey.org में भी लॉग इन कर सकते हैं और वहां से अपना पैकेज अपलोड कर सकते हैं (2MB से अधिक के पैकेज के लिए अनुशंसित नहीं)।
संदर्भ
चॉकलेटी पैकेज के निर्माण और वितरण के बारे में अधिक जानने के लिए आप निम्नलिखित संसाधनों का उपयोग कर सकते हैं:
- https://chocolatey.org/docs/create-packages
- https://github.com/chocolatey-community/chocolatey-test-environm चॉकलेट एंट