Bit৪ বিট সিস্টেমে 32 বিট লাইব্রেরি স্থাপন করা কি সম্ভব?


8

আমার কাছে 32 বিট শেয়ার করা লাইব্রেরি ইনস্টল করা আছে, তবুও পোগোপ্লাগ ইনস্টল করার চেষ্টা করার সময় আমি এই ত্রুটিটি পাচ্ছি:

./pogoplugfs: error while loading shared libraries: libfuse.so.2: wrong ELF class: ELFCLASS64

32 বিট লাইব্রেরি থেকে প্রোগ্রামটি লোড করার জন্য আমার আর কিছু করার দরকার আছে?

এই বছরের শুরুর দিকে একই ধরণের প্রশ্ন জিজ্ঞাসা করা হয়েছিল, কিন্তু কোনও উত্তর দেওয়া হয়নি।

উত্তর:


9

কিছু লাইব্রেরির জন্য, 32-বিট এবং 64-বিট উভয় লাইব্রেরি একটি 64-বিট সিস্টেমে ইনস্টল করা সম্ভব। এটি ia32-libsউবুন্টু 10.04 এবং তার আগে প্যাকেজের মাধ্যমে উপলব্ধ । এর ফাইললিস্টia32-libs অনুসারে কোনও libfuse.so.2ফাইল অন্তর্ভুক্ত নেই। এর অর্থ হ'ল আপনার এক সাথে উভয় আর্কিটেকচার ইনস্টল করা যাবে না।

উবুন্টু ১১.১০ ওয়ানিরিক থেকে, প্যাকেজগুলির পক্ষে বিভিন্ন আর্কিটেকচারের জন্য একযোগে ইনস্টলেশন মঞ্জুর করা সম্ভব যা "মাল্টি-আর্চ" নামে পরিচিত। দুর্ভাগ্যবশত, আমি বিশ্বাস করি পারে এর FileList libfuse2স্বপ্নবিষয়ক উপর , এই প্যাকেজ এখনো স্থানান্তর করা হয় নি। এটি প্যাকেজ নির্ভরতা থেকে নির্ধারণ করা যেতে পারে: যদি কোনও প্যাকেজ নির্ভর করে multiarch-support(যেমন libdrm2 ), এটি মাল্টি-আর্চ সমর্থন সমর্থন করে। যাইহোক, এই হল না গ্যারান্টি যে প্যাকেজ একযোগে একাধিক আর্কিটেকচারের জন্য ইনস্টল করা যাবে।

কোনও প্যাকেজের মাল্টি-আর্চ সক্ষমতার জন্য আপনার স্থানীয় ক্যাশেটি জিজ্ঞাসা করতে, বলুন libc6:

apt-cache show libc6 | grep ^Multi-Arch:

এই কমান্ডের জন্য, আউটপুট হয় Multi-Arch: same। এর অর্থ হ'ল প্যাকেজের 32-বিট এবং 64-বিট উভয় সংস্করণ একসাথে ইনস্টল করা যেতে পারে। যদি কোনও আউটপুট না থাকে তবে প্যাকেজটি মাল্টি-আর্চ সহায়তার জন্য প্রস্তুত নয়। অন্যান্য সম্ভাব্য মান হয় foreign(না সহ-ইনস্টলযোগ্য তবে এটি অন্যান্য আর্কিটেকচারের এর নির্ভরতা সন্তুষ্ট ব্যবহার করা যাবে) এবং allowed(iirc, শুধুমাত্র এক প্যাকেজ একটি সময়ে ইনস্টল করার জন্য অনুমতি, কিন্তু প্যাকেজ অন্যান্য নির্ভরতা সন্তুষ্ট ব্যবহার করা যেতে পারে প্যাকেজ)

আপনার সাথে একটি 64-বিট সিস্টেমে 32-বিট প্যাকেজ ইনস্টল করতে সক্ষম হওয়া উচিত:

sudo apt-get install packagename:i386

-৪-বিট মেশিনের জন্য 32-বিট লাইবফিউজ তৈরি করা

যেহেতু 32-বিট ফিউজ লাইব্রেরি সরবরাহ করা হচ্ছে না ia32-libs, তাই আপনি এটি নিজের তৈরি করা ছাড়া অন্য কোনও উপায় নেই।

  1. ফিউজের জন্য বিল্ড নির্ভরতা ইনস্টল করুন এবং উত্স কোড পান:

    sudo apt-get install ia32-libs libc6-i386
    sudo apt-get build-dep fuse
    apt-get source fuse
    
  2. উত্স ট্রিটি কনফিগার করুন এবং ফিউজ তৈরি করুন (প্রয়োজনে ডিরেক্টরি নামটি সামঞ্জস্য করুন):

    cd fuse-2.8.4
    CFLAGS=-m32 ./configure --host=i386-linux-gnu
    make -j 50
    
  3. 32-বিট ফিউজ লাইব্রেরি ইনস্টল করুন (সেই অনুযায়ী সংস্করণটি সামঞ্জস্য করুন):

    sudo ln -s libfuse.so.2.8.4 /usr/local/lib/libfuse.so.2
    sudo install -m644 lib/.libs/libfuse.so.2.8.4 /usr/local/lib/
    
  4. লিঙ্কার ক্যাশে আপডেট করুন:

    sudo ldconfig
    
  5. (alচ্ছিক) উত্স ফাইলগুলি সরান:

    cd ..
    rm -r fuse-2.8.4
    

0

হ্যা এখানে. Iia32 ইনস্টল করুন। এটি হয়ে গেলে, আপনি এখন কোনও 64 বিট প্ল্যাটফর্মে যে কোনও 32 বিট ভিত্তিক প্রোগ্রাম ইনস্টল করতে পারেন।


আমি ia32 ইনস্টল করেছিলাম (ভাগ করে নেওয়া লাইব্রেরিগুলির সাথে আমি কী বলছিলাম)। এটি কেবল libfuse.so.2
মাদুর

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