2017-07-01 13 views
39

बनाने में असमर्थ मैंने अपने लिनक्स मिंट 18.1 दालचीनी मशीन पर आर (3.4.1 "सिंगल मोमबत्ती") को अपडेट किया और मैंने पैकेज स्थापित करने का प्रयास किया । आर लौटे निम्नलिखित:आर 3.4.1 "सिंगल मोमबत्ती" पर्सनल लाइब्रेरी पथ त्रुटि: 'एनए'

> install.packages('ggplot2') 
Installing package into ‘/usr/local/lib/R/site-library’ 
(as ‘lib’ is unspecified) 
Warning in install.packages("ggplot2") : 
    'lib = "/usr/local/lib/R/site-library"' is not writable 
Would you like to use a personal library instead? (y/n) y 
Would you like to create a personal library 
NA 
to install packages into? (y/n) y 
Error in install.packages("ggplot2") : unable to create ‘NA’ 

मैंने पहले उत्पादन 'नहीं लिखने योग्य lib' का सामना करना पड़ा है, लेकिन आम तौर पर यह इस तरह एक समाधान प्रदान करता है:

Would you like to create a personal library 
~/R/x86_64-pc-linux-gnu-library/3.4 
to install packages into? (y/n) y 

कोई भी विचार क्यों निजी पुस्तकालय एनए का सुझाव दे रहा है? क्या इसे मैन्युअल रूप से ओवरराइड करने का कोई तरीका है?

+3

का समाधान हो जाएगा यहाँ देखें: http://bugs.debian.org/866768 उबंटू 16.10 पर –

+0

एक ही समस्या है। – rmcd

+0

क्या इसके लिए 'आधिकारिक' फिक्स होगा? –

उत्तर

3

8 जुलाई के बाद, 2017 इस सभी समस्याओं

sudo apt-get update 
+2

इसे थोड़ा और विस्तार की आवश्यकता है। असल में, 'आर-बेस-कोर 3.4.1-2' जारी किया गया था जो इस मुद्दे को हल करता है। –

12

मैं क्या इस समस्या (मैं भी उबंटू 16.04 पर यह समस्या हो रही है) पैदा पता नहीं है, लेकिन यहाँ एक त्वरित समाधान का है:

.libPaths(c("/home/your_username/R/x86_64-pc-linux-gnu-library/3.4/", .libPaths())) 
बेशक

, आप किसी भी एक और निर्देशिका के लिए "/home/your_username/..." जगह ले सकता है (जो आपकी व्यक्तिगत पुस्तकालय को स्टोर करेगा)।

यह समाधान install.packages() और library() काम करता है। एक पूर्ण फिक्स की प्रतीक्षा कर रहा है!

संपादित करें: मुझे ध्यान रखना चाहिए कि यह समाधान लगातार नहीं है। यही है, यह आर को पुनरारंभ करने के बाद नहीं टिकेगा। आप ऊपर वर्णित कोड की उसी पंक्ति को /home/your_username/.Rprofile फ़ाइल में जोड़कर इसे ठीक कर सकते हैं।

+0

यह मुझे संकुल स्थापित करने और उन्हें लोड करने देता है और उन्हें इंटरैक्टिव रूप से उपयोग करने देता है, लेकिन जब मैं कुछ बनाने का प्रयास करता हूं, तो यह चिल्लाता है: 'लोड नेमस्पेस (नाम) में त्रुटि:' devtools 'नामक कोई पैकेज नहीं है - भले ही मेरे पास यह है उपयोगकर्ता लाइब्रेरी, और यह आदेश लोड होने पर लोड किया जाता है। – jakub

+0

यह अस्थायी काम करता है, सिस्टम को पुनरारंभ करते समय, इसे फिर से करने की आवश्यकता होती है। – mark42

+0

इसके अलावा, यदि वह निर्देशिका अभी तक मौजूद नहीं है, तो आपको इसे पहले बनाना होगा। –

0

हो सकता है इस आर 3.4.1 का एक बग है, और मेरे समाधान में

R_LIBS_SITE=${R_LIBS_SITE-'~/R/x86_64-pc-linux-gnu-library/3.4.1:/usr/local/lib/R/site-library:/usr/lib/R/site-library:/usr/lib/R/library'} 
0

ही जबकि चल रहा है मुझे क्या हुआ /etc/R/Renviron फ़ाइल में

R_LIBS_SITE=${R_LIBS_SITE-'/usr/local/lib/R/site-library:/usr/lib/R/site-library:/usr/lib/R/library'} 

की लाइन बदल रहा है कुछ बायोकॉन्डक्टर पैकेज के लिए स्थापना प्रक्रिया।

तो मैं यह भी महसूस किया कि मैं पार्टी कमांड लाइन पर इस (या समान) लिख सकते हैं:

