MacOSX 10.8 এবং 32-বিট পার্ল মডিউল


1

আমি সবেমাত্র MacOSX 10.6 থেকে 10.8 এ আপগ্রেড করেছি। আমার প্রকল্পগুলির অনেকগুলি ম্যাক :: আঠালো, ম্যাক :: কার্বন এবং তাদের জাতীয়তার উপর নির্ভর করে। যদিও ম্যাক :: আঠালো ম্যাকওএসএক্স ১০.৮ পার্লের সাথে বান্ডিল হয়ে আসে, তেমন কাজ করে বলে মনে হয় না:

[kw|~] perl -ce 'use Mac::Glue'
Can't load '/System/Library/Perl/Extras/5.12/darwin-thread-multi-2level/auto/MacPerl/MacPerl.bundle' for module MacPerl: dlopen(/System/Library/Perl/Extras/5.12/darwin-thread-multi-2level/auto/MacPerl/MacPerl.bundle, 1): no suitable image found.  Did find:
    /System/Library/Perl/Extras/5.12/darwin-thread-multi-2level/auto/MacPerl/MacPerl.bundle: mach-o, but wrong architecture at /System/Library/Perl/5.12/darwin-thread-multi-2level/DynaLoader.pm line 204.
 at /System/Library/Perl/Extras/5.12/Mac/Glue/Common.pm line 21
Compilation failed in require at /System/Library/Perl/Extras/5.12/Mac/Glue/Common.pm line 21.
BEGIN failed--compilation aborted at /System/Library/Perl/Extras/5.12/Mac/Glue/Common.pm line 21.
Compilation failed in require at /System/Library/Perl/Extras/5.12/Mac/Glue.pm line 7.
BEGIN failed--compilation aborted at /System/Library/Perl/Extras/5.12/Mac/Glue.pm line 7.
Compilation failed in require at -e line 1.
BEGIN failed--compilation aborted at -e line 1.

ম্যাক :: আঠালো 32-বিট:

[kw|~] lipo -info /System/Library/Perl/Extras/5.12/darwin-thread-multi-2level/auto/MacPerl/MacPerl.bundle
Non-fat file: /System/Library/Perl/Extras/5.12/darwin-thread-multi-2level/auto/MacPerl/MacPerl.bundle is architecture: i386

/ usr / বিন / পার্ল সেই আর্কিটেকচারের সাথে সামঞ্জস্যপূর্ণ বলে দাবি করেছে:

[kw|~] file /usr/bin/perl
/usr/bin/perl: Mach-O universal binary with 2 architectures
/usr/bin/perl (for architecture i386):  Mach-O executable i386
/usr/bin/perl (for architecture x86_64):    Mach-O 64-bit executable x86_64

আমি ম্যাকোএসএক্স 10.8.2, পার্ল 5.12.4 চালাচ্ছি।

এই সমস্যাটি কীভাবে সমাধান করা যায় কারও কি কোনও ধারণা আছে? যদি ম্যাকোএসএক্সএক্স 64৪-বিট হয় তবে এটি কী পার্লটিকে দুটি আর্কিটেকচারের সাথে সামঞ্জস্যপূর্ণ দাবি করার পরেও 32-বিট মডিউলগুলির সাথে সামঞ্জস্য হতে বাধা দেয়?

উত্তর:


1

আমি সমস্যার একটি সমাধান পেয়েছি: পার্লকে 32-বিট হিসাবে চালাতে বাধ্য করতে MacOSX 'খিলান' কমান্ডটি ব্যবহার করুন। ( Https://stackoverflow.com/questions/2088569/how-do-i-force-python-to-be-32-bit-on-snow-leopard-and-other-32-bit-64-bit এছাড়াও দেখুন -কোয়েস্ট ।)

[kw|~] arch -32 perl5.12 -ce 'use Mac::Glue'
-e syntax OK

মনে রাখবেন যে একজনের "স্পষ্ট" পার্ল ৫.১২ "দরকার এবং কেবল" পার্ল "নয়, যেহেতু (ম্যাকোএসএক্স ১০.৮ এ) / ইউএসআর / বিন / পার্ল একটি শেল স্ক্রিপ্ট যা /usr/bin/perl5.12 বা / usr / কে প্রতিনিধিত্ব করে বিন / perl5.10।


1

আসলে, এটি করার জন্য আরও দুটি উপায় রয়েছে, যদি আমরা উল্লেখ করি man perlmacosx:

  1. "ডিফল্ট" ব্যবহার করুন:

    % defaults write com.apple.versioner.perl Prefer-32-Bit -bool yes 
  2. VERSIONER_PERL_PREFER_32_BIT"সত্য", "হ্যাঁ" বা 1 তে পরিবেশ পরিবর্তনশীল সেটটি ব্যবহার করুন

যেকোন একটির সাথে perl -ce 'use Mac::Glue'আপনি পেয়েছেন:-e syntax OK

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.