2009-10-24 11 views
13

का उपयोग कर आर पैकेजिंग बिल्डिंग जिन प्रणालियों के साथ मैं काम करता हूं उनमें जीसीसी 4.5 (प्रयोगात्मक)/usr/local/bin/gcc में कुछ आर पैकेज के लिए समस्याग्रस्त साबित हुआ है। मैं इसके बजाय सिस्टम जीसीसी का उपयोग/usr/bin/gcc में करना चाहता हूं।वैकल्पिक जीसीसी

मैंने बैश कॉन्फ़िगरेशन फ़ाइलों (.bashrc, .bash_profile इत्यादि) के साथ-साथ कमांड लाइन पर सीसी और सीएफओ सेट करने का प्रयास किया है, लेकिन हालांकि बैश परिवर्तन को पहचानता है, आर नहीं करता है।

मैं/usr/local/bin/में किसी के बजाय/usr/bin में जीसीसी के संस्करण का उपयोग करने के लिए आर कैसे प्राप्त कर सकता हूं?

उत्तर

20

यह अच्छी तरह से प्रलेखित नहीं है (उदाहरण के लिए मैं इसे 'आर एक्सटेंशन' या 'आर एडमिन' में अभी ढूंढने में असफल रहा) लेकिन ब्रायन रिपली ने सूचियों पर इसे कुछ बार उल्लेख किया।

असल में, आर संकलन समय पर, सेटिंग्स पंजीकृत हैं और $ RHOME/etc/Makeconf में संग्रहीत हैं। एक संभावना है कि उस फ़ाइल को सीधे संपादित करना है, लेकिन आपके पास रूट विशेषाधिकार नहीं हो सकते हैं या अन्य सभी उपयोगकर्ताओं को प्रभावित नहीं करना चाहते हैं। तो बेहतर

~/.R/Makevars 
प्रविष्टियों

CC=gcc-4.4 
CXX=g++-4.4 

प्लस जो भी optmisation झंडे आदि आप सेट करना चाहते साथ

बनाने के लिए हो सकता है। इससे R CMD INSTALL या R CMD check या उसके बाद के सभी उपयोगों को प्रभावित किया जाएगा ...

$ RHOME/etc/में अन्य फ़ाइलों को स्थानीय रूप से ~/.R/ से स्थानीय रूप से ओवरराइड किया जा सकता है।

+0

मेरी कॉन्फ़िगरेशन के साथ, कुछ संकुलों को सूडो की आवश्यकता होती है, इसलिए उन मामलों में Makeconf को संशोधित करने के लिए आवश्यक है। आपका समाधान काम करता है! –

+2

$ R_HOME है/usr/lib64/R/CentOS6 – zakrapovic

+1

के लिए एक आर पैकेज (bigViz) स्थापना के लिए, हमारे पास CXX चर जोड़ने के बाद भी समस्याएं थीं। इसके अलावा हमें मेकवर्स फ़ाइल में CXX11 चर कॉन्फ़िगर करना पड़ा। इस CXX11 = g ++ 7 की तरह – user131476

0

यह देखने के लिए अपना रास्ता जांचें कि/usr/local/bin/usr/bin से पहले आता है या नहीं। यदि ऐसा है, बस सुनिश्चित करें कि/usr/bin पहले आता है:

PATH=/usr/bin:${PATH} 

(यदि/usr/bin दोहराया गया है दो बार प्रकट होता है यह ठीक है)।

+0

काम नहीं किया: निर्यात पथ =/usr/bin: $ {PATH} आर सीएमडी स्थापित करें ... जीसीसी की जांच .../usr/local/bin/gcc -std = gnu99 –

1

मुझे एक बहुत ही समस्या थी।

मेरे लिए क्या काम किया गया था, एक परियोजना निर्देशिका को परिभाषित करना था (rstudio आपके लिए ऐसा कर सकता है), और उसके बाद .Renviron फ़ाइल जोड़ें जो PATH और LD_LIBRARY_PATH को संशोधित करती है, जिसमें नई जीसीसी के साथ निर्देशिका शामिल है। आपके मामले में, उदाहरण के लिए, .Renviron कुछ ऐसी दिखाई देगी:

LD_LIBRARY_PATH=/usr/local/bin/gcc/lib:/usr/local/bin/gcc/lib64:/usr/local/bin/gcc/libexec:अन्य रास्तों

PATH=/usr/local/bin/gcc/bin:/usr/local/bin:अन्य रास्तों