export R_LIBS_USER=$HOME/R/x86_64-pc-linux-gnu-library/3.4 && R

या

export R_LIBS_USER=$HOME/R/x86_64-pc-linux-gnu-library/3.4 && rstudio

और फिर upgrade.packages() चलाने (या install.packages(), या biocLite()) आर

टी के अंदर उसका तरीका परिवर्तन अस्थायी है, और आपको किसी भी कॉन्फ़िगरेशन फ़ाइलों को अपडेट करने की आवश्यकता नहीं है।

यह शेल कमांड बेकार है अगर बाद में एक कमांड .Renviron or में .Rprofile` आर स्टार्टअप (आपके विन्यास की जाँच करें) के दौरान किसी दूसरे स्थान पर R_USER_LIBS सेट करता है।

$ HOME/R/x86_64-pc-linux-gnu-library/3.X में चिपकने वाला वांछनीय हो सकता है यदि आपके पास इस स्थान में पहले से ही बहुत से पैकेज हैं, तो आप उन्हें अपग्रेड/इंस्टॉल करना चाहते हैं। मेरे पास बहुत सारे बायोकॉन्डक्टर पैकेज हैं, और मैं नहीं चाहता कि वे फिर से डाउनलोड करें, इनमें से कुछ पैकेज उपयोग किए जाने पर विशाल "ओमिक्स" डेटासेट डाउनलोड करते हैं। शायद विभाजन जहां/usr/local/lib/r रहता है बहुत कम डिस्क स्थान है या धीमी ड्राइव पर है।

+0

सही! आप इस पर्यावरण चर _anywhere_ को पसंद कर सकते हैं, जिसमें '/ etc/environment' शामिल है। –

11

@ डर्क की टिप्पणी (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=866768) में विवरण देखकर यह एक योजनाबद्ध व्यवहार है ताकि संकुल सिस्टम के सभी उपयोगकर्ताओं के लिए एक बार स्थापित हो।

समाधान प्रत्येक उपयोगकर्ता के लिए व्यक्तिगत पैकेज लाइब्रेरी रखने के पुराने व्यवहार को फिर से स्थापित करने के बजाय /usr/local/lib/R/ सभी उपयोगकर्ताओं के लिए लिखने योग्य है। साथ cd /usr/local/lib/

  • बदलें मालिक

    • नेविगेट /usr/local/lib/ लिए:

      एक टर्मिनल और खोलें समूह ताकि सभी उपयोगकर्ताओं फ़ोल्डर में लिख सकते हैं। मेरे कंप्यूटर पर एक समूह है कि सभी उपयोगकर्ता सदस्य हैं, इसलिए मैंने इसका उपयोग किया, लेकिन https://askubuntu.com/questions/66718/how-to-manage-users-and-groups देखें यदि आवश्यक हो तो समूह स्थापित करने में मदद के लिए

    • स्वामित्व का उपयोग sudo chown owner:group -R R/ बदलने के लिए। owner एक किसी भी उपयोगकर्ता, यह वास्तव में कोई फर्क नहीं पड़ता है। group कुंजी एक है; सुनिश्चित करें कि कोई भी आपके सिस्टम पर आर का उपयोग करना चाहता है, इस समूह का सदस्य है। -R पुनरावर्ती नहीं है (यानी R/ में सभी फ़ाइलों और फ़ोल्डरों के लिए यह करते हैं)।
    • समूह अनुमतियों को बदलने की जरूरत है, chmod -R 775 R/ का उपयोग करें। यह मालिक और समूह को अनुमतियों को पढ़ने, लिखने और निष्पादित करने देता है, और सभी अन्य अनुमतियों को पढ़ और निष्पादित करता है।

    अब आर को पुनरारंभ करें और आपको अपने साझा स्थान पर पैकेज इंस्टॉल करने में सक्षम होना चाहिए।

    फ़ाइल /usr/lib/R/etc/Renviron में आर के विन्यास

    लाइनों 43-45 में है:

  • 9

    My solution निम्नलिखित था

    # edd Jun 2017 Comment-out R_LIBS_USER 
    #R_LIBS_USER=${R_LIBS_USER-'~/R/x86_64-pc-linux-gnu-library/3.4'} 
    ##R_LIBS_USER=${R_LIBS_USER-'~/Library/R/3.4/library'} 
    

    मैं uncommented R_LIBS_USER=${R_LIBS_USER-'~/R/x86_64-pc-linux-gnu-library/3.4'} है, RStudio को पुनः आरंभ और अब यह काम करता है।

    संपादित करें: टिप्पणियों को देखते हुए, यह एक योजनाबद्ध व्यवहार की तरह लगता है। Here एक और समाधान है।

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