माउंटेन लायन पर पर्ल में निर्मित मैक ओएस एक्स को कैसे पुनर्स्थापित करें?


8

मैंने 4 दिन पहले माउंटेन लायन को अपडेट किया और फिर महसूस किया कि मेरी पर्ल स्क्रिप्ट्स अब काम नहीं करती हैं। इसलिए मैंने ActivePerl 5.14 (नवीनतम संस्करण) स्थापित किया क्योंकि मुझे लगा कि पर्ल को हटा दिया गया है। ActivePerl को स्थापित करने के बाद हालांकि मेरे कार्यक्रम अभी भी काम नहीं किए हैं:

Warning message:
running command 'perl calc.pl' had status 2 
Can't locate Excel/Writer/XLSX.pm in @INC (@INC contains:    
/Library/Perl/5.12/darwin-thread-multi-2level /Library/Perl/5.12 
/Network/Library/Perl/5.12/darwin-thread-multi-2level /Network/Library/Perl/5.12 
/Library/Perl/Updates/5.12.4 /System/Library/Perl/5.12/darwin-thread-multi-2level 
/System/Library/Perl/5.12 /System/Library/Perl/Extras/5.12/darwin-thread-multi-
2level /System/Library/Perl/Extras/5.12 .) at test.pl line 3.
BEGIN failed--compilation aborted at calc.pl line 3.

टर्मिनल में जब मैं perl -v टाइप करता हूं तो यह दिखाता है कि यह नए इंस्टॉल किए गए ActivePerl का उपयोग करता है। मैंने sudo clan का उपयोग किया -> एक्सेल :: राइटर :: XLSX को लापता मॉड्यूल को स्थापित करने के लिए। हालाँकि, यह इसे 5.12 के लिए नहीं बल्कि ActivePerl 5.14 के लिए इंस्टॉल करता है।

स्वयं मैक ओएस एक्स पर्ल सीम यहां लगाए जाने हैं:

bash-3.2$ ls /Library/Perl/
5.10    5.12    Updates
bash-3.2$ ls /System/Library/Perl/
5.10    5.12    Extras  lib
bash-3.2$

यहाँ एक संस्करण भी है:

bash-3.2$ ls /opt/local/lib/perl5/
5.12.4      site_perl   vendor_perl

मैंने सोचा कि इसके अनइंस्टालर को चलाकर ActivePerl को हटाना सबसे अच्छा है। मैंने ऐसा किया और 5.12.4 के साथ-साथ site_perl डायरेक्टरी / ऑप्ट / लोकल / लीब / पर्ल 5 में भी हटा दिया।

तब मैं XLSX :: लेखक मॉड्यूल को cpan का उपयोग करके पुनर्स्थापित करना चाहता था। मैंने सोचा था कि यह तब पुरानी पर्ल डायरेक्टरी में स्थापित है। हालाँकि अब cpan चलाने से निम्नलिखित त्रुटि होती है:

bash-3.2$ sudo cpan
Can't locate strict.pm in @INC (@INC contains:    
/opt/local/lib/perl5/site_perl/5.12.4/darwin-multi-2level 
/opt/local/lib/perl5/site_perl/5.12.4 
/opt/local/lib/perl5/vendor_perl/5.12.4/darwin-multi-2level 
/opt/local/lib/perl5/vendor_perl/5.12.4 /opt/local/lib/perl5/5.12.4/darwin-multi-
2level /opt/local/lib/perl5/5.12.4 /opt/local/lib/perl5/site_perl 
/opt/local/lib/perl5/vendor_perl/5.12.3/darwin-multi-2level 
/opt/local/lib/perl5/vendor_perl/5.12.3 /opt/local/lib/perl5/vendor_perl .) at 
/opt/local/bin/cpan line 5.
BEGIN failed--compilation aborted at /opt/local/bin/cpan line 5.

मुझे नहीं पता कि अब क्या करना है। मुझे लगता है कि मैं जो सबसे अच्छा कर सकता हूं वह शायद मैक ओएस एक्स के अपने पर्ल को फिर से स्थापित करना है, यह कैसे करना है?


क्या आपके पास मैकपोर्ट स्थापित हैं? / ऑप्ट / स्थानीय / बिन से अनुमान लगाते हुए
मार्क

हा करता हु। मैंने अभी-अभी xcode और डेवलपर कमांड लाइन टूल को फिर से इंस्टॉल किया है, लेकिन फिर भी वही है ... मैं बस अपने पूरे सिस्टम को पुनर्स्थापित कर सकता हूं और टाइम मशीन के साथ अपने सामान को पुनर्स्थापित कर सकता हूं। किसी भी तरह से एक स्वच्छ प्रणाली के लिए दिल नहीं होगा ...
user26392

आपको यह तय करने की आवश्यकता है कि पर्ल का उपयोग करने के लिए क्या है - Apple, macports या Activate और फिर सुनिश्चित करें कि केवल एक @INC में दिखाई देता है - हमें बताएं कि हम किसकी मदद कर सकते हैं
Mark

ठीक है, मैं सेब पर्ल का उपयोग करना चाहता हूं, लेकिन इसका उपयोग करने में सक्षम होने के लिए मुझे पर्ल के उस संस्करण के लिए XLSX.pm मॉड्यूल को स्थापित करने की भी आवश्यकता है। हालाँकि, कुछ फ़ोल्डरों को हटाने के कारण मैं किसी भी तरह से cpan शुरू नहीं कर सकता ... आपको क्या करना सबसे अच्छा लगता है?
user26392

आपने किन निर्देशिकाओं को हटाया?
मार्क

जवाबों:


6

मुझे एक अन्य वेबसाइट पर निम्नलिखित कमांड मिली

$ sudo perl -MCPAN -e 'CPAN :: Shell-> notest (install => CPAN :: Shell- r)'

इसने मेरे सभी पर्ल मॉड्यूल को अपडेट किया और सभी वापस सामान्य हो गए। यकीन नहीं क्यों या क्या, लेकिन परवाह नहीं है कि यह अब काम कर रहा है।


यहां उस कमांड का एक स्रोत है
ब्रायन

0

OS को अपग्रेड करने के विभिन्न और विविध कारणों के लिए MacPorts को अलग से अपग्रेड / रीस्टोर करने के लिए एक की आवश्यकता होती है। डेवलपर्स ने वास्तव में एक बहुत अच्छा प्रवासन पृष्ठ बनाया है जो ओएस को अपग्रेड करने के बाद आपके बंदरगाहों के पर्यावरण को फिर से काम करने के लिए आवश्यक प्रक्रिया का विवरण देता है।

संक्षेप में, आपको जिन चरणों का पालन करने की आवश्यकता है, वे हैं:

  1. नया Xcode डाउनलोड और इंस्टॉल करें।
  2. सुनिश्चित करें कि कमांड लाइन (gcc, make, आदि) उपकरण स्थापित हैं। Xcode एप्लिकेशन के भीतर से प्राथमिकताएं-> डाउनलोड पर जाएं और उन्हें इंस्टॉल करें।
  3. अपने OS संस्करण के लिए पसंद का MacPorts इंस्टॉलर डाउनलोड करें ।
  4. इसे स्थापित करो।
  5. अपनी पसंद का टर्मिनल खोलें।
  6. कमांड चलाएं port -qv installed > myports.txt। यह सभी स्थापित बंदरगाहों की एक प्रति पकड़ लेता है।
  7. सभी पोर्ट अनइंस्टॉल करें: sudo port -f uninstall installed
  8. अपने खेल क्षेत्र को साफ करें: sudo port clean all
  9. फ़ाइल के माध्यम से जाओ myports.txtऔर उन पैकेजों को पुनर्स्थापित करें जिन्हें आप वास्तव में चाहते हैं।

मैंने वास्तव में myports.txtफ़ाइल को संपादित करके अपनी पुनर्स्थापना प्रक्रिया को बढ़ा दिया , जैसे कि इसमें उन पैकेजों के नाम (और केवल नाम) थे जिन्हें मैं प्रति पंक्ति एक पैकेज के साथ चाहता था, और निम्नलिखित कमांड चला रहा था।

cat myports.txt | xargs -n1 port install

यह क्या करता है कि फ़ाइल के माध्यम से जाना है और फ़ाइल port install lineमें प्रत्येक पंक्ति के लिए कमांड निष्पादित करें । यह बिल्ली का बेकार उपयोग है, लेकिन कौन परवाह करता है, इसे पढ़ना आसान है।

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