2016-02-19 15 views
5

मैं विंडोज कंप्यूटर पर R CMD INSTALL --build package चला रहा हूं। मेरा पैकेज कुछ अन्य पैकेज आयात करता है जो स्वयं कुछ और पैकेजों पर निर्भर करते हैं। मेरे पास स्थानीय r_libs फ़ोल्डर में सभी निर्भरताएं स्थापित हैं और सबकुछ काम करता है।निर्भरता के बिना आर सीएमडी इंस्टॉल का उपयोग कैसे करें?

अब कभी-कभी मेरे पास एक अलग विंडोज कंप्यूटर पर मेरा पैकेज स्रोत कोड होता है। इस कंप्यूटर पर मेरे पास सभी निर्भरता पैकेज स्थापित नहीं हैं।

जब मैं R CMD INSTALL --build package इस्तेमाल करने की कोशिश, मैं स्पष्ट मिलता है "ERROR: dependencies 'package a', 'package b', etc, are not available for package"

मेरे सवाल यह है:। मैं निर्भरता जांच के बिना और DESCRIPTION फ़ाइल में Import और Depends प्रविष्टियों को हटाए बिना R CMD INSTALL --build का उपयोग कर पैकेज का निर्माण कर सकते हैं?

परामर्श --help के बाद, मैं --no-test-load विकल्प है, लेकिन कोई किस्मत की कोशिश की।

+0

यकीन है कि अगर मैं समझ गया, तुम निर्भरता की स्थापना के बिना पैकेज स्थापित करना चाहते हैं? – nicola

+3

@nicola ओपी सभी निर्भरताओं को स्थापित किए बिना विंडोज बाइनरी बनाना चाहता है। AFAIK यह संभव नहीं है। –

+0

@ जोरीसमेस, सही। मैंने थोड़ा और प्रयोग किया और पाया कि मैं इसे install.packages ("पैकेज", repos = NULL, type = 'source', INSTALL_opts = "- build" का उपयोग कर आर के भीतर कर सकता हूं)। फिर भी, अगर मैं आर सीएमडी स्थापित कर रहा हूं तो मुझे अभी भी दिलचस्पी होगी? –

उत्तर

3

मुझे लगता है कि आप एक कॉम्प पर पैकेज का एक .zip द्विआधारी संस्करण का निर्माण करना चाहते गर्भाशय जहां सभी निर्भरता स्थापित नहीं हैं। और मुझे डर है कि मुझे आपको निराश करना होगा, क्योंकि यह संभव नहीं होगा।

एक बाइनरी पैकेज बनाना दो चरणों में किया जाता है: पहला पैकेज स्रोत से स्थापित होता है (यही कारण है कि आपको R CMD INSTALL का उपयोग करना होगा और फिर बनाई गई बाइनरी विंडोज मशीन पर इंस्टॉलेशन के लिए सुविधाजनक प्रारूप में ज़िपित होंगी। निर्भरताएं हैं स्रोत से इंस्टॉलेशन के समय चेक किया गया है, और किसी भी लापता निर्भरता आपके सामने आने वाली त्रुटि को फेंक देगी।

चूंकि स्रोत से स्थापना के समय निर्भरताओं से जानकारी की आवश्यकता होती है, तो आप उन्हें बनाने से पहले उन्हें इंस्टॉल नहीं कर सकते पूरी बात यह भी समझ में आता है। आर में एक स्थापित पैकेज में .rds फ़ाइलों का एक सेट होता है जिसमें आर के लिए अधिक सुविधाजनक प्रारूप में पैकेज जानकारी होती है। NAMESPACE फ़ाइल के लिए वह जानकारी बनाने के लिए, इसे होना आवश्यक है उन पैकेजों तक पहुंचने में सक्षम हैं जिनसे कार्य आयात किए जाते हैं। यदि नहीं, तो यह नामस्थान के बारे में सही जानकारी नहीं बना सकता है।

तो आपका एकमात्र विकल्प उस कंप्यूटर पर निर्भरता स्थापित करना है जिसका उपयोग आप करते हैं। और यदि आप वास्तव में उस कंप्यूटर पर पैकेज का उपयोग करना चाहते हैं, तो आपको वैसे भी उन निर्भरताओं को स्थापित करना होगा।

अधिक जानकारी: आर Internals: https://cran.r-project.org/doc/manuals/r-release/R-ints.html#Package-Structure

लेखन आर एक्सटेंशन: https://cran.r-project.org/doc/manuals/r-release/R-exts.html#Package-namespaces

नहीं
संबंधित मुद्दे