2010-06-05 9 views
65

मैं एक साझा सर्वर पर perl मॉड्यूल स्थापित करना चाहता हूं जिस पर मेरे पास रूट पहुंच नहीं है। मैं यह कैसे कर सकता हूँ? उनके पास सीपीएएन का पुराना संस्करण प्रतीत होता है (यह कमांड चलाने पर इसके बारे में शिकायत करता है), क्या रूट खाते की आवश्यकता के बिना मेरे खाते से उपयोग किए जा रहे सीपीएएन कमांड को अपडेट करना संभव है?मैं सीपीएएन को गैर रूट उपयोगकर्ता के रूप में कैसे उपयोग कर सकता हूं?

+1

संभव डुप्लिकेट http://stackoverflow.com/questions/: तो ऊपर cpanm की स्थापना की प्रक्रिया दिखा समाधान निम्न अतिरिक्त आदेश की जरूरत है 251705/कैसे-कर-i-use-a-new-perl-module-without-install-permissions) – daxim

उत्तर

117

सबसे आसान तरीका मैं अब तक पाया है

कहने के लिए है
wget -O- http://cpanmin.us | perl - -l ~/perl5 App::cpanminus local::lib 
eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib` 
echo 'eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`' >> ~/.profile 
echo 'export MANPATH=$HOME/perl5/man:$MANPATH' >> ~/.profile 

यह आपकी प्रोफ़ाइल मानता है कि आपके

cpanm Module::Name 

कह कर कि .bash_profile, .bashrc, आदि उसके बाद आप मॉड्यूल स्थापित कर सकते हैं होने के लिए बदल सकते हैं और बस उन्हें एक ही तरह से उपयोग करना पड़ सकता .profile नाम पर है, यदि आप मूल निर्देशिका में स्थापित थे।


उपर्युक्त आदेशों के बारे में संक्षिप्त विवरण क्या है।

wget -O- http://cpanmin.uscpanm के नवीनतम संस्करण को हासिल करेगा और STDOUT जो तब perl - -l ~/perl5 App::cpanminus local::lib को पहुंचाया जाता है करने के लिए यह प्रिंट। -perl को प्रोग्राम को STDIN पर आने की उम्मीद करने के लिए बताता है, इससे perlcpanm का संस्करण चलाया गया है जिसे हमने अभी डाउनलोड किया है। perl शेष तर्कों को cpanm पर पास करता है। -l ~/perl5 तर्क cpanm कहता है जहां पर्ल मॉड्यूल स्थापित करना है, और अन्य दो तर्क स्थापित करने के लिए दो मॉड्यूल हैं। [App::cpanmins] 1 वह पैकेज है जो cpanm स्थापित करता है। local::lib एक सहायक मॉड्यूल है जो स्थानीय निर्देशिका में मॉड्यूल चलाने के लिए आवश्यक पर्यावरण चर का प्रबंधन करता है।

बाद उन मॉड्यूल स्थापित कर रहे हैं हम

eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib` 

चलाने स्थानीय मॉड्यूल का उपयोग करने के लिए आवश्यक वातावरण चर सेट करने के लिए और फिर

echo 'eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`' >> ~/.profile 

सुनिश्चित करने के लिए हम उन्हें अगली बार उपयोग करने के लिए सक्षम हो जाएगा हम लॉग इन करते हैं

echo 'export MANPATH=$HOME/perl5/man:$MANPATH' >> ~/.profile 

उम्मीद है कि मनुष्य आपके स्थानीय मॉड्यूल के लिए मैन पेज ढूंढने का कारण बन जाएगा।

+0

cpanminus के लिए +1 ... इसका कभी भी उपयोग नहीं किया गया है, ऐसा नहीं लगता कि मुझे इसकी अनुशंसा करनी चाहिए, लेकिन मुझे इसे अब तक देखा गया है जो मैंने देखा है – DVK

+6

यह मेरे लिए उत्कृष्ट काम कर रहा है। पहले से ही आपके ~/.profile (या जो कुछ भी) में पहले से मौजूद किसी भी मौजूदा PERL5LIB पर्यावरण चर को हटाने के लिए बस एक छोटा सा नोट। अन्यथा स्थानीय कमांड चलाने पर स्थानीय :: lib इंस्टॉल करने में विफल रहेगा। –

+0

@juannavar अच्छा बिंदु, मैं इसे नई स्थापित मशीनों पर स्थापित करना चाहता हूं, इसलिए मैं उस मामले में नहीं चलता हूं। –

10

http://web.archive.org/web/20120427144232/http://perl.jonallen.info/writing/articles/install-perl-modules-without-root

http://novosial.org/perl/life-with-cpan/non-root/

निर्देश के दोनों सेट में मुख्य कदम शामिल है local::lib module

AFAIK, CPAN तर्क पर्ल मॉड्यूल (CPAN.pm) आप भी आसानी से स्थापित कर सकते हैं, जिसका मतलब है में निहित है आपकी स्थानीय निर्देशिका में नया एक जैसा कि आप किसी अन्य पर्ल मॉड्यूल के साथ करेंगे।

:


इसके अलावा, एक बार आप अमानक स्थान में अपने मॉड्यूल स्थापित करते हैं, अमानक स्थानों से लोड हो रहा है पुस्तकालयों पर इन दो सवालों की जाँच (जानकारी में से कुछ ऊपर के लिंक में पहले से ही उपलब्ध है)

How does a Perl program know where to find the file containing Perl module it uses?

How is Perl’s @INC constructed? (उर्फ सभी को प्रभावित करने के तरीके जहां पर्ल मॉड्यूल के लिए खोज कर रहे हैं क्या हैं?)

+0

प्रकटीकरण - मैंने इस उत्तर में जुड़े दोनों SO प्रश्नों को लिखा है। – DVK

+2

सीपीएएन से मॉड्यूल स्थापित करने के कम से कम चार अलग-अलग तरीके हैं: हाथ से, सीपीएएन मॉड्यूल (और इसकी कमांडलाइन समकक्ष 'सीपीएन'),' सीपीएएनप्लस 'मॉड्यूल (और इसकी कमांडलाइन समतुल्य' cpanp'), और नई ऐप: : cpanminus वितरण जो 'cpanm' स्थापित करता है। इनमें से, मुझे 'cpanm' इंस्टॉल करने और उपयोग करने के लिए सबसे आसान लगता है। डिफ़ॉल्ट रूप से 'cpan' और' cpanp' स्थापित हैं, लेकिन सही तरीके से काम करने के लिए महत्वपूर्ण सेटअप की आवश्यकता है। –

+0

404: अनुरोध किए गए यूआरएल/लेखन/लेख/इंस्टॉल-पर्ल-मॉड्यूल-बिना रूट के इस सर्वर पर नहीं मिला था। – harschware

5

पूर्णता के लिए, यदि आप perl5~/Library के तहत रखना चाहते हैं तो यह ओएसएक्स पर cpanm की स्थापना प्रक्रिया है।

curl -L http://cpanmin.us | perl - -l ~/Library/perl5 App::cpanminus local::lib 
eval `perl -I ~/Library/perl5/lib/perl5 -Mlocal::lib=~/Library/perl5` 
echo 'eval `perl -I ~/Library/perl5/lib/perl5 -Mlocal::lib=~/Library/perl5`' >> ~/.bash_profile 
2

आप रूप में अच्छी तरह से स्थापित cpanminus मॉड्यूल के लिए आदमी पृष्ठों को पढ़ने के लिए सक्षम होना चाहते हैं, तो आप यह भी सुनिश्चित करें चुना पुस्तकालय पथ का सही उपनिर्देशिका MANPATH में है या नहीं।

export MANPATH=$HOME/Library/perl5/man:$MANPATH' >> ~/.bash_profile 
की [? मैं अनुमतियाँ स्थापित बिना एक नई पर्ल मॉड्यूल का उपयोग कर सकते कैसे] (
संबंधित मुद्दे

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