View Full Version : binary compatibility in linux
Mehdi Asgari
سه شنبه 31 مرداد 1385, 14:07 عصر
سلام
اینطور که شنیدم بین توزیع های مختلف لینوکس از نظر binary ، ناسازگاری وجود داره.
آیا این درسته ؟ و آیا با کامپایل سورس برنامه (به جای نصب package) ، میشه
یه برنامه رو بر روی همۀ توزیع ها اجرا کرد ؟
(اگه اینطور باشه که خیلی بده ، چون کسی که ویندوز بلده میتونه برنامه هاش رو بر روی
تمامی ویندوز های دنیا نصب کنه و در واقع یه سیستم عامل بلده که در همه جا کار
می کنه ، اما در لینوکس مثلا کسی که suse بلده دیگه نمیگه من لینوکس بلدم و باید
بگه suse بلدم و ممکنه مثلا در slackware (یا هر توزیع دیگه) به مشکل بربخوره)
ممنون میشم اگه به این سوالات و ابهامات من جواب بدید.
tux-world
سه شنبه 31 مرداد 1385, 14:25 عصر
سلام دوست من توجه کن ناسازگاری وجود نداره
ما اصولا سه تا بسته برای لینوکس داریم که یکیش سورس هست و یکی دیگه RPM و DEB
اینها اومدن تو توزیع هایی که ارائه دادن دو تاشون همیشه هست
سورس برنامه و RPM یا DEB
DEB یا بسته های نرم افزاری دبیان و توزیع های نشات گرفته از اون از لحاظ ساختاری میشه گفت باهوش تر و ترو تمیز هستن و از بسته های RPM پیشرفته تر هستن
بسته نرم افزارهای RPM توزیع fedora بلی نمی تونین تو توزیع دیگه نصب کنین ولی بقیه چرا نصب میشن
توزیع هایی که از DEB پشتیبانی می کنن از RPM به اون صورت پشتیبانی نمیشه و حتی برعکس این موضوع
موفق باشید
Inprise
شنبه 04 شهریور 1385, 20:28 عصر
برای اجرای موفقیت آمیز یک برنامه باینری وجود چند شرط لازمه .
اول : فرمت باینری . کرنل لینوکس مورد نظر باید از فرمت باینری که قراره اجرا کنه حمایت کنه . این روزها همه توزیعات لینوکس از فرمت ELF که فرمت متداول و غالب یونیکس/لینوکس هست حمایت میکنند
دوم : C Runtime مناسب . برای اجرا موفقیت آمیز باینری ها ، که عموما" و در وضعیت طبیعی بصورت دینامیک لینک میشن باید یک ران تایم مناسب هم وجود داشته باشه . اگر کدت رو با نگارشی از GCC کامپایل و لینک کنی که به glibc2.3 احتیاج داشته باشه ، باینری ات روی ماشینی که glibc2.2 داره اجرا نمیشه .
سوم : کتابخانه های سازگار . اغلب برنامه ها غیر از توابع استاندارد C از توابعی که در بقیه کتابخانه ها وجود دارند هم استفاده میکنن ، مثلا Posix Threads . باید بین کد باینری مورد نظر ، و رابطهائی که مورد استفاده قرار گرفتن هم سازگاری کامل وجود داشته باشه .
میشه شرایط دیگه ای رو هم اضافه کرد ، اما عمدتا" با در نظر گرفتن همین سه شرط مسئلهء Binary Compatibility حل میشه . مسئلهء Package ها ( Deb و Rpm و ...) ربطی به این موضوع نداره .
hosseinzadeh
شنبه 04 شهریور 1385, 20:29 عصر
Thanks @ Inprise
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.