2012-01-23 5 views
12

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

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

उदाहरण के लिए, निष्पादन योग्य को पैकेज स्थापना के/bin/subfolder में शामिल किया जाना चाहिए, या वैकल्पिक रूप से पैकेज को किसी भी तरह निष्पादन योग्य डाउनलोड करना चाहिए जब यह स्वयं स्थापित हो।

इसके अतिरिक्त, क्या लाइसेंसिंग समस्याएं हैं, यदि मुझे इस परिदृश्य के तहत कोई सामना करना पड़ता है?

+0

दिलचस्प और अच्छी तरह से सवाल किया गया सवाल, लेकिन वास्तव में _programming_ नहीं। –

+2

मुझे लगता है कि यह प्रश्न साइट के दायरे से ढंका हुआ है, लाइनों (एफएक्यू से) के साथ कुछ: आमतौर पर प्रोग्रामर द्वारा उपयोग किए जाने वाले सॉफ़्टवेयर टूल –

+3

धन्यवाद जोशुआ। यह सच है, कड़ाई से एक प्रोग्रामिंग सवाल नहीं है। हालांकि, आर प्रोग्रामर और पैकेज डेवलपर्स के लिए निश्चित रूप से ब्याज का एक सवाल है। – digitalmaps

उत्तर

9

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

  • cpcbp पैकेज (आम प्रिंसिपल घटकों/पीछे से प्रोजेक्शन) एक द्विआधारी से संकलित का उपयोग करता है पैट्रिक फिलिप्स द्वारा लिखित कोड; स्रोत कोड अप्रत्याशित है क्योंकि यह कुछ संख्यात्मक व्यंजनों दिनचर्या का उपयोग करता है। मैं आर में इस कोर को फिर से लिखने का मतलब रहा हूं (यह सिर्फ सरल संख्यात्मक रैखिक बीजगणित है, यह कठिन नहीं होगा)। यह मेरे लिए होता है कि मुझे शायद इस पर लाइसेंस संशोधित करना होगा - मैंने शायद "जीपीएल" कहा लेकिन मुझे नहीं लगता कि मैं वास्तव में ऐसा कर सकता हूं जो अप्रत्याशित घटक दिया गया है ...
  • glmmADMB पैकेज स्वतंत्र रूप से उपयोग करता है पुनर्वितरण स्रोत कोड (BSD लाइसेंस), लेकिन toolchain पर्याप्त जटिल है कि मैं उन पूरे समर्थन पैकेज डाउनलोड करने के लिए

दोनों ही मामलों में मैं inst/bin में बाइनरी रख दिया और संभवतः वास्तुकला विशेष के अंतर्गत नहीं करना चाहती है उपनिर्देशिकाएं (जो /bin में स्थापित हो जाती हैं) और आर्किटेक्चर का पता लगाने और सही बाइनरी चलाने के लिए उचित तर्क का उपयोग करें।

मैं सिद्धांत रूप में लगता है कि आप (आप का सुझाव के रूप में) एक डाउनलोड में गैर पुनर्वितरण हिस्सा बनाकर जीपीएल के माध्यम से लाइसेंस के लिए अक्षमता के आसपास हो सकता है, लेकिन उस भावना का उल्लंघन करने के प्रतीत होता है ...

+0

धन्यवाद @ बेन। ये उत्कृष्ट प्रारंभिक बिंदु हैं जिनसे पैकेज को मॉडल करना है। – digitalmaps

+0

अच्छा जवाब। लाइसेंसिंग और जीपीएल के संबंध में: जीपीएल गैर-मुक्त बाइनरी पुस्तकालयों, सिस्टम पुस्तकालयों आदि के बारे में दिलचस्प मुद्दों को संबोधित करता है और यह एफओएसएस नियमों में * फिट * में पैकेज * फिट करने के बारे में ब्याज का हो सकता है। आगे स्पष्टीकरण के लिए [इस पोस्ट] से लिंक देखें (http://stackoverflow.com/questions/1854843/does-gpl-code-linking-with-proprietary-library- निर्भर- जो--created- फर्स्ट)। – Iterator

3

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

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

  • कोई संबंधित समस्या नहीं^_^