রেডহ্যাট এবং সুস উভয়েরই লম্বা এন্টারপ্রাইজ লিনাক্স traditionতিহ্য রয়েছে এবং তাদের জন্য এই প্যাকেজগুলি উত্পাদিত এবং পরীক্ষার ব্যবস্থা করা হয়েছে। সময় পার হওয়ার সাথে সাথে উবুন্টুতে কাজ করার জন্য প্যাকেজগুলির আরও উদাহরণ পাওয়া যাবে। আসলে, গত বছর থেকে এই জাতীয় অনেকগুলি প্যাকেজ উবুন্টুর সাথে কাজ করার জন্য পরীক্ষিত হিসাবে আসে। ক্যানোনিকাল আরও বিক্রেতাদের সাথে চুক্তি করার সাথে সাথে আরও বেশি উবুন্টু-প্রত্যয়িত প্যাকেজ থাকবে।
আপনার প্রথম প্রশ্নের জন্য: আপনি যদি এমন কোনও প্রোগ্রাম তৈরি করতে চান যা সমস্ত বিতরণে চলতে থাকে তবে একটি স্ট্যাটিক তৈরি করুন (ডায়নামিকের তুলনায়) এক্সিকিউটেবল। একটি statically-linked
এক্সিকিউটেবল সিস্টেম লাইব্রেরিগুলির উপর নির্ভর করে না, সুতরাং যতক্ষণ না আর্কিটেকচার (যেমন ইন্টেল / এএমডি) একই থাকে ততক্ষণ বিতরণগুলির মধ্যে কাজ করতে পারে।
এখানে একটি প্রোগ্রাম,
int main(void)
{
printf("Hello, World!\n");
return 0;
}
আসুন স্বাভাবিক হিসাবে সংকলন করা যাক,
$ gcc helloworld.c -o helloworld
$ ./helloworld
Hello, World!
$ ldd helloworld
libc.so.6 => /lib/libc.so.6 (0x00007f3cc3481000)
...
$
$ gcc helloworld.c -static -o helloworld_static
$ ./helloworld
Hello, World!
$ ldd helloworld_static
not a dynamic executable
$
সুতরাং, আপনি এই ভিএইচডিএল প্রোগ্রামটি দিয়ে কী করতে পারেন? .Rpm ফাইলটি পান এবং এলিয়েন ব্যবহার করে এটি .deb এ রূপান্তর করুন । তারপরে, ইনস্টল করুন। যদি এটি কাজ করে, আপনি ঠিক আছেন। যদি এটি কাজ না ldd
করে তবে কোন লাইব্রেরি ফাইলটি অনুপস্থিত তা নির্ধারণের জন্য ব্যবহার করুন। সবচেয়ে খারাপ পরিস্থিতিতে, এই অন্যান্য লিনাক্স বিতরণগুলির জন্য একটি ভার্চুয়াল মেশিন তৈরি করুন এবং সেখানে প্রোগ্রামটি চালান।