mozhgan
08-21-2011, 01:01 AM
تبدیل بستههای rpm به deb و بلعکس
برخی اوقات بستههای مخصوص یک توزیع خاص پیدا نمیشوند (البته به ندرت!) و یا به دلایل دیگری مجبور هستید تا یک بسته را به بسته دیگر تبدیل نمایید. یکی از ابزارهایی که برای این کار موجود است، ابزار alien میباشد که با استفاده از آن خواهید توانست بستههای deb را به rpm و بلعکس تبدیل نمایید. البته بدلیل پیچیدگیهایی که وجود دارد، برخی اوقات alien ممکن است نتواند درست عمل نماید و در چنین مواردی است که باید دست به کار شده و برنامه را بطور دستی کامپایل و نصب نمایید.
با استفاده از ابزار alien، قادرید بستههای زیر را به فرمت دبیان تبدیل نمایید:
- بستههای RPM
- بستههای SLP
- بستههای tgz
توجه داشته باشید که برای تبدیل بستهها به یکدیگر باید در حالت کاربر ریشه قرار داشته باشید.
دستورات و گزینههای ابزار alien
این فرامین و گزینهها را باید به همراه دستور alien بکار ببرید:
d- یا to-rpm-- : تبدیل از/به فرمت دبیان. این گزینه پیشگزیده است.
r- یا to-rpm-- : تبدیل از/به فرمت RPM.
--to-slp : تبدیل از/به فرمت SLP.
t- یا to-tgz-- : تبدیل از/به فرمت tgz مخصوص لینوکس اسلاکور. این گزینه با بستههای tar شده کدهای منبع عمل نخواهد کرد.
i- یا install-- : با اضافه نمودن این دستور، بسته پس از تبدیل شدن، بطور خودکار نصب خواهد شد. البته در این صورت شما دیگر بستهای را مشاهده نخواهید کرد. بنابراین در صورتی که مایلید بستههای دبیان تولید شده را برای خود نگهداری نمایید، از این گزینه استفاده نکنید.
همانطور که گفته شد، دستور alien ممکن است در برخی موارد نتواند بستهها را به درستی به یکدیگر تبدیل نماید. من به شخصه چندین بسته از بستههای کوچک گرفته تا بستههای بزرگ را آزمایش کردم. هیچکدام از آنها حین تبدیل شدن دچار اشکال نشدند. اشکالی که من در تبدیل بستهها به آن برخورد کردم، عدم بررسی Dependencies یا وابستگیهای نرمافزاری بود. به طوری که یکی از بستهها بدون مشکل تبدیل و نصب شد، ولی هنگام اجرا خطایی حاکی از عدم تطابق یک نسخه از کتابخانههای موجود با نسخه مورد نیاز را میداد. البته برخی از بخشهای این نرمافزار بدون مشکل اجرا میشود.
مثال:
# alien -di BillardGL-1.75-6.i386.rpm
در مثال بالا، بسته بازی سه بعدی بیلیارد BillardGL از فرمت rpm به deb تبدیل شده و سپس با استفاده از apt به صورت خودکار روی سیستم نصب خواهد شد. توجه داشته باشید، هنگامی که بستهای را تبدیل میکنید، سیستم نامگذاری آن مطابق با بسته مقصد تغییر داده میشود. برای مثال خروجی دستور بالا، بسته billardgl_1.75-7_i386.deb است که همانطور که میبینید، قاعده نامگذاری آن مطابق با روش بستههای دبیان میباشد (packagename_version-patchlevel_arch.deb).
برخی اوقات بستههای مخصوص یک توزیع خاص پیدا نمیشوند (البته به ندرت!) و یا به دلایل دیگری مجبور هستید تا یک بسته را به بسته دیگر تبدیل نمایید. یکی از ابزارهایی که برای این کار موجود است، ابزار alien میباشد که با استفاده از آن خواهید توانست بستههای deb را به rpm و بلعکس تبدیل نمایید. البته بدلیل پیچیدگیهایی که وجود دارد، برخی اوقات alien ممکن است نتواند درست عمل نماید و در چنین مواردی است که باید دست به کار شده و برنامه را بطور دستی کامپایل و نصب نمایید.
با استفاده از ابزار alien، قادرید بستههای زیر را به فرمت دبیان تبدیل نمایید:
- بستههای RPM
- بستههای SLP
- بستههای tgz
توجه داشته باشید که برای تبدیل بستهها به یکدیگر باید در حالت کاربر ریشه قرار داشته باشید.
دستورات و گزینههای ابزار alien
این فرامین و گزینهها را باید به همراه دستور alien بکار ببرید:
d- یا to-rpm-- : تبدیل از/به فرمت دبیان. این گزینه پیشگزیده است.
r- یا to-rpm-- : تبدیل از/به فرمت RPM.
--to-slp : تبدیل از/به فرمت SLP.
t- یا to-tgz-- : تبدیل از/به فرمت tgz مخصوص لینوکس اسلاکور. این گزینه با بستههای tar شده کدهای منبع عمل نخواهد کرد.
i- یا install-- : با اضافه نمودن این دستور، بسته پس از تبدیل شدن، بطور خودکار نصب خواهد شد. البته در این صورت شما دیگر بستهای را مشاهده نخواهید کرد. بنابراین در صورتی که مایلید بستههای دبیان تولید شده را برای خود نگهداری نمایید، از این گزینه استفاده نکنید.
همانطور که گفته شد، دستور alien ممکن است در برخی موارد نتواند بستهها را به درستی به یکدیگر تبدیل نماید. من به شخصه چندین بسته از بستههای کوچک گرفته تا بستههای بزرگ را آزمایش کردم. هیچکدام از آنها حین تبدیل شدن دچار اشکال نشدند. اشکالی که من در تبدیل بستهها به آن برخورد کردم، عدم بررسی Dependencies یا وابستگیهای نرمافزاری بود. به طوری که یکی از بستهها بدون مشکل تبدیل و نصب شد، ولی هنگام اجرا خطایی حاکی از عدم تطابق یک نسخه از کتابخانههای موجود با نسخه مورد نیاز را میداد. البته برخی از بخشهای این نرمافزار بدون مشکل اجرا میشود.
مثال:
# alien -di BillardGL-1.75-6.i386.rpm
در مثال بالا، بسته بازی سه بعدی بیلیارد BillardGL از فرمت rpm به deb تبدیل شده و سپس با استفاده از apt به صورت خودکار روی سیستم نصب خواهد شد. توجه داشته باشید، هنگامی که بستهای را تبدیل میکنید، سیستم نامگذاری آن مطابق با بسته مقصد تغییر داده میشود. برای مثال خروجی دستور بالا، بسته billardgl_1.75-7_i386.deb است که همانطور که میبینید، قاعده نامگذاری آن مطابق با روش بستههای دبیان میباشد (packagename_version-patchlevel_arch.deb).