ฉันจะติดตั้งโมดูล Perl DateTime บน Mac OSX 10.6.1 ได้อย่างไร

โอเค ฉันรู้วิธีติดตั้งโมดูล Perl ด้วย cpan และทำมาหลายปีแล้ว แต่เมื่อฉันพยายามติดตั้งโมดูล DateTime บน Mac เครื่องนี้ มันล้มเหลว โดยอ้างว่าไม่พบคอมไพเลอร์

นี่คือผลลัพธ์บางส่วนจากการพยายามติดตั้งหนึ่งในข้อกำหนดเบื้องต้น Params::Validate: ( ฉันได้รับข้อผิดพลาดประเภทเดียวกันจากการพยายามติดตั้งโมดูลที่เป็นปัญหา)

Configuring Params-Validate-1.00
Running Build.PL
/usr/libexec/gcc/powerpc-apple-darwin10/4.2.1/as: assembler (/usr/bin/../libexec/gcc/darwin/ppc/as or /usr/bin/../local/libexec/gcc/darwin/ppc/as) for architecture ppc not installed
Installed assemblers are:
/usr/bin/../libexec/gcc/darwin/x86_64/as for architecture x86_64
/usr/bin/../libexec/gcc/darwin/i386/as for architecture i386
lipo: can't open input file: /var/tmp//cc3Aefez.out (No such file or directory)
Warning: ExtUtils::CBuilder not installed or no compiler detected
Proceeding with configuration, but compilation may fail during Build

เหตุใด Build.PL จึงมองหาคอมไพเลอร์ ppc หากนั่นคือปัญหา ฉันจะบอก (หรือ cpan หรือ cpanm) ได้ที่ไหนว่าเครื่องนี้ไม่ใช่กล่อง ppc

ฉันใช้ 10.6.8 เวอร์ชันของ Perl คือ v5.10.0 ที่สร้างขึ้นสำหรับ darwin-thread-multi-2level

ฉันติดตั้งเครื่องมือสำหรับนักพัฒนาไว้แล้วอย่างแน่นอน

ฉันใช้ cpan และ cpanm ผ่าน sudo

ฉันจะขอบคุณสำหรับความช่วยเหลือใด ๆ ที่ทุกคนสามารถนำเสนอได้


person Tony Adams    schedule 13.12.2011    source แหล่งที่มา


คำตอบ (3)


คุณใช้ Perl ที่ไม่รองรับ อัปเกรดเป็นเสถียร

person daxim    schedule 13.12.2011
comment
ขอบคุณสำหรับข้อเสนอแนะ! ฉันแก้ไข Config_heavy.pl เพื่อลบ ppc และตอนนี้ฉันได้รับ: Running make for D/DR/DROLSKY/DateTime-0.70.tar.gz dyld: lazy symbol binding failed: Symbol not found: _Perl_Gthr_key_ptr Referenced from: /System/Library/Perl/5.10.0/darwin-thread-multi-2level/auto/Digest/SHA/SHA.bundle Expected in: flat namespace dyld: Symbol not found: _Perl_Gthr_key_ptr Referenced from: /System/Library/Perl/5.10.0/darwin-thread-multi-2level/auto/Digest/SHA/SHA.bundle Expected in: flat namespace Trace/BPT trap - person Tony Adams; 13.12.2011

ฉันติดตั้ง 10.7 ซึ่งมาพร้อมกับ Perl 5.12.3 ที่ติดตั้งแล้ว ฉันติดตั้ง CPAN แล้ว:

$ sudo cpan
password:
cpan> install DateTime

และทุกอย่างก็ใช้ได้ผล นี่เป็นสิ่งที่คุณต้องการสำหรับไฟล์ของบุคคลที่สามหรือคุณต้องการใช้สิ่งนี้เนื่องจากคุณคุ้นเคยกับแพ็คเกจนี้โดยเฉพาะ

มีแพ็คเกจ Time ในตัวหลายแพ็คเกจที่มี Perl 5.10. หนึ่งในสิ่งเหล่านี้จะเหมาะกับคุณหรือไม่? มิฉะนั้น คุณอาจต้องติดตั้ง ExtUtils::CBuilder และดูว่าจะช่วยได้หรือไม่

หรือติดตั้ง Perl เวอร์ชันใหม่กว่า เช่น ActiveState ซึ่งติดตั้งค่อนข้างง่าย นั่นคือ cpan ยูทิลิตี้ทำงานได้ค่อนข้างดีบน Mac และเป็นเวอร์ชัน 5.14 ซึ่งใหม่กว่าเวอร์ชันที่มาพร้อมกับ Lion

person David W.    schedule 13.12.2011
comment
มันเกือบจะเหมือนกับบุคคลที่สาม - มันเป็นโค้ดที่ฉันเขียนให้กับลูกค้าเมื่อหลายปีก่อนซึ่งตอนนี้ต้องมีการแก้ไขบางอย่าง จริงๆ แล้วมันทำงานบนเซิร์ฟเวอร์ที่มี Date::Time แต่ฉันต้องการทำการทดสอบในเครื่อง เซิร์ฟเวอร์ใช้งานเวอร์ชัน 5.10.1 ดังนั้นฉันจึงไม่ต้องการที่จะออกห่างจากปัญหานั้นมากเกินไป เกรงว่าปัญหาความเข้ากันได้อื่นๆ จะคืบคลานเข้ามา ความดื้อรั้นในระดับหนึ่งที่ผลักดันสิ่งนี้ให้ฉันในตอนนี้ เนื่องจากฉันมี Debian ในพื้นที่ด้วย กล่องซึ่งแน่นอนว่าใช้งานได้ตามที่คาดไว้ (ในเรื่องนี้) - person Tony Adams; 13.12.2011
comment
หลังจากที่ฉันติดตั้งโมดูลนี้บนระบบของฉัน โปรแกรม Perl POD ทั้งหมดภายใต้ /usr/bin สูญเสียบิตดำเนินการ รวมถึง perldoc ด้วย ฉันต้องทำ sudo chmod +x /usr/bin/perl* /usr/bin/pod* ในไดเรกทอรี - person David W.; 13.12.2011

ฉันคิดว่าสิ่งที่เกิดขึ้นคือตัวติดตั้งพยายามคอมไพล์บางสิ่ง (อาจเป็นโมดูล XS) และในการทำเช่นนั้นจำเป็นต้องใช้คอมไพเลอร์ตัวเดียวกับที่ใช้ในการคอมไพล์ Perl เวอร์ชันใดก็ตามที่อยู่ในระบบของคุณ และไม่พบ มัน. ทางออกที่ดีที่สุดของคุณคือติดตั้ง Perl 5.10 เวอร์ชันของคุณเองโดยใช้ perlbrew เนื่องจากเป็นการรับประกันว่าคอมไพเลอร์พร้อมใช้งาน (ตรวจสอบให้แน่ใจว่าคุณแก้ไข .profile ของคุณเพื่อให้ Terminal ใช้ Perl ใหม่ของคุณ) จากนั้นเปิด Terminal อีกครั้ง เปลี่ยนไปใช้ Perlrew เวอร์ชัน 5.10 และคุณควรจะสบายดีตั้งแต่นั้นเป็นต้นมา

หากคุณประสบปัญหาในการติดตั้ง Perlbrew Perl ดังที่ daxim ระบุไว้ข้างต้น โปรดดูที่ Lion fix

person tangent    schedule 05.02.2012