จะติดตั้ง Mac OS X ใหม่ใน Perl บน Mountain Lion ได้อย่างไร


8

ฉันอัปเดตเป็น Mountain Lion 4 วันที่ผ่านมาจากนั้นก็ตระหนักว่าสคริปต์ Perl ของฉันไม่ทำงานอีกต่อไป ดังนั้นฉันจึงติดตั้ง ActivePerl 5.14 (เวอร์ชั่นใหม่ล่าสุด) เพราะฉันคิดว่า Perl ถูกลบไปแล้ว หลังจากติดตั้ง 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 -> ติดตั้ง Excel :: Writer :: XLSX เพื่อติดตั้งโมดูลที่ขาดหายไป อย่างไรก็ตามมันไม่ได้ติดตั้งสำหรับ 5.12 แต่สำหรับ ActivePerl 5.14

ตะเข็บของ Mac OS X Perl ของตัวเองที่จะติดตั้งที่นี่:

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 ใน / opt / local / lib / perl5

ฉันต้องการติดตั้งโมดูล XLSX :: Writer อีกครั้งโดยใช้ cpan ฉันคิดว่ามันถูกติดตั้งในไดเรกทอรี Perl เก่าแล้ว อย่างไรก็ตามการรัน 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.

ฉันไม่รู้จะทำยังไง ฉันคิดว่าสิ่งที่ดีที่สุดที่ฉันสามารถทำได้คือติดตั้ง Perl ของ Mac OS X ใหม่อีกครั้งวิธีการทำเช่นนั้น?


คุณติดตั้ง macports หรือไม่ การคาดเดาจาก / opt / local / bin
user151019

ใช่ฉันทำ. ฉันเพิ่งติดตั้ง xcode และเครื่องมือบรรทัดคำสั่งสำหรับนักพัฒนา แต่ยังคงเหมือนเดิม ... ฉันอาจติดตั้งทั้งระบบใหม่และกู้คืนข้อมูลบางอย่างผ่านไทม์แมชชีน ไม่อยากจะมีระบบที่สะอาด แต่อย่างใด ...
user26392

คุณต้องตัดสินใจว่าจะใช้ Perl แบบใด - Apple, macports หรือ Activestate จากนั้นตรวจสอบให้แน่ใจว่ามีเพียงหนึ่งตัวที่ปรากฏใน @ INC - บอกเราว่าเราสามารถช่วย
ใครได้บ้าง

ฉันต้องการใช้แอปเปิ้ล Perl แต่เพื่อให้สามารถใช้งานได้ฉันต้องติดตั้งโมดูล XLSX.pm สำหรับ Perl เวอร์ชันนั้น อย่างไรก็ตามเนื่องจากการลบบางโฟลเดอร์ฉันไม่สามารถเริ่ม cpan ได้อีกต่อไป ... สิ่งที่คุณคิดว่าดีที่สุดควรทำอย่างไร
user26392

คุณลบไดเรกทอรีใด
user151019

คำตอบ:


6

ฉันพบเว็บไซต์อื่นตามคำสั่งต่อไปนี้

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

การอัปเดตโมดูล perl ทั้งหมดของฉันและทั้งหมดกลับมาเป็นปกติ ไม่แน่ใจว่าทำไมหรืออะไร แต่ไม่สนใจว่ามันใช้งานได้แล้ว


นี่คือแหล่งที่มาหนึ่งของคำสั่งนั้น
BryanH

0

สำหรับเหตุผลที่หลากหลายและหลากหลายในการอัพเกรดระบบปฏิบัติการจำเป็นต้องใช้เพื่ออัพเกรด / ติดตั้ง MacPorts แยกต่างหาก นักพัฒนาได้สร้างหน้าการย้ายข้อมูลที่ดีพอสมควรซึ่งมีรายละเอียดกระบวนการที่จำเป็นเพื่อให้สภาพแวดล้อมพอร์ตของคุณทำงานได้อีกครั้งหลังจากอัปเกรดระบบปฏิบัติการ

สรุปขั้นตอนที่คุณต้องทำคือ:

  1. ดาวน์โหลดและติดตั้ง Xcode ใหม่
  2. ตรวจสอบให้แน่ใจว่ามีการติดตั้งเครื่องมือบรรทัดคำสั่ง (gcc, make และอื่น ๆ ) จากภายในแอปพลิเคชัน Xcode ไปที่การตั้งค่า -> ดาวน์โหลดและติดตั้ง
  3. ดาวน์โหลดตัวเลือกการติดตั้ง 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สำหรับทุกบรรทัดในไฟล์ มันคือการใช้แมวที่ไร้ประโยชน์ แต่ถ้าสนใจก็ง่ายต่อการอ่าน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.