একটি বাইনারি জন্য ডিবি থেকে PKGBUILD তৈরি করা


1

আমি কোন প্রোগ্রাম ছাড়াই একটি প্রোগ্রামের জন্য PKGBUILD তে একটি .deb প্যাকেজ রূপান্তরিত করেছি। সমস্যা হল যে এই বাইনারিটি উবুন্টু 16.10 এ উপলব্ধ কিছু ভাগ করা লাইব্রেরিগুলির জন্য রয়েছে যা আর্কেতে বিভিন্ন পথ রয়েছে। আমি রান যখন এই আউটপুট একটি অংশ ldd বাইনারি উপর:

    libcurl-nss.so.4 => not found
    liblber-2.4.so.2 => /usr/lib/liblber-2.4.so.2 (0x00007f460d645000)
    libboost_thread.so.1.61.0 => not found
    libboost_system.so.1.61.0 => not found
    libboost_filesystem.so.1.61.0 => not found
    libboost_program_options.so.1.61.0 => not found
    libxalan-c.so.111 => not found

এই প্রোগ্রামটি বলার সর্বোত্তম উপায়টি কীভাবে Arch এ লাইব্রেরিগুলি খুঁজতে হয়?

উত্তর:


1

তারা একই ডিরেক্টরির মধ্যে। কিন্তু তাদের কিছু উপস্থিত না থাকার Arch -এ - অথবা অন্তত সঠিক নয় .নামame যা আপনার প্রোগ্রামের প্রয়োজন।

বুস্ট একটি সমস্যা। আর্চে এটি ইতিমধ্যে 1.64 সংস্করণে রয়েছে এবং দুর্ভাগ্যবশত এটির কোনও এটিআই স্থিতিশীলতা নেই - অন্য কথায়, বুস্ট ব্যবহার করে প্রোগ্রামগুলি প্রতিটি সংস্করণের জন্য পুনরায় কম্পাইল করা আবশ্যক। (যে কারণে ".so" পরিবর্তন পরে সংখ্যা।)

তাই প্রথমে আপনাকে বুস্ট 1.61 এর জন্য একটি প্যাকেজ তৈরি করতে হবে, একইভাবে বিদ্যমান বিদ্যমান "পুরানো সংস্করণ" প্যাকেজগুলির জন্য (উদাহরণস্বরূপ glew1.10)। এটি কেবল .so ফাইলগুলি থাকবে তবে অন্য কোনও সামগ্রী নয়, যাতে এটি সাম্প্রতিক সংস্করণের পাশাপাশি পাশাপাশি ইনস্টল করা যেতে পারে।

(এবং না, আপনি কেবল একটি ভিন্ন সংস্করণ সিমলিঙ্ক বা পুনঃনামকরণ করতে পারবেন না - একটি কারণের জন্য .নামame পরিবর্তনগুলি।)

যদিও curl সংস্করণ (যেমন দীর্ঘ সময় ধরে .so.4 হয়েছে) সঙ্গে কোন সমস্যা নেই, এটি তিন আছে রূপগুলো - আর্চ শুধুমাত্র ওপেনএসএল এবং জিএনইউটিএলএস সরবরাহ করে। তাই আবার আপনি একটি প্যাকেজ তৈরি করতে হবে যা libcurl-nss পেতে NSS লাইব্রেরীর বিরুদ্ধে কার্লুল কম্পাইল করে। আপনি বেস হিসাবে "curl-gnutls" প্যাকেজ ব্যবহার করতে পারেন।

শেষ লাইব্রেরি, xalan-c, আপনার সিস্টেমে কেবল ইনস্টল করা নেই।

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