मैं अपने सभी CPAN मॉड्यूल को उनके नवीनतम संस्करणों में कैसे अपडेट करूं?


136

मैं अपने सभी CPAN मॉड्यूल को उनके नवीनतम संस्करणों में कैसे अपडेट करूं?

जवाबों:


145

upgradeडिफ़ॉल्ट CPAN शेल का उपयोग करने के लिए एक वैकल्पिक विधि का उपयोग करना है cpanminusऔर cpan-outdated

ये उपयोग करने में इतने आसान और फुर्तीले होते हैं कि मैं शायद ही कभी सीपीएएन शेल पर वापस जा पाऊं। अपने सभी मॉड्यूल को एक बार में अपग्रेड करने के लिए, कमांड है:

cpan-outdated -p | cpanm

मैं आपको cpanminusडॉक्स वर्णन की तरह स्थापित करने की सलाह देता हूं :

curl -L https://cpanmin.us | perl - App::cpanminus

और फिर cpan-outdatedअन्य सभी CPAN मॉड्यूल के साथ इंस्टॉल करें cpanm:

cpanm App::cpanoutdated

BTW: यदि आप उपयोग कर रहे हैं, perlbrewतो आपको इसके तहत स्थापित किए गए प्रत्येक पर्ल के लिए इसे दोहराना होगा।

आप Github repos के बारे में cpanminusऔर अधिक जानकारी cpan-outdatedयहाँ पा सकते हैं :


4
क्यों इस तरह के अतिरिक्त उपकरणों का उपयोग करते समय एक अंतर्निहित समाधान होता है (दूसरा उत्तर देखें)?
EAV

3
"ऐसे अतिरिक्त टूल का उपयोग क्यों किया जाता है" जबकि यह ओपी के प्रश्न के दायरे से बाहर है, cpanimus आपको CPAN की समस्या को हल करने के लिए कहता है ताकि आप Enter और / या टाइप करें [y] es दबाएँ। अफाक आप वैनिला सीपीएएन के साथ इस व्यवहार को मज़बूती से दबा नहीं सकते । किसी भी तरह के क्रोन या CI सर्वर के शामिल होते ही यह महत्वपूर्ण हो जाता है, और / या यदि आप उस कॉन्फिडेंस के साथ अपग्रेड शुरू करने में सक्षम होना चाहते हैं, जब आप कॉफ़ी निकाल रहे हैं, तब यह लटका नहीं होगा (जो मेरे अनुभव में है) अक्सर वैनिला सीपीएएन के साथ मामला) यह उत्तर भी देखें stackoverflow.com/questions/898782/…
नूह सुस्मान

[root @ portal-test Bugzilla-4.4.4] # cpan- पुरानी -p | cpanm पैकेज "LWP :: UserAgent" के माध्यम से / usr / bin / cpan- पुरानी लाइन 170 पर ऑब्जेक्ट विधि "नया" का पता नहीं लगा सकता है।
shorif2000

3
वे पुराने हैं (2006 से पर्ल तारीख, 2005 से LWP)। आदर्श रूप से आपको दोनों के नए संस्करण की आवश्यकता है। अगर किसी कारणवश आप ऐसा नहीं कर सकते हैं तो मैं तब तक वर्जन में LWP वर्जन अपग्रेड करूंगा जब तक कि आपको cpanm नहीं मिल जाती। cpan- आउटडेटेड वर्किंग। एनबी। महत्वपूर्ण - यदि आप Perl स्थापित CentOS का उपयोग कर रहे हैं तो इन के साथ CPAN या CPANMINUS का उपयोग न करें! ओएस पैकेज के साथ मिश्रण कभी नहीं !! इसके बजाय अपनी खुद की पर्ल (और फिर इस के भीतर cpanminus आदि का उपयोग करने के लिए) Perlbrew का उपयोग करें।
प्रात:

1
मुझे यह समाधान पसंद हैं क्योंकि आप आसानी से cpan-outdated -pपहले देख सकते हैं कि यह वास्तव में अपग्रेड करने से पहले क्या करने जा रहा है। यह कैसे के साथ एक सूखी रन करने के लिए स्पष्ट नहीं हैcpan upgrade
स्टीफन Ostermiller

51

सभी पर्ल पैकेज (CPAN मॉड्यूल) को अपग्रेड करने का एक आसान तरीका निम्नलिखित है:

cpan upgrade /(.*)/

cpan इस तरह से नियमित अभिव्यक्ति को पहचान लेगा और स्थापित सभी संकुल को अद्यतन / अपग्रेड कर देगा।


8
ठीक है, यह के रूप में नहीं है शांत के रूप में cpanminusहै, लेकिन कम से कम आप काम करने के लिए इसे पाने के लिए कुछ भी डाउनलोड करने की जरूरत नहीं है।
डेविड डब्ल्यू।

13
इस आदेश के साथ समस्या रखने वालों के लिए; के माध्यम से cpan खोल चलाने की कोशिश करें cpan, और फिर upgrade /(.*)/cpan खोल में चलाएँ ।
EarthmeLon

33

स्ट्राबेरी पर्ल के लिए, कोशिश करें:

cpan -u

4
नियमित पर्ल के लिए भी। मैन पेज से:-u Upgrade all installed modules. Blindly doing this can really break things, so keep a backup.
क्लो


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.