"শেয়ার করা অবজেক্টটি খুলতে পারে না" ত্রুটিগুলি কাটিয়ে উঠতে লাইব্রেরিগুলিকে সিমলিংক করা কি ঠিক (বা না)?


12

কখনও কখনও, কোনও কারণে বা অন্য কোনও কারণে, কোনও প্রোগ্রাম তার সমস্ত নির্ভরতা সঠিকভাবে নির্দিষ্ট করে বা অন্তর্ভুক্ত করে না এবং এটিকে শুরু করার ফলে নিখোঁজ নির্ভরতা নির্দেশ করে এমন ত্রুটির ফলাফল হয়। একটি সাধারণ ত্রুটি হ'ল কিছু:

cannot open shared object libudev.so.0

আমি অনেক উত্তর দেখতে পাচ্ছি যা লোকেদের /usr/libবা অন্যান্য সিস্টেমের অবস্থানগুলিতে সিমলিংক তৈরি করে এই জাতীয় সমস্যাগুলির আশপাশে কাজ করার পরামর্শ দেয় এবং এটি প্রায়শই সমস্যার সমাধান বলে মনে হয়। তবে আমি একটি সমান সংখ্যক মন্তব্য দেখছি যা মানুষকে পরামর্শ দিচ্ছে যে এটি একটি খারাপ ধারণা। প্রতিনিধি এখানে একটি উত্তর।

কোন প্রোগ্রামে কোনও কাজ করার জন্য একটি লাইব্রেরি সিমেলিংক গ্রহণযোগ্য? কখনো? কখনও কখনও? আপনি যদি প্রোগ্রামটি চালানো শেষ করে সিমলিংকটি মুছে ফেলেন তবে কী হবে?

এটি করার পরিণতি কি?

উত্তর:


12

এই লিঙ্কগুলি তৈরি করতে সমস্যা হ'ল এগুলি কোনও অর্থবহ উপায়ে পরিচালিত হয় না। যদি সেই লাইব্রেরিটি সরিয়ে ফেলা হয় তবে লিঙ্কটি নষ্ট হয়ে যায়। লাইব্রেরিটি আপগ্রেড করা থাকলে, লিঙ্কটি থাকার কারণে এটির প্রত্যাশা নেই বলে এটি একটি ত্রুটির সম্মুখীন হতে পারে।

এছাড়াও, আপনি মূলত সিস্টেমে মিথ্যা বলছেন। সংযুক্ত উদাহরণে, আপনি ভান করছেন যে libudev.so.1এটি আসলে libudev.so.0। এগুলির কারণগুলির জন্য পৃথকভাবে নামকরণ করা হয়েছে (গ্রন্থাগারের বিভিন্ন সংস্করণ)। যদিও এটি কিছু প্রোগ্রামের জন্য ঠিক কাজ করতে পারে, তবে সংস্করণগুলির মধ্যে পার্থক্যগুলি সমস্যার কারণ হতে পারে (যেমন সেগফল্ট বা অন্যান্য অপ্রত্যাশিত আচরণ)।

সুতরাং আপনি যদি এই লিঙ্কটি নির্দিষ্টভাবে তৈরি করে থাকেন তবে কোনও প্রোগ্রাম চলবে এবং আপনি জানেন যে আপনি এটি পরে সরিয়ে ফেলবেন, আপনি প্রথম সমস্যাটি সমাধান করবেন তবে দ্বিতীয়টি নয়। যদিও এটি প্রাথমিক সমস্যার সমাধান করে, এটি আদর্শ নয়।

আদর্শ সমাধানটি অবশ্যই গ্রন্থাগারের সঠিক সংস্করণটি ইনস্টল করা (আপনার লিঙ্কযুক্ত উদাহরণে স্বীকৃত উত্তর), বা আপনার কাছে থাকা সংস্করণটির বিরুদ্ধে প্রোগ্রামটি সংকলন করা।

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