2013-10-09 6 views
15

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

+0

बाह्य निर्भरता क्या हैं? और क्या आप उपयोगकर्ता को संकलित करने की उम्मीद करते हैं या आप बाइनरी वितरित करने के बारे में बात कर रहे हैं? –

+0

मैं एक बाइनरी – Carson

+1

@ करसन बस द्विआधारी वितरित करना चाहता हूं? जब आप "बाहरी निर्भरता" कहते हैं तो ** ** ** केवल तीसरे पक्ष के पैकेज का मतलब है (यानी 'url.to/package/name' प्राप्त करें) या क्या बाइनरी के साथ अन्य फाइलें हैं? स्पष्ट रहो। विशेष रूप से बिल्ड/इंस्टॉल स्क्रिप्ट के लिए – elithrar

उत्तर

10
  • आप एक उपयोगकर्ता अपने आवेदन संकलित करने के लिए उम्मीद कर रहे हैं, और कहा कि आवेदन तीसरे पक्ष संकुल या संपत्ति पर निर्भर करता है, तो मैं समर्थित प्लेटफार्मों के लिए सिर्फ पार संकलन और बाइनरी उपलब्ध कराने के सुझाव देना चाहेंगे।

  • आप संपत्ति है कि आप आवेदन के साथ प्रदान करने के लिए चाहते हैं, तो (एक कॉन्फ़िग फ़ाइल उदाहरण के लिए,) तो या तो: क) संपत्ति और टार/यह ज़िप के साथ बाइनरी पैकेज; बी) बेस 64 संपत्तियों को एन्कोड करता है और उन्हें बाइनरी see here for a good example या c में संकलित करता है या सी) एक बिल्ड/इंस्टॉल स्क्रिप्ट बनाएं जो उपयोगकर्ता के लिए ऐसा करता है।

यदि आप अपनी सटीक आवश्यकताओं को स्पष्ट कर सकते हैं तो अधिक सीधे जवाब देना आसान होगा।

+1

+1। यदि आप स्रोत वितरण में एक उचित बुद्धिमान स्क्रिप्ट (या मेकफ़ाइल) शामिल कर सकते हैं, तो पैकेज प्रबंधक के लिए पैकेज करना बहुत आसान होगा। –

5

गो बाइनरी में आपके कोड में लगाए गए किसी भी अन्य के अलावा रनटाइम निर्भरता नहीं है। (यह रनटाइम लाइब्रेरी संकलित निष्पादन योग्य में शामिल हैं।)

तो आप अपने ऐप को सी, सी ++ या अन्य कोड से संकलित किसी अन्य बाइनरी के तरीके वितरित करेंगे।

लिनक्स पर आप इसके लिए उपयुक्त टूलींग का उपयोग कर .rpm या .deb फ़ाइल बना सकते हैं। विंडोज़ पर आप InnoSetup जैसे टूल का उपयोग करके इंस्टॉलर बना सकते हैं।

4

गो एक बाइनरी का उत्पादन करता है। यदि आपकी बाहरी निर्भरता समय निर्भरता संकलित कर रही हैं, तो आपके उपयोगकर्ताओं को उनके बारे में चिंता करने की आवश्यकता नहीं है - वे पहले ही संकलित हैं।

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

गो के दृष्टिकोण से चिंता करने की आवश्यकता केवल एक चीज यह है कि आपने अपने उपयोगकर्ता के प्लेटफ़ॉर्म के लिए अपना कोड संकलित किया है।