क्या मैटलैब क्या करता है जैसे मेरी Rस्क्रिप्ट को स्टैंडअलोन .exeफ़ाइल में संकलित करने का कोई आसान तरीका है?
क्या मैटलैब क्या करता है जैसे मेरी Rस्क्रिप्ट को स्टैंडअलोन .exeफ़ाइल में संकलित करने का कोई आसान तरीका है?
जवाबों:
तथ्य के रूप में समाधान प्राप्त करने का एक तरीका है जो आपकी आवश्यकताओं को पूरा करेगा। आर-ब्लॉगर्स पर आर के साथ डेस्कटॉप एप्स को तैनात करने के लेख पर एक नजर डालें । लेख में विस्तृत रूप से, आप एक एकल exe फ़ाइल की तुलना में कुछ और चीजों का उपयोग करके समाप्त हो जाएंगे।
इसके अलावा, मैं RGtk2 के उपयोग के साथ RGtk2 पर आपका ध्यान आकर्षित करना चाहूंगा। आप अपने स्वयं के इंटरफ़ेस को R में विकसित करने का प्रयास कर सकते हैं। यदि पुश को धक्का देना आता है, तो मुझे विश्वास है कि आप R और पोर्टेबल संस्करण के साथ अपना R कोड पैक कर सकते हैं। एक इंस्टॉलर में निर्भरता और उस से मेक और ऐप, जो कि एक एकल exe फ़ाइल का भ्रम पैदा करेगा।
अपने प्रश्न में आपने पूछा कि क्या आर कोड की व्याख्या करने वाली एक स्टैंडअलोन निष्पादन योग्य फ़ाइल विकसित करना आसान है। मैं यह नहीं कहूंगा कि यह आसान है। यदि आपको किसी एप्लिकेशन से R कोड चलाने की तीव्र इच्छा है, तो आप इसे Java या R.NET के लिए RCaller का उपयोग करके सरल तरीके से कर सकते हैं ।
आपकी टिप्पणी के जवाब में:
वास्तव में मैं इसे विचलित करना चाहूंगा लेकिन लिपियों और एल्गोरिथ्म को गुप्त रखना, क्या इस उद्देश्य को प्राप्त करने के लिए इसे या किसी अन्य तरीके से एन्क्रिप्ट करने का कोई तरीका है?
उपयोग कर रहे फ़ंक्शंस को बचाकर आप ऐसा कर सकते हैं save()। उदाहरण के लिए, यहां एक फ़ंक्शन f()जिसे आप गुप्त रखना चाहते हैं:
f <- function(x, y) {
return(x + y)
}
इसे कहीं भी सहेजें:
save(f, file = 'C:\\Users\\Joyce\\Documents\\R\\Secret.rda')
और जब आप फ़ंक्शन का उपयोग करना चाहते हैं:
load("C:\\Users\\Joyce\\Documents\\R\\Secret.rda")
मैं अपने सभी फंक्शन्स को अलग-अलग फाइलों में सेव करूँगा, उन्हें एक फोल्डर में रखूँगा और एक प्लेन पुराना होगा। उन सभी में स्क्रिप्ट लोड करना और जो भी निष्पादित हो। पूरी बात को ज़िप करें और इसे वितरित करें। शायद इसे एक पैकेज में भी संकलित करें। प्रभावी रूप से पूरी बात तभी पढ़ी जाएगी।
यह समाधान हालांकि यह बहुत अच्छा नहीं है। आप फ़ंक्शन का नाम टाइप करके अभी भी फ़ंक्शन को देख सकते हैं, इसलिए यह उस अर्थ में छिपा नहीं है। लेकिन अगर आप .rda फ़ाइलों को खोलते हैं तो उनकी सामग्री सभी विकृत हो जाती है। यह सब वास्तव में इस बात पर निर्भर करता है कि आर के साथ आपके कोड के प्राप्तकर्ता कितने अनुभवी हैं।
f।
एन्क्रिप्टेड कोड का एक रूप petalsटीचिंगडेमोस पैकेज में फ़ंक्शन में लागू किया गया है ।
ध्यान दें कि यह छिपे हुए कोड को खोजने के लिए केवल मध्यवर्ती स्तर के प्रोग्रामिंग कौशल लेगा, हालांकि यह जानबूझकर प्रयास करता है और उपयोगकर्ता दुर्घटना से कोड को देखने का दावा नहीं कर पाएगा। तब आपको किसी भी प्रकार के कोई भी समझौते को लागू करने के लिए किसी प्रकार के लाइसेंस समझौते की आवश्यकता होगी।
petalsफ़ंक्शन कोड को छिपाता नहीं है, यह कोड के एक महत्वपूर्ण भाग को छिपाए जाने का एक उदाहरण है (क्या आप कुंजी का टुकड़ा छिपा सकते हैं?)। एनक्रिप्टिंग (ब्लीचिंग) करने के लिए अन्य उपकरणों की आवश्यकता होती है। एक सरल दृष्टिकोण पर चर्चा की जाती है: stat.ethz.ch/pipermail/r-devel/2011-October/06225.html । बाइट संकलन भी मदद कर सकता है, लेकिन आपको वास्तव में कुछ प्रकार के लाइसेंस समझौते की आवश्यकता है।
वैसे आपको तैनाती मशीन पर आर स्थापित करने की आवश्यकता है। निष्पादन योग्य बनाने के लिए, मुझे यकीन नहीं है कि यह संभव है। लेकिन आप एक और प्रोग्राम बना सकते हैं जो आपकी आर स्क्रिप्ट को आमंत्रित करता है। R एक व्याख्या की गई भाषा है। यह संभव नहीं है।