
आज मैं आपको जादू के बारे में बताऊंगा। और यह जादू एक बार और सभी के लिए विंडोज सिस्टम प्रशासक के जीवन को बदल सकता है।
आजकल, कम और कम लोग हैं, जिन्होंने कम से कम एक बार लिनक्स वातावरण में सॉफ़्टवेयर स्थापित नहीं किया था। यह अविश्वसनीय रूप से सरल है: आरएच वातावरण (रेडहैट एंटरप्राइज, सेंटोस, फेडोरा, आदि) में मध्यरात्रि कमांडर (एमसी) स्थापित करने के लिए, हमें बस "जादू" कमांड के एक जोड़े की आवश्यकता है:
यम पैकेज प्रबंधक यह सुनिश्चित करेगा कि
एमसी का नवीनतम संस्करण स्थापित हो, साथ ही साथ पैकेज निर्भरता, यदि कोई हो। लेकिन क्या होगा अगर विंडोज हमारे निपटान में है, और हम ऐसा कुछ चाहते हैं? ठीक है, लिनक्स पर जाएँ या पढ़ें!
मेरे "अभिभावकत्व" के तहत विंडोज और लिनक्स मशीनों का एक विषम नेटवर्क है (और अधिक सरलता से, एक चिड़ियाघर), और अब लगभग दो साल से मैं विन * के तहत सॉफ़्टवेयर स्थापित करने के लिए चॉकलेट का उपयोग कर रहा हूं। Chocolatey (Chocolatey.org,
github.com/choubley ) एक पैकेज मैनेजमेंट सिस्टम है जो कि apt-get या yum के समान है, लेकिन केवल Windows के लिए है।
डेवलपर के संदर्भ में पहले से ही कवर किए गए चॉकलेट थीम पर, आज मैं सिस्टम व्यवस्थापक के दृष्टिकोण से इस अद्भुत उपकरण को देखना चाहता हूं। चॉकलेटी नुगेट तकनीक के आधार पर काम करता है (यह विंडोज के लिए सॉफ्टवेयर के डेवलपर्स द्वारा सक्रिय रूप से उपयोग किया जाता है), और चॉकलेट की मुख्य विशेषता यह है कि पैकेज में अक्सर स्थापना फ़ाइलें (setup.msi, setup.exe, आदि ...) नहीं होती हैं। यह निम्नानुसार काम करता है: पैकेज में पावरशेल पर एक इंस्टॉलर स्क्रिप्ट शामिल है जो इंटरनेट पर सही जगह से इंस्टॉलेशन फ़ाइल के आवश्यक संस्करण को डाउनलोड और इंस्टॉल करता है, और आपको बस स्थापना की आसानी का आनंद लेना होगा।
चॉकलेट की स्थापना
इससे पहले कि हम चॉकलेटी जादू का उपयोग कर सकें, हमें इसके मूल को स्थापित करना होगा। ऐसा करने के लिए, कमांड प्रॉम्प्ट पर चलाएँ:
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%systemdrive%\chocolatey\bin
यह कमांड मुख्य
Chocolatey.org/install.ps1 इंस्टॉलेशन स्क्रिप्ट को डाउनलोड और चलाएगा, साथ ही आवश्यक पर्यावरण चर भी कॉन्फ़िगर करेगा। अब जबकि हमारे पास सब कुछ है जो हमें चाहिए, चलो पैकेज प्रबंधन प्रणाली का परीक्षण करें और Nodepad ++ स्थापित करें। यह निम्नलिखित कमांड चलाने के लिए पर्याप्त है:
cinst notepadplusplus
अन्य पैकेज क्या हैं और वे कहाँ से आते हैं?
NuGet की तरह, Chocolatey के पास रिपॉजिटरी में स्थित पैकेजों की एक प्रभावशाली सूची है, जो
एक पैकेज लाइब्रेरी भी
है । यहाँ उनमें से कुछ हैं:
Chocolatey.org पर शीर्ष 10 सबसे लोकप्रिय पैकेज- Git - 51191 डाउनलोड
- नोटपैड ++ - 37533 डाउनलोड
- 7Zip - 37802 डाउनलोड
- Google Chrome - 25960 डाउनलोड
- जावा रनटाइम - 25699 डाउनलोड
- NodeJS - 25,542 डाउनलोड
- मोज़िला फ़ायरफ़ॉक्स - 20,747 डाउनलोड
- एडोब फ्लैश प्लेयर - 20660 डाउनलोड
- वीएलसी प्लेयर - 20419 डाउनलोड
- रूबी 2.0 - 19587 डाउनलोड
पैकेज हर दिन जोड़े जाते हैं, क्योंकि कोई भी चॉकलेटी.ओआरजी पर अपना पैकेज जोड़ सकता है, मुख्य बात यह है कि यह
आवश्यकताओं को पूरा करता है ।
पैकेज प्रकाशन आवश्यकताएँ- अवैध कार्यक्रम प्रकाशित न करें । दुनिया के अधिकांश देशों में गैरकानूनी होने वाले कार्यक्रमों को भी Chocolatey.org पर पोस्ट करने पर प्रतिबंध है। यह उन सॉफ़्टवेयर पर भी लागू होता है जो कॉपीराइट, पायरेटेड सॉफ़्टवेयर और क्रैक का उल्लंघन करते हैं। याद रखें कि यह उन कार्यक्रमों पर भी लागू होता है जो चोरी के लिए उपयोग किए जाते हैं।
- चॉकलेट में प्रोग्राम को पैक न करें, जिसके लिए आपके पास वितरण अधिकार नहीं हैं । कृपया सॉफ़्टवेयर वितरण नियमों की जांच करें और उनका उल्लंघन न करें।
- वायरस या किसी अन्य हानिकारक कार्यक्रम को प्रकाशित न करें ।
- केवल उन कार्यक्रमों को प्रकाशित करें जो दूसरों के लिए उपयोगी होंगे। यदि आपका पैकेज इस श्रेणी का नहीं है - तो उसे प्रकाशित न करें।
- स्पायवेयर या एडवेयर प्रकाशित न करें। ऐसे प्रोग्राम जो बिल्ट-इन एडवेयर या स्पायवेयर या किसी अन्य अप्रासंगिक प्रोग्राम के साथ आते हैं, उन्हें प्रकाशन की अनुमति नहीं है। आमतौर पर, सभी अप्रासंगिक कार्यक्रमों को इंस्टॉलर कुंजी का उपयोग करके स्थापना से बाहर रखा जा सकता है। ऐसे कार्यक्रमों के उदाहरण PDFCreator और CCleaner हैं ।
- पहले से प्रकाशित होने वाले कार्यक्रमों को प्रकाशित न करें। Chocolatey.org पर खोज का उपयोग करें। यदि आप किसी मौजूदा पैकेज को बेहतर बनाना चाहते हैं, तो उस व्यक्ति से संपर्क करें जो पैकेज का समर्थन करता है या अपनी रिपॉजिटरी को पुल-रिक्वेस्ट भेजता है।
- यदि आपके पास पहले से ही अपना पैकेज है, तो अपने पैकेज में अन्य कार्यक्रमों को शामिल न करें । यदि आपके पैकेज को कुछ कार्यक्रमों की आवश्यकता होती है, तो आपके द्वारा मौजूदा पैकेज को एक निर्भरता के रूप में शामिल किया जाना चाहिए।
- कई पैकेजों में निर्भरता को अलग करें । यथासंभव पैकेज को पैकेज में विभाजित करने का प्रयास करें। उदाहरण के लिए, प्रोग्राम वैकल्पिक मॉड्यूल के साथ आता है। मॉड्यूल के लिए एक सामान्य पैकेज में शामिल करने के बजाय अतिरिक्त पैकेज बनाएं। इस विचार का उपयोग लिनक्स पैकेजों में लंबे समय से किया गया है क्योंकि यह आपको हल्के पैकेज बनाने की अनुमति देता है और संघर्ष की संभावना को कम करता है।
यह कैसे काम करता है?
मैं
लॉगस्टैश उदाहरण
का उपयोग करके अधिक विवरण
में चॉकलेटरी पैकेज की सामग्री का विश्लेषण करना चाहूंगा, जिसे मैंने विशेष रूप से विंडोज सर्वर पर लॉगस्टैश एजेंट को तैनात करने के लिए बनाया था:
\logstash \tools chocolateyInstall.ps1 logstash.nuspec
यहां आप देख सकते हैं कि पैकेज में केवल 2 फाइलें हैं: logstash.nuspec और chocolateyInstall.ps1।
logstash.nuspec - एक फ़ाइल जो पैकेज की मेटा-जानकारी का वर्णन करती है <?xml version="1.0"?> <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> <metadata> <id>logstash</id> <version>1.2.1.2013101701</version> <title>logstash</title> <authors>kireevco</authors> <owners>http://chocolatey.org/profiles/kireevco</owners> <projectUrl>https://github.com/kireevco/chocolatey-packages</projectUrl> <copyright>http://logstash.net</copyright> <iconUrl>http://logstash.net/images/logstash.png</iconUrl> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>Logstash is a tool for managing events and logs. You can use it to collect logs, parse them, and store them for later use (like, for searching). Speaking of searching, logstash comes with a web interface for searching and drilling into all of your logs. This package installs logstash flat jar as an agent service via nssm. All you need to do - is to configure your logstash.conf and start logstash service. Service is installed with these parameters: "java.exe -Xmx512M -jar logstash.jar agent --config logstash.conf --log logstash.log "</description> <summary>Logstash Agent package</summary> <tags>logstash, logging</tags> <dependencies> <dependency id="javaruntime" version="7.0.0" /> <dependency id="NSSM" version="2.16.0" /> <dependency id="Chocolatey" version="0.9.8.20" /> </dependencies> </metadata> </package>
इस फ़ाइल में यह
निर्भरता खंड को पार्स करने के लिए दिलचस्प होगा, जिसमें हम इंगित करते हैं कि हमारे पैकेज को कुछ संस्करणों के 3 अन्य पैकेजों की आवश्यकता है, अर्थात्
javaruntime ,
NSSM (आपको हमारी .jar फ़ाइल को Windows सेवा के रूप में स्थापित करने की अनुमति देता है), साथ ही साथ एक निश्चित संस्करण के चॉकलेट भी। यदि आवश्यक पैकेजों में से कोई भी गायब है, या इसका संस्करण आवश्यक से मेल नहीं खाता है, तो निर्भरता की प्रणाली स्थिति को हल करेगी और आवश्यक रूप से सब कुछ बहाल करेगी। यह ध्यान देने योग्य है कि
नगेट नोटेशन का उपयोग संस्करणों को इंगित करने के लिए किया जाता है।
पॉवर्सशेल स्क्रिप्ट चॉक्लेटइन्स्टाल.प्स १ # jar $url='https://download.elasticsearch.org/logstash/logstash/logstash-1.2.1-flatjar.jar' # cmd $cmdfile='c:/logstash/logstash.cmd' # $confile = 'c:/logstash/logstash.conf.sample' $dir='c:/logstash' if (!(Test-Path -path $dir)) {New-Item $dir -Type Directory} Get-ChocolateyWebFile 'logstash' 'c:/logstash/logstash.jar' $url $url $cmdcontent = @@ Set-Content $cmdfile $cmdcontent -Encoding ASCII # $confcontent = @@ Set-Content $confile $confcontent -Encoding ASCII if ($serviceinfo = Get-Service -ErrorAction SilentlyContinue) { if ($serviceinfo.status -ne 'Running') { if ($serviceinfo.status -eq 'Stopped') { echo echo sc.exe \\localhost delete nssm install C:\logstash\logstash.cmd } } else { echo sc.exe \\localhost stop echo sc.exe \\localhost delete echo nssm install C:\logstash\logstash.cmd } } else { # nssm echo nssm install C:\logstash\logstash.cmd }
आवेदन:
कई व्यवस्थापक शायद कार्यक्षमता का परीक्षण करने के लिए दौड़े - यह सही है, क्योंकि चॉकलेट का उपयोग करने के लिए कुछ भी जटिल नहीं है - यह चॉकलेटी की मिठास है। फिर भी, मैं विंडोज के लिए इस पैकेज मैनेजर का उपयोग करने के लिए कई परिदृश्यों की पेशकश करना चाहूंगा।
Cmd और पॉवर्सशेल स्क्रिप्ट
हम सभी अपने काम में सबसे सरल लिपियों का उपयोग करते हैं, और चॉकलेट इस प्रक्रिया में पूरी तरह से एकीकृत होते हैं। एक नियमित ग्राहक मशीन के लिए सबसे सरल स्क्रिप्ट इस तरह दिख सकती है:
cinst flashplayerplugin cinst flashplayeractivex cinst notepadplusplus cinst sublimetext2 cinst 7zip cinst GoogleChrome cinst javaruntime cinst Firefox cinst flashplayerplugin cinst adobereader cinst ccleaner cinst sysinternals cinst putty cinst filezilla cinst dropbox cinst skype cinst paint.net cinst virtualbox cinst DotNet4.5 cinst Wget cinst ConEmu cinst libreoffice cinst PDFCreator cinst teamviewer cinst wuinstall.run
कल्पना कीजिए कि यह आपको कितना समय बचाता है?
कठपुतली
मैं अपने बुनियादी ढांचे के विन्यास का प्रबंधन करने के लिए कठपुतली का उपयोग करता हूं, जो मुझे बहुत समय और नसों को बचाता है। कठपुतली के पास संसाधनों की एक अद्भुत अवधारणा है, साथ ही साथ एक घोषणात्मक शैली भी है, जो डिब्बे में "इस प्रोग्राम को इस या उस सर्वर पर कौन से प्रोग्राम को खड़ा करना चाहिए" के स्तर पर, और न कि "कौन सी आज्ञाओं को विंडोज पर चलना चाहिए और कौन से लिनक्स पर चलना चाहिए" "। कठपुतली के लिए, एक
चॉकलेट प्रदाता है जो हमें निम्नलिखित कार्य करने की अनुमति देता है:
package { "7zip" : ensure => installed, }
या
package { "notepadplusplus" : ensure => 1.0, }
पपेट और चॉकलेट द्वारा बाकी सभी चीजों का ध्यान रखा जाएगा। मेरा विश्वास करो, यह एक msi फ़ाइल से स्थापित करने की तुलना में बहुत अधिक सुविधाजनक है, जिसे आपको अभी भी कहीं न कहीं होस्ट करने की आवश्यकता है, और यह भी सुनिश्चित करें कि संस्करण को अपडेट करते समय (जिसे अभी भी करने की आवश्यकता है), पुराने संस्करण भी सहेजे गए हैं और कुछ भी नहीं टूटेगा।
चॉकलेट और डेस्कटॉप
मैं सुझाव देता हूं कि वर्कस्टेशन को प्रशासित करने के लिए चॉकलेटरी का उपयोग करने के दो तरीकों पर विचार करें।
चॉकलेट वाली जीयूआईChocolateyGUI , Chocolatey पैकेज प्रबंधन प्रणाली के लिए ग्राफिकल इंटरफ़ेस है। रिपॉजिटरी की वर्तमान स्थिति, साथ ही स्थानीय रूप से स्थापित पैकेजों की स्थिति की समीक्षा करने का एक सुविधाजनक तरीका। किसी कारण के लिए, मैं बहुत पहले synaptic या यहाँ तक कि योग्यता के एक संस्करण की याद दिला दी थी। यह काफी अच्छी तरह से काम करता है। वैसे, आप इसे कमांड लाइन से स्थापित कर सकते हैं:
cinst ChocolateyGUI

विंडोज पोस्ट इंस्टॉल (WPI)आप और भी आगे बढ़ सकते हैं, आसानी से संकुल का चयन करने के लिए
WPI इंटरफ़ेस का उपयोग करें जिसमें Chocolatey कमांड निष्पादित होंगे। WPI का उपयोग करके, आप आसानी से कार्यक्रमों को श्रेणियों में समूह बना सकते हैं, साथ ही टेम्प्लेट और इंस्टॉलेशन किट भी बना सकते हैं।
समाधान हमेशा एक स्रोत के रूप में यूएसबी-एचडीडी का उपयोग करने के लिए एक पूर्ण विकल्प नहीं बन पाएगा, लेकिन चॉकलेट के भंडार से एक ही के साथ सभी संभावित घटकों को बदलने से आपको सॉफ्टवेयर (फ़ोटोशॉप, कार्यालय, 3 डी मैक्स) के पूर्ण सेट के साथ एक छवि (फ़ोल्डर) की दर्दनाक नकल से बचाया जाएगा, जिसमें आर्किकैड, क्या यह वहाँ है?) और WPI शेल (और Google Chrome, नोटपैड ++, अवास्ट, आदि जैसे "प्रकाश" कार्यक्रम डालने के लिए सभी)।
उदाहरण के लिए, केंद्रीकृत भंडारण के बिना मशीनों के बिखरे हुए बेड़े का समर्थन करने वाले आने वाले प्रवेशों के लिए, यह इस तरह के प्रारूपों के कुछ होने के लिए सुविधाजनक है:
- व्यापार
- अकाउंटेंट
- razrabotchki
- होम उपयोगकर्ता
- मीडिया स्टेशन



इस प्रकार, WPI चॉकलेटरी कमांड चलाने के लिए सिर्फ एक शेल है, जो आपको वितरण के कुल आकार को कम करने की अनुमति देता है। बेशक, इस दृष्टिकोण के साथ, क्लाइंट मशीन में पहले से ही एक काम करने वाला इंटरनेट कनेक्शन होना चाहिए, जो आज कुछ मामलों में छोड़कर कोई समस्या नहीं है।
ऐसे प्रोग्राम पर वापस लौटना जो Chocolatey.org रिपॉजिटरी में नहीं हैं, यह उल्लेख किया जाना चाहिए कि Chocolatey किसी भी NuGet फ़ीड का समर्थन करता है, और न कि केवल डिफ़ॉल्ट Chocolatey.org। ड्रॉपबॉक्स में महत्वपूर्ण फाइलें भरें और
www.myget.org पर कहीं से अपना पैकेज बनाएं - यह बहुत सरल है!
अगर किसी को दिलचस्पी है, तो मैं आपको विस्तार से (एक अलग पोस्ट के रूप में) बता सकता हूं कि मेरा पैकेज कैसे बनाया जाए और इसे कैसे Chocolatey.org रिपॉजिटरी में अपलोड किया जाए, और कैसे मैंने विंडोज को अपनी भागीदारी के बिना (रीबूट और लाइसेंस के साथ) सभी अपडेट इंस्टॉल करने के लिए सिखाया। मैं अधिकतम रूप से maxmind.dat डेटाबेस को अपडेट करता हूं, क्योंकि मैं लॉगस्टैश और बहुत अधिक उपयोग करता हूं, और यह सब चॉकलेटी और कठपुतली की मदद के बिना नहीं है!
अंत में, मैं कहूंगा कि, मेरी राय में, विंडोज के लिए विकेंद्रीकृत पैकेज प्रबंधन प्रणाली का विचार और इसका कार्यान्वयन यह सुनिश्चित करने का एक और तरीका है कि आजकल ओपनसोर्स और प्रौद्योगिकी खोज कम गुणवत्ता वाली नहीं है और सिस्टम प्रशासन की वास्तविकताओं पर लागू होती है। बंद कोड एक विशेष समुदाय / कंपनी का कम से कम बाजार लाभ बन रहा है, जबकि कार्यान्वयन और समर्थन एक बड़ी भूमिका निभाता है। यह कल्पना करने के लिए कि दस साल पहले एक व्यक्ति द्वारा बनाई गई एक खुली परियोजना व्यापक हलकों में एक प्रतिध्वनि पैदा कर सकती है, और यहां तक कि विंडोज सर्कल भी अवास्तविक हैं, और आज चॉकलेटरी ओपनसोर्स समुदाय में डुबकी लगाने और सामान्य विचार में योगदान करने के लिए खुले अवसर को सुनिश्चित करने का एक और मौका है ।
किसी भी त्रुटि और अशुद्धियों के लिए, कृपया टिप्पणियों में इंगित करें, मैं सामग्री को खुशी से सही और पूरक करूंगा।
और अंत में, एक छोटा मतदान: