2012-11-30 8 views
6

शुभ दोपहर!क्या उपयोगकर्ता को एक विकल्प देने के बजाए आर पैकेज के लिए डिफ़ॉल्ट स्थान सेट करना संभव है?

मैं एक विश्वविद्यालय में एक सिस्टम प्रशासक हूं, और मैं कंप्यूटर प्रयोगशाला के लिए छवियों को स्थापित करने के लिए ज़िम्मेदार हूं। आर डिफ़ॉल्ट छवि का हिस्सा है, और सबसे लंबे समय तक हमारे पास केवल सभी प्रयोगशाला उपयोगकर्ताओं के लिए एक ही लॉग-इन था, जिससे हम एक बार डिफ़ॉल्ट निर्देशिका सेट कर सकते हैं और फिर इसे कई प्रणालियों में चित्रित कर सकते हैं। यह बदल गया है, और अब हम सभी उपयोगकर्ता व्यक्तिगत लॉग-इन के साथ लॉग ऑन कर रहे हैं। यह मुझे एक समस्या में लाता है जो मैं आर के साथ कर रहा हूं, और मैं आपको क्यों बदल रहा हूं।

आप देखते हैं, क्योंकि जब आप पहली बार आर चलाते हैं, तो आप में से अधिकांश जानते हैं कि एक संवाद बॉक्स खुलता है जो पैकेज को सहेजने के लिए स्थान के लिए संकेत देता है। 'ओके' दबाएं और यह उपयोगकर्ता फ़ाइल है, लेकिन किसी और चीज को दबाएं और जहां भी आप इसे डाल दें। समस्या यह है कि, हमने सिस्टम को कसकर बंद कर दिया है, और उपयोगकर्ता की व्यक्तिगत निर्देशिका से अधिक कुछ भी एक्सेस करना कुछ ऐसा नहीं है जिसे हम करना चाहते हैं।

मेरे पास यह सवाल है - क्या पैकेज चलाने के लिए सिस्टम पर उपयोगकर्ता की निर्देशिका के लिए डिफ़ॉल्ट रूप से हाथों से मुक्त स्क्रिप्ट या केवल एक सेटिंग के माध्यम से आर को मजबूर करने का कोई तरीका है? यह मुझे सभी उपयोगकर्ताओं को आर निर्देशिका में पढ़ने और लिखने के लिए उपयोग करने से रोक देगा, और इसमें खराब होने की संभावनाएं कम होंगी क्योंकि उनके पास वास्तव में इसे बदलने का विकल्प नहीं होगा। अगर मुझे उस फ़ोल्डर में अनुमतियां देना जारी रखना है, तो मैं कर सकता हूं, लेकिन मैं नहीं चाहूंगा।

धन्यवाद!

+0

मैं उपलब्ध विकल्पों की पूरी सूची के लिए 'स्टार्टअप' और 'लिबपाथ' पढ़ने की अनुशंसा करता हूं। – hadley

उत्तर

1

मैं अभी इस परीक्षण नहीं कर सकता, लेकिन मेरा मानना ​​है कि आप Sys.setenv(R_LIBS_USER=path.expand('~\R\library')) जैसे आर आदि निर्देशिका में मिली Rprofile.site फ़ाइल में कुछ जोड़ सकते हैं।

+1

Renvironmen.site में इसे 'R_LIBS_USER = ....' के रूप में सेट करना बहुत आसान है; आप 'R_LIBS_SITE' भी कर सकते हैं जो ओपी * वास्तव में * हो सकता है। –

1

संपादित अपने .Renviron डिफ़ॉल्ट पथ सेट करने के लिए फ़ाइल:

# .Renviron file 
R_LIBS = '~/.R/library' 
+1

प्रश्न डिफ़ॉल्ट लाइब्रेरी स्थान के बारे में है, रिपो नहीं। –

+0

@mplourde मेरे पढ़ने के कौशल शुक्रवार को वांछित होने के लिए बहुत छोड़ देते हैं। रेन्यूशन के लिए –

+0

+1। नहीं पता था कि ऐसी चीज थी। –

0

'... पैकेज भंडारण के लिए प्रणाली पर उपयोगकर्ता की निर्देशिका के लिए डिफ़ॉल्ट करने के लिए ...'

एक और तरीका , विशेष रूप से यदि आप चाहते थे कर्मचारियों/छात्रों के लिए अलग-अलग सेटिंग चयनित मशीनों/उपयोगकर्ताओं के लॉगिन के लिए पर्यावरण चर सेट करने के लिए समूह नीति का उपयोग करना होगा।

उदा। के बराबर ...

SETX "R_LIBS" "\\fileserver2/department_shared/public/r/packages" 

आप आसानी से देख सकते हैं कि इस अनुसंधान शुरू करने के लिए और भी कोशिश कर

Sys.getenv("R_LIBS") 

से काम किया है, इस आदेश तो आप दिखा सकते हैं संकुल क्या स्थापित कर रहे हैं:

rownames(installed.packages()) 
संबंधित मुद्दे

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