تبدیل بسته deb به rpm

بسیار پیش آمده است که بخواهید بسته‌های مختلف لینوکس را به هم تبدیل کنید. بسته دبیانی با پسوند deb داشته‌اید و اکنون می‌خواهید در توزیعی که از بسته‌های ردهت با پسوند rmp پشتیبانی می‌کند استفاده کنید و یا بالعکس.

امروز قصد دارم برنامه‌ای معرفی کنم که این تبدیلات را به راحتی برای شما ممکن می‌سازد با پشتبانی از تبدیل بسته‌های deb، rpm، lsb، tgz و دیگر بسته‌های توزیع‌های لینوکس به هم و یک سری امکانات دیگر.

قبل از هر چیز بهتر است بدانید که برنامه‌های یونیکس همگی از کدهای ماشین یکسانی بهره می‌برند و از این جهت قابل اجرا در هر توزیعی هستند اما هر توزیع از سیستم بسته‌بندی متفاوتی استفاده می‌کند و همچنین منابع متفاوتی دارد؛ از این جهت بسته‌ها در هر توزیعی قابل نصب نیستند و باید آن‌ها را به فرم بسته‌های آن توزیع تبدیل کرد و یا حتی اگر از منابع خاصی استفاده می‌کنند که در یک توزیع وجود ندارد برای اجرای آن با مشکل بر خواهید خورد.

برنامه alien برای تبدیل بسته های لینوکس

ابتدا توسط دستور زیر در ترمینال این بسته را نصب کنید. این بسته در منابع توزیع شما موجود است.

  • نصب برای دبیان، ابونتو، مینت و …
sudo apt-get install alien
  • نصب برای فدورا، سنت-او-اس و …
yum install alien

اکنون دستور زیر را وارد کرده تا راهنمای استفاده از این برنامه را مشاهده کنید.

alien -h
Usage: alien [options] file [...]
  file [...]                Package file or files to convert.
  -d, --to-deb              Generate a Debian deb package (default).
     Enables these options:
       --patch=      Specify patch file to use instead of automatically
                            looking for patch in /var/lib/alien.
       --nopatch	    Do not use patches.
       --anypatch           Use even old version os patches.
       -s, --single         Like --generate, but do not create .orig
                            directory.
       --fixperms           Munge/fix permissions and owners.
       --test               Test generated packages with lintian.
  -r, --to-rpm              Generate a Red Hat rpm package.
      --to-slp              Generate a Stampede slp package.
  -l, --to-lsb              Generate a LSB package.
  -t, --to-tgz              Generate a Slackware tgz package.
     Enables these options:
       --description= Specify package description.
       --version=  Specify package version.
  -p, --to-pkg              Generate a Solaris pkg package.
  -i, --install             Install generated package.
  -g, --generate            Generate build tree, but do not build package.
  -c, --scripts             Include scripts in package.
  -v, --verbose             Display each command alien runs.
      --veryverbose         Be verbose, and also display output of run commands.
  -k, --keep-version        Do not change version of generated package.
      --bump=number         Increment package version by this number.
  -h, --help                Display this help message.
  -V, --version		    Display alien's version number.

در اینجا من ترجمه‌ای از این راهنما را قرار داده‌ام.

طریقه استفاده: alien [گزینه‌ها] file […]
file […] توضیح داده که فایل یعنی فایل بسته یا فایل‌های مورد نظر برای تبدیل کردن
-d, –to-deb سوییچ‌های مورد نظر برای تبدیل کردن به بسته‌های دبیان (به صورت پیش‌فرض از همین استفاده می‌شود)
گزینه‌های قابل استفاده:
–patch= فایل پچ مخصوصی که می‌خواهید از آن کنار تبدیل استفاده کنید
نگاهی به پچ‌ها در این مسیر بیندازید /var/lib/alien.
–nopatch از هیچ پچی استفاده نکردن
–anypatch زمانی از این سوییچ استفاده کنید که پچ‌های سیستم‌عامل قدیمی است
-s, –single مانند سوییچ جنریت است اما .او-ار-آی-جی نمی‌سازد
directory.
–fixperms درست کردن اجازه‌ها و مالک
–test آزمایش ساخت بسته‌ها
-r, –to-rpm تبدیل به آر-پی‌-ام. بسته‌های ردهت
–to-slp تبدیل به بسته‌های استمپید به پسوند اس-ال-پی
-l, –to-lsb تبدیل به بسته‌های ال-اس-بی
-t, –to-tgz تبدیل به بسته‌های اسلک ور به پسوند تی-جی-زد
گزینه‌های قابل استفاده:
–description= مشخص کردن توضیحات بسته
–version= مشخص کردن نسخه بسته
-p, –to-pkg تبدیل به بسته‌های سولاریز با پسوند پی-کی-جی
-i, –install نصب بسته تولید شده
-g, –generate ساخت درخت تولید. اما بسته را تولید نمی‌کند
-c, –scripts اسکریپ‌های پکیج را هم برای تبدیل شامل کن
-v, –verbose نمایش هر دستوری که برنامه تبدیل‌گر الین انجام می‌دهد
–veryverbose طولانی دستور بالا است و خروجی دستورات را نیز نمایش می‌دهد
-k, –keep-version نسخه بسته را تغییر نده
–bump=number نسخه بسته را به شماره مذکور تغییر بده
-h, –help نمایش راهنمای برنامه
-V, –version نمایش نسخه برنامه

مثلا می‌خواهید یک بسته آر پی ام را به دبیان تبدیل کنید:

sudo alien -r debian-package.debredhat_package_manager-package.rpm generated

یا تبدیل یک بسته دبیان به آر-پی-ام

alien redhat_package_manager-package.rpmdebian-package.deb generated

با توجه به بسته مورد نظر باید از سوییچ‌های مناسب استفاده کنید.