2008-10-31 8 views
8

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

अतीत में, हमने इस एप्लिकेशन के इंस्टॉलेशन को स्वचालित करने के लिए पर्ल स्क्रिप्ट लिखी हैं। दुर्भाग्यवश, विभिन्न लिनक्स distros के idiosyncrasies के कारण, इन स्थापित स्क्रिप्ट के अंदर तर्क बहुत जटिल हो जाता है, और प्रत्येक समर्थित distro के नए संस्करणों के रूप में बदल सकते हैं। इंस्टॉलर को बनाए रखना इस प्रकार परियोजना के सबसे समय-गहन भागों में से एक बन जाता है!

मैं सहायता की तलाश में हूं, चाहे वह एक ढांचा, दस्तावेज, कोड नमूने हों, जो इस प्रक्रिया को कम दर्दनाक बना सकते हैं। यहाँ सब के प्रकार हैं हमारे संस्थापक करने की जरूरत है:

  • उपयोगकर्ता बनाएँ/समूह खातों

  • , और विशिष्ट स्वामित्व के साथ निर्देशिका पेड़ अनुमतियाँ बनाएं

  • स्थापित खुला स्रोत अनुप्रयोगों संभावित संकलन उन्हें

  • विशिष्ट निर्देशिकाओं में पूर्व-संकलित बाइनरी, स्क्रिप्ट, कॉन्फ़िगरेशन फ़ाइलें और दस्तावेज़ डालने के दौरान स्रोत से

  • रजिस्टर init प्रकार स्टार्टअप और शट डाउन स्क्रिप्ट

  • उत्पन्न एन्क्रिप्शन कुंजी

  • एक केंद्रीय सर्वर

उत्तर

9

इंस्टॉलर दृष्टिकोण के बजाय, मुझे लगता है कि एक ही स्क्रिप्ट होने से बेहतर तरीका यह है कि इसे एक स्थापित सिस्टम है जो .deb या .rpm फ़ाइलों को आपके द्वारा समर्थित प्रत्येक सिस्टम पर इंस्टॉलेशन के लिए उपयुक्त बनाता है। ।

उस पर जाने का एक गरीब आदमी का तरीका checkinstall का उपयोग करना हो सकता है, जो 'इंस्टॉल करें' के माध्यम से स्थापित फ़ाइलों से संकुल बनाता है। तो आप प्रत्येक ऐप पर अपना ऐप बनायेंगे और पैकेज को जादुई रूप से डिस्ट्रो के मूल प्रारूप में बनाया होगा।

1

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

हालांकि लिनक्स वितरण के बीच शायद सब कुछ पूरी तरह से प्लेटफार्म-अज्ञेय तरीके से करने के लिए अभी भी बहुत अधिक विविधता है लेकिन मैं गलत हो सकता हूं।

2

मेरा मानना ​​है कि आपके द्वारा वर्णित अधिकांश कार्यों को लिनक्स डिस्ट्रोज़ के बीच काफी मानकीकृत किया जाता है।मेरे अनुभव में, निम्नलिखित (उबंटू सहित) डेबियन परिवार और रेड हैट परिवार (फेडोरा और CentOS सहित) काम करना चाहिए:

  • उपयोगकर्ता बनाएँ/समूह खातों - adduser आदेश
  • निर्देशिका पेड़ बनाएँ - mkdir या install, या बस एक टैरबॉल का विस्तार करें
  • ओपन सोर्स एप्लिकेशन इंस्टॉल करें - जब तक कि आपके पास विशेष रूप से गूढ़ जरूरत नहीं है, यह शायद डिस्ट्रो के पैकेज मैनेजर को छोड़ा जाना चाहिए।
  • स्थापित फ़ाइलें - install, या सिर्फ एक टारबॉल
  • स्टार्टअप और शट डाउन स्क्रिप्ट का विस्तार - install/etc/init.d तो /etc/rc*.d

VMware सर्वर को सिमलिंक लिनक्स के लिए स्वतंत्र रूप से उपलब्ध है और कार्यों के लिए जो आप का वर्णन का सबसे करता है । यह पर्ल और शायद इसकी स्थापना और कॉन्फ़िगरेशन के लिए खोल का उपयोग करता है, ताकि आप जो दृष्टिकोण लेते हैं उसे देख सकें।

हालांकि, एक लिनक्स व्यवस्थापक के रूप में बोलते हुए, मैं दृढ़ता से अपने पैकेज प्रबंधन प्रणाली के साथ एकीकृत अनुप्रयोगों को प्राथमिकता देता हूं। दूसरे शब्दों में, .deb और .rpm फ़ाइलों को बनाएं, क्योंकि विंको वर्सालोविक ने सुझाव दिया था। भवन संकुल बहुत अच्छी तरह से प्रलेखित है:

1

आप कर सकते हैं BitRock InstallBuilder आज़माएं। यह एक क्रॉस प्लेटफ़ॉर्म इंस्टॉलेशन टूल है जो आपको वही करने की अनुमति देता है जो आप खोज रहे हैं (उपयोगकर्ताओं को जोड़ना, सेवाओं को स्थापित करना, पूर्व-संकलित बाइनरी इंस्टॉल करना आदि)। हालांकि कुछ अन्य पोस्टों में आप कई स्क्रिप्ट्स का उपयोग कर सकते हैं जिन्हें आप अपनी स्क्रिप्ट में उपयोग कर सकते हैं, समस्या यह है कि प्रत्येक लिनक्स वितरण थोड़ा अलग और सरल कार्य होता है जैसे कोई उपयोगकर्ता या इंस्टॉलर एक सेवा जोड़ना अचानक गैर-तुच्छ होता है जब आपको आवश्यकता होती है उन्हें डेबियन, उबंटू, मैनड्रिवा, रेडहाट, जेनेटू इत्यादि में करें। एक अच्छा क्रॉस प्लेटफार्म इंस्टॉलर आपको उन सभी से अलग करना चाहिए। कई commercial open source companies जैसे माईएसक्यूएल, शुगरसीएमएम, जेनोस, जैस्पर्सॉफ्ट, ग्राउंडवर्क इत्यादि ने हमारी तकनीक के आधार पर इंस्टॉलरों का निर्माण किया है क्योंकि उनके कारण (उनके नियमित स्रोत कोड टैरबॉल आदि के अलावा) हम ओपन सोर्स प्रोजेक्ट्स के लिए मुफ्त लाइसेंस भी प्रदान करते हैं।

0

ऑटोपैकेज अब लिस्टलर प्रोजेक्ट के साथ विलय हो गया है। दस्तावेज़ीकरण अभी तक पूरी तरह से गहरा नहीं है लेकिन काम कर रहा है।

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