2011-12-18 7 views
6

प्रश्न: कैसे मैं अब से एक साधारण स्थान कि आर (और बाकी सब कुछ) का उपयोग करेगा में सबसे अप-टू-डेट आर संकुल के सभी के लिए कदम है और मेरे पैकेज के लिए हमेशा के लिए?आर: अप-टू-डेट सबसे संकुल के साथ एकाधिक पुस्तकालय स्थानों के संयोजन

मैं नाना प्रकार से RGedit, RCmdr, आर खोल, और RStudio का उपयोग कर उबंटू 10.04 पर आर के साथ चारों ओर खेल रहे हैं। इस बीच, मैंने संकुल, अद्यतन संकुल, और apt, synaptic, install.packages(), आदि के माध्यम से संकुल को पुन: अद्यतन किया है ... जो स्पष्ट रूप से इन संकुलों को हर जगह रखा जाता है, और (कभी-कभी सूडो फेंकने के साथ) अलग-अलग होते हैं अनुमतियाँ।

वर्तमान में मैं में अलग (और दोहराया) संकुल के विभिन्न संस्करणों है: - मैं, एक एकल उपयोगकर्ता हूँ एक मशीन पर -

/home/me/R/i486-pc-linux-gnu-library/2.10 
/home/me/R/i486-pc-linux-gnu-library/2.14 
/home/me/R/i486-pc-linux-gnu-library/ 
/usr/local/lib/R/site-library    
/usr/lib/R/site-library      
/usr/lib/R/library 

सबसे पहले मैं कई पुस्तकालय स्थानों नहीं करना चाहते, मैं तो बस इसे काम करना चाहते हैं।

दूसरा - मैं एक बहुत ही धीमे कनेक्शन पर हूँ, और बार-बार बस को डाउनलोड पैकेज नहीं रख सकते हैं।

तो - वहाँ एक आसान तरीका एक साधारण स्थान में इन सभी पुस्तकालय स्थानों मर्ज करने के लिए है? क्या मैं सिर्फ फ़ोल्डर्स को कॉपी कर सकता हूं?

मैं इसे कैसे कंक्रीट में स्थापित कर सकता है कि यह और हमेशा रहेंगे जहां कुछ भी आर संबंधित के लिए और अद्यतन संकुल दिखता है?

यह गड़बड़ है।

आपकी मदद के लिए धन्यवाद।

उत्तर

4

जानकारी के साथ विभिन्न बिट्स piecing के बाद यहाँ जाता है: आर संकुल निर्देशिका संगठन के लिए एक पूरा मूर्ख गाइड:

NB1 - यह मेरा है उबंटू के साथ अनुभव - आपका माइलेज एनबी 2 बदल सकता है - मैं एक ही मशीन पर एक ही उपयोगकर्ता हूं, और मुझे चीजों को सरल पसंद है।

/usr/lib/R/site-library      
/usr/lib/R/library 

निर्देशिका:

उबंटू में उपयुक्त के माध्यम से स्थापित कुछ भी, या अन्तर्ग्रथनी डालता है। डिफ़ॉल्ट वेनिला आर यहाँ पैकेज इंस्टॉल कोशिश करेंगे स्थापित:

/usr/local/lib/R/site-library 

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

मेरे लिए सबसे अच्छा अभ्यास क्या लगता है (और मुझे सही करने के लिए स्वतंत्र महसूस करें मैं गलत हूं) उबंटू पर एक डिफ़ॉल्ट स्थापित सेटअप के साथ, मूल आर खोल से किसी भी पैकेज प्रबंधन को सूडो: > sudo R के रूप में करना है और वहां से install.packages() वूडू है। ऐसा लगता है कि usr/local/lib/R/site-library निर्देशिका में संकुल डालें।

इसी समय, update.packages()/usr/lib/R/site-library और usr/lib/R/library निर्देशिकाओं में से फ़ाइलें अपडेट करेगा, साथ ही usr/local/lib/R/site-library

के रूप में (usr/lib/R/ विभाजन का सवाल है, यह लग रहा है /library/ जैसे प्रमुख संकुल है, /site-library/ कुछ भी जोड़ा रखती है, जबकि, यह मानते हुए वे उपयुक्त द्वारा स्थापित किए गए थे ...)

किसी भी संकुल पहले से स्थापित और गलत जगह पर /usr/local/lib/R/site-library निर्देशिका के लिए ले जाया जा सकता है (यह मानते हुए कि आप sudo यह ing कर रहे हैं) सिर्फ निर्देशिका (धन्यवाद @Tommy) ले जाकर, लेकिन जैसा किसबसे अच्छा जोड़ सकते हैं या वहां से कुछ भी घटाना नहीं ...

वाह - ८०४४५४२३२१० उपयुक्त द्वारा नियंत्रित है। वैसे भी - काफी सरल, और सरल भाषा में। मदद के लिए सभी का धन्यवाद।

+0

** ** ** नीचे लिखें '/ usr'; केवल 'dpkg',' apt', ... उन फ़ाइलों तक पहुंच जाना चाहिए। उपयोगकर्ता-स्तरीय फ़ाइलों के लिए, '/ usr/local' (या'/opt') का उपयोग करें। –

+0

यह फ़ोल्डरों की प्रतिलिपि बनाने के संदर्भ में है? पकड़ लिया। तो इससे पहले कि मैं अपना उत्तर अपडेट करता हूं, क्या '/ usr/lib/r/साइट-लाइब्रेरी /' में फ़ाइलें केवल उपयुक्त द्वारा स्थापित संकुल हैं? और एक वेनिला आर डिफ़ॉल्ट 'us.prages() '' usr/local/lib/r/site-packages' में' install.packages() 'का उपयोग कर संस्थापित संकुल स्थापित करता है? बोनस प्वाइंट्स के लिए, यदि मैं एपीटी के माध्यम से स्थापित करता हूं, तो 'update.packages()' के माध्यम से अपडेट करें जहां फाइलें चलती हैं? 'उपयोगकर्ता/lib/R/साइट-लाइब्रेरी' को ओवरराइट करना या 'usr/local/lib/r/साइट-लाइब्रेरी /' में रखा गया है - और क्या 'सूडो' एक फर्क पड़ता है? अगर यह सब कहीं बाहर लिखा गया है, तो कृपया मुझे रीडायरेक्ट करें। मेरी खोज खाली हो गई है ... धन्यवाद – Trees4theForest

+0

उबंटू/डेबियन से कुछ भी apt, dpkg के माध्यम से स्थापित किया गया ...: '/ usr /'। आप जो कुछ भी करते हैं (उदाहरण के लिए आर के 'install.packages() ') के माध्यम से:'/usr/local'। यह सभी अनुप्रयोगों के लिए एक सामान्य नियम है, न केवल आर। * * मैन्युअल रूप से नीचे/usr' के नीचे गड़बड़, आप इसे पछतावा कर सकते हैं। यदि आपके कोई प्रश्न हैं, तो 'आर-सिग-डेबियन' सूची पर पूछें। –

7

हां, यह लगभग फ़ोल्डर्स को कॉपी करने के लिए लगभग काम करना चाहिए। लेकिन NAMESPACE फ़ाइल के बिना पूर्व-2.14 पैकेज शायद 2.1 2.1 में काम नहीं करेंगे, जहां सभी पैकेजों में नामस्थान होना चाहिए ...

और आप मैन्युअल रूप से सुनिश्चित करना चाहते हैं कि आप केवल प्रत्येक पैकेज के नवीनतम संस्करण की प्रतिलिपि बनाएँ एक से अधिक संस्करण है ...

आप लिखते हैं, तो .libPaths(), यह आपको बता देंगे जहां R पैकेज के लिए लग रहा है। सूची में पहला वह स्थान है जहां नए पैकेज आम तौर पर स्थापित होते हैं। मुझे लगता है कि .libPaths() RStudio से अलग अलग चीजें वापस कर सकती है बनाम Rcmd आदि

+0

जानना अच्छा है। हाँ - यह चाल का हिस्सा है ... लेकिन दुर्बल नहीं है। किसी भी निर्देशिका को चुनने के लिए (और चिपकने के लिए) और यह सुनिश्चित करने के लिए कि आर हमेशा इसका उपयोग कैसे करता है? – Trees4theForest

+0

@ Trees4theForest - अद्यतन उत्तर ... – Tommy

+0

ठीक है - मैं देखता हूं कि कैसे, लेकिन अधिक क्यों नहीं। और मैं मदद फ़ाइलों पर खाली आ रहा हूं ... उदाहरण के लिए, लाइब्रेरी/और/साइट-लाइब्रेरी/के बीच क्या अंतर है? – Trees4theForest

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