2008-09-27 9 views
11

ऐसा लगता है कि पर्ल के अधिकांश इंस्टॉलर पर्ल मॉड्यूल स्थापित करने के आसपास केंद्रित हैं, न कि एप्लिकेशन। ExtUtils जैसी चीजें :: मेकमेकर और मॉड्यूल :: बिल्ड मॉड्यूल के लिए बहुत उपयुक्त हैं, लेकिन वेब ऐप्स के लिए कुछ अतिरिक्त काम की आवश्यकता है।पर्ल वेब ऐप इंस्टॉल करने के लिए सबसे अच्छी प्रणाली क्या है?

आदर्श रूप में यह रिपोजिटरी से स्रोत बाहर की जाँच के बाद निम्न करने के लिए सक्षम होने के लिए अच्छा होगा:

  • है याद आ रही निर्भरता का पता चला
  • डाउनलोड करें और एक आदेश
  • भागो CPAN से निर्भरता स्थापित स्रोत को अंतिम स्थिति में "निर्माण" करने के लिए (स्थानीय वातावरण के लिए आवश्यक कोई स्रोत पार्सिंग या कॉन्फ़िगरेशन करें)।
  • निर्मित फ़ाइलों को उचित स्थानों में स्थापित करने के लिए एक आदेश चलाएं। न केवल पर्ल मॉड्यूल, बल्कि टेम्पलेट (.tt) फ़ाइलों, और सीजीआई स्क्रिप्ट्स, जेएस और छवि फ़ाइलों जैसी चीजें जो वेब-पहुंच योग्य होनी चाहिए।
  • सुनिश्चित करें कि स्थापित फ़ाइलों पर उचित अनुमतियां सेट की गई हैं (और यदि आवश्यक हो तो SELinux संदर्भ)।

अभी हम मॉड्यूल पर आधारित एक प्रणाली है :: कि इस का सबसे करता है बनाएँ। काम जो मॉड्यूल का उपयोग करने के तैयार कर रही थी मेरी सह कार्यकर्ता द्वारा किया द्वारा किया गया था :: समय में निर्माण, और हम अपने समाधान सामान्यीकरण पर कुछ सलाह चाहते हैं, क्योंकि यह अभी काफी ऐप्स-विशिष्ट है। विशेष रूप से, हमारे सिस्टम को हमें हाथों से निर्भरता स्थापित करने की आवश्यकता होती है (हालांकि यह उन्हें पहचानता है)।

वहाँ आप का उपयोग किया है किसी विशेष प्रणाली है कि विशेष रूप से सफल हो गया है है? आप मॉड्यूल के आधार पर एक इंस्टॉलर लिखने के लिए है :: या ExtUtils :: MakeMaker है कि आपके आवेदन के लिए विशेष रूप से है, या है अधिक सामान्य उपलब्ध कुछ का निर्माण?

संपादित करें: नीचे ब्रायन की सवालों के जवाब के लिए:

  • हम मशीनों
  • हम मशीनों
  • मशीनों सब (जाहिरा तौर पर) समान बनाता है कर रहे हैं के लिए रूट पहुँच नहीं है में प्रवेश कर सकते SELinux के साथ RHEL5 के
  • सक्षम वर्तमान में, लोगों को मशीन स्थापित हमारे समूह से केवल प्रोग्रामर हैं, और हमारे स्रोत आम जनता के लिए उपलब्ध नहीं है। हालांकि, यह कल्पना की जा सकती है कि हमारे स्रोत को हमारे संगठन में किसी और की मशीनों पर अंततः स्थापित किया जा सकता है, ताकि उनके प्रोग्रामर या सिस्टम लोगों द्वारा स्थापित किया जा सके।
  • हम भंडार से जांच करके स्थापित करते हैं, हालांकि हम एक वितरित संग्रह (ऊपर देखें) का उपयोग करने का विकल्प चाहते हैं।

उत्तर

6

वेब ऐप्स इंस्टॉल करने के लिए आपकी सीमाएं क्या हैं? क्या आप मशीन में लॉग इन कर सकते हैं? क्या सभी मशीनें एक ही चीज़ चल रही हैं? क्या लोग आम लोगों से वेब ऐप्स सहकर्मियों या यादृच्छिक लोगों को स्थापित कर रहे हैं? क्या लोग इस sysadmins, प्रोग्रामर, वेब प्रबंधकों, या कुछ और स्थापित कर रहे हैं? क्या आप एक संग्रह वितरित या स्रोत नियंत्रण से बाहर की जाँच करके स्थापित करते हैं?

मेरी अधिकांश सामग्री के लिए, जिसमें नियंत्रण वातावरण में पर्ल से परिचित सिसडमिन शामिल हैं, मैं बस MakeMaker का उपयोग करता हूं। यदि आप MakeMaker के बारे में कुछ जानते हैं तो आपको सूचीबद्ध सभी चीजों को करना आसान है। यदि आप इसके बारे में और जानना चाहते हैं, तो एक और सवाल पूछें। ;) Module::Build उतना आसान है, हालांकि, और अगर आप पहले से ही MakeMaker का उपयोग करना पसंद नहीं करते हैं।

Module::Build कई अलग-अलग स्थितियों को संभालने के लिए जाने का एक अच्छा तरीका होगा यदि लोग कमांड लाइन के बारे में मामूली रूप से सुसंगत हैं और सॉफ़्टवेयर इंस्टॉल कर रहे हैं। आपके पास Module::Build के साथ बहुत लचीलापन होगा, लेकिन थोड़ा और काम भी होगा। और, cpan उपकरण (जो पर्ल के साथ आता है), वर्तमान निर्देशिका से स्थापित कर सकते हैं और आपके लिए निर्भरताओं को संभाल सकते हैं। बस मौजूदा निर्देशिका स्थापित करने के लिए यह बताना:

$ cpan . 

आप केवल एक ही platorm पर स्थापित करने के लिए है, तो आप शायद एक आसान समय देशी प्रारूप में एक पैकेज बनाने होगा। आपके पास Module::Build भी आपके लिए यह पैकेज बना सकता है ताकि डेवलपर्स के पास Module::Build की लचीलापन हो, लेकिन इंस्टॉलर की मूल प्रक्रिया में आसानी हो। Module::Build के साथ चिपकने का भी अर्थ है कि आप एकल निर्माण उपकरण से विभिन्न प्लेटफ़ॉर्म के लिए अलग-अलग पैकेज बना सकते हैं।

यदि वेब एप्लिकेशन इंस्टॉल करने वाले लोगों को वास्तव में कमांड लाइन, सीपीएएन और अन्य चीजों के बारे में कोई जानकारी नहीं है, तो आप शायद एक पैकेजर और इंस्टॉलर का उपयोग करना चाहेंगे जो उन्हें डराता नहीं है या उन्हें क्या हो रहा है इसके बारे में सोचने में मदद करता है चालू, और स्वचालित रूप से आपको समस्याओं की सटीक रिपोर्ट कर सकते हैं।

डेव बताते हैं, एक असली CPAN दर्पण हमेशा आप एक मॉड्यूल के नवीनतम संस्करण हो जाता है का उपयोग कर, लेकिन आप भी बिल्कुल वितरण आप चाहते हैं के साथ अपने स्वयं "नकली" CPAN दर्पण बनाने के लिए और सामान्य CPAN उपकरणों से स्थापित हो सकता है के रूप में उस। हमारे ग्राहकों के लिए, हम "सीडीएएन पर एक सीडी" बनाते हैं (हालांकि अंगूठे ड्राइव अब भी अच्छे हैं)। एक साधारण "मुझे चलाएं" स्क्रिप्ट के साथ सब कुछ ठीक उसी संस्करण में स्थापित हो जाता है जो उन्हें चाहिए। उदाहरण के लिए, मेरे http://www.slideshare.net/brian_d_foy/mycpan-lapm-september-2007"> यदि आप इसमें रूचि रखते हैं तो अपनी खुद की सीपीएएन बात करना। फिर, जब आप इसके बारे में सोचते हैं तो दर्शकों पर विचार करें यह ऐसा कुछ नहीं है जिसे आप आम जनता को सौंपेंगे।

गुड लक, :)

3

मैं ऐसा करने के लिए आरपीएम जैसे पैकेज सिस्टम पर गंभीरता से विचार करने की सलाह दूंगा। भले ही आप विंडोज़ पर चल रहे हों, मैं आरपीएम और सिग्विन को इंस्टॉलेशन करने पर विचार करता हूं। रिमोट सिस्टम में पैकेज वितरित करने के लिए आप यम या एपीटी रिपोजिटरी भी सेट कर सकते हैं।

आप OSes और distros के किसी भी संख्या में चल रहे ग्राहकों के लिए एक सामान्य संस्थापक के लिए देख रहे हैं, तो समस्या बहुत कठिन हो जाता है।

6

जवाब आरपीएम सुझाव निश्चित रूप से एक अच्छा एक है।अपने सिस्टम के पैकेज मैनेजर का उपयोग करके निश्चित रूप से आपके जीवन को आसान बना सकते हैं। हालांकि, इसका मतलब यह हो सकता है कि आपको अन्य पर्ल मॉड्यूल का एक गुच्छा पैकेज करने की भी आवश्यकता है।

आप Shipwright पर भी एक नज़र डाल सकते हैं। यह एक ऐप पैकेजिंग और उसके सभी पर्ल मॉड्यूल निर्भरताओं के लिए एक पर्ल-आधारित टूल है। यह अभी तक शुरुआती दिनों में है, लेकिन यह आशाजनक लग रहा है।

निर्भरता स्थापित करने तक, टैरबॉल का एक गुच्छा पैकेज करना मुश्किल नहीं होगा और फिर आपको मॉड्यूल :: बिल्ड-आधारित समाधान स्थापित करना होगा। आपको pip पर एक नज़र डालना चाहिए, जो एक टैरबॉल से मॉड्यूल को काफी छोटा बनाता है। आप इसे अपने कोड बेस के साथ पैकेज कर सकते हैं और बस इसे अपने स्वयं के इंस्टॉलर से डीपीएस को संभालने के लिए कॉल कर सकते हैं।

मुझे सवाल है कि सीपीएएन पर भरोसा करना एक अच्छा विचार है। सीपीएएन खोल हमेशा एक विशिष्ट संस्करण की बजाय एक distro का नवीनतम संस्करण प्राप्त करता है। यदि आप दोहराने योग्य इंस्टॉल सुनिश्चित करने में रुचि रखते हैं, तो यह सही टूल नहीं है।

2

PAR पर एक नजर डालें।

जोनाथन रॉकवे अपनी पुस्तक में उत्प्रेरक के साथ इसका उपयोग करने के लिए एक छोटे से हिस्से के रूप में।

संबंधित मुद्दे

 संबंधित मुद्दे