نماد سایتنماد سایت بلاگ ایران هاست

سیستم مدیریت پکیج RPM چیست و هر آنچه بایستی در مورد آن بدانید!

RPM چیستRPM چیست

RPM یک ابزار مدیریت پکیج و ابزارهای مدیریت بسته در ردهت است. این ابزار به مدیران سیستم و کاربران اجازه می دهد تا پکیج های نرم افزاری سیستم را در سیستم عامل های یونیکس و لینوکس مدیریت ،نصب ،آپدیت و حذف کنند. در این مقاله به این سوال پاسخ می دهیم که RPM چیست و در ادامه با قابلیت های آن آشنا می شوید و در انتها تفاوت بین YUM و RPM را می خوانید.

فهرست این مقاله ( با کلیک روی هر عنوان به آن قسمت منتقل می شوید) پنهان

به زبان ساده RPM چیست ؟

RPM درابتدا برای لینوکس Red Hat ایجاد شده و برای سیستم های مبتنی بر ( ,RHEL ,CenOS ,Fedora ) کاربرد دارد. ترکیب آن از ویژگی های فنی و زمان سنجی مناسب موجب شده تا RPM یک استاندارد برای پکیج کردن نرم افزارها در بیشتر توزیع های لینوکس شود. اخیرا، فرمت فایل پکیج های RPM بر اساس پایه استانداردهای پایه لینوکس تطبیق داده شد. پایه استاندارد لینوکس (LSB) تلاشی برای ایجاد یک مبنا است تا تمامی توزیع های لینوکس از آن پیروی کنند. تاریخ مدیریت پکیج در لینوکس با تاریخ توزیع های لینوکس در هم تنیده است.

هر پکیج یک بسته جدا از فایلی مرتبط ، متون و اطلاعات پیکربندی است و معمولا هر پکیج یک اپلیکیشن مجزا است. RPM با تمرکز بر روی پکیج به عنوان یک واحد مدیریتی، پروسه نصب و حذف اپلیکیشن ها را بسیار راحت کرده است.  RPM به عنوان فایل .rpm شناخته می شود و شامل برنامه های نرم افزاری کامپایل شده و کتابخانه های مورد نیاز پکیج است.

rpm مخفف چیست ؟

RPM مخفف Redhat Package Manager است.

چرا نیاز به سیستم های مدیریت پکیج (RPM) برای لینوکس احساس شد؟

اگر چه لینوکس یک هسته عالی از یک سیستم عامل مناسب برای بسیاری از اپلیکیشنهای دنیای واقعی است ولی هسته لینوکس خود به تنهایی مناسب برای انجام بسیاری از وظایف نیست. بنابراین واضح است که بسیاری از کاربران لینوکس هم به هسته لینوکس و هم به مجموعه بزرگی از نرم افزارهای همراه (یک کتابخانه C، یک ویرایشگر مانند vi و غیره) برای انجام وظایف  مختلف نیاز داشته باشند.

کاربران از لینوکس  انتظار دارند تا دارای نرم افزار های سرور همانند وب سرور Apache ، نرم افزار های دسک تاپ همانند OpenOffice و دیگر پکیج ها باشد. در حقیقت بسیاری از کاربران لینوکس بین هسته (از نظر فنی تنها به هسته لینوکس گفته می شود) و دیگر پکیج های افزودنی که همراه لینوکس به عنوان یک توزیع لینوکس  عرضه می شوند تمایزی قائل نیستند و در نتیجه کل آن را لینوکس در نظر می گیرند.

برخی از توزیع های لینوکس شامل هزاران پکیج می شوند. این وضعیت قطعا نیاز به یک نرم افزار مدیریت پکیج کارآمد دارد. به علاوه  هسته لینوکس و این اپلیکیشن های نرم افزاری مختلف بطور معمول تنها به شکل کد منبع اصلی  توسط برنامه نویسان در دسترس قرار میگیرند و تنها پس از این که از کد منبع کامپایل شدند، می توان آن ها را بصورت دستی نصب کرد. بسیاری از افراد مهارت های فنی لازم را برای کامپایل یک سیستم عامل کامل را ندارند. حتی اگر موفق به انجام این کار شوند هیچ وقت حاضر نیستند تمام وقت و تلاشان را بر روی این موضوع بگذارند که یک سیستم عامل را کامپایل کنند فقط برای اینکه قادر باشند  لینوکس را اجرا کنند.

ظهور سیستم مدیریت بسته های نرم افزاری

خوشبختانه برنامه نویسان لینوکس زودتر غیر عملی بودن استفاده از کد های منبع  که در توسعه لینوکس عرضه می کردند را درک کردند و آنها توزیع های لینوکس را معرفی کردند. بدینصورت که توزیع لینوکس مجموعه ای از هسته کامپایل شده لینوکس و دیگر نرم افزار های لازمی که کاربر ممکن است به آنها نیاز داشته باشد است. به جای نصب Minix ، کامپایل هسته لینوکس و دیگر نرم افزارهای مورد نیاز تحت Minix و نصب این کدهای کامپایل شده هسته لینوکس و اپلیکیشن های مورد نیاز لینوکس، کاربران می توانند فقط این توزیع ها را نصب کنند و به سرعت یک محیط لینوکس داشته باشند که قابل استفاده باشد و کار کند.

در نسخه های اخیر مانند MCC و SLS ، آنها برای کاربران این امکان را فراهم کردند که فرایند نصب را بدون کنترل روی اینکه چه نرم افزارهایی ممکن است نصب شود، انجام دهند. چیزهایی که طراحان این توزیع از لینوکس بر روی هارد دیسک خود داشته اند چیزی است که نصب کننده توزیع بر روی هاد دیسک خود دارد. برای مثال، SLS که مخفف Soft Landing System است، و برای ایجاد تجربه نصب راحت تر لینوکس طراحی شده است.

طراحان توزیع لینوکس به سرعت دریافتند که انعطاف پذیری بیشتری نیاز است و به دنبال روش هایی بودند تا هم در حین نصب و هم بعد از نصب گزینه هایی را فراهم کنند. برای مثال توزیع Slackware اپلیکیشن ها را به دسته بندی های کاربردی چندگانه تقسیم می کند.  تمامی یوزر ها نسخه پایه توزیع را نصب می کنند و سپس میتوانند بر حسب نیازشان گروه مکملی را نصب کنند.

به عنوان مثال اگر نیاز به پشتیبانی ازشبکه است، نرم افزارهای شبکه قابل نصب است. اگر یک رابط کاربری گرافیکی مورد نیاز است بسته X می تواند نصب شود. در ادامه به بررسی برخی از ملزوماتی که سیستم های مدیریت پکیج بر اساس آن ایجاد شده اند خواهیم پرداخت.

ویژگی ها و قابلیت های RPM

 قابلیت به روز شدن پکیج rpm 

RPM طراحی شده تا از پکیج های به روز رسانی نیز پشتیبانی کند. زمانی که یک اپلیکیشن از طریق یک پکیج RPM نصب شد، یک نسخه جدیدتر از اپلیکیشن مشابه را نیز می توان با استفاده از RPM نصب کرد. با این کار فایلهای قدیمی پاک شده و با فایلهای جدید جایگزین می شود. به علاوه RPM  دقت می کند که هر گونه پیکر بندی سفارشی را که بر روی اپلیکیشن اعمال شده حفظ کند.

به عنوان نمونه فرض کنید شما با استفاده از RPM بر روی سرور Apache نصب کرده و تغییراتی را در فایل httpd.conf به عنوان تغییر در پیکر بندی آن اعمال کرده اید. اگر شما Apache را  با استفاده از  RPM به روز رسانی کنید، RPM دقت می کند که اگر تنظیمات سفارشی را اعمال کرده اید آنها را نگه دارد. در مقابل به روز رسانی دستی اپلیکیشن تمامی فایلهای پیکربندی را جایگزین می کند و اغلب تنظیمات انجام شده از بین می روند.

وابستگی های متقابل در پکیج rpm چیست؟

نرم افزاری که اپلیکیشن های نصب شده بر روی سیستم را مدیریت می کند در سطح اپلیکیشن (مانند یک RPM) ایرادات زیادی در مقایسه با سیستم های مدیریت نرم افزاری سطح سیستم (مانند ویندوز ) دارد. اپلیکیشن های نرم افزاری معمولا دارای وابستگی متقابل هستند، برخی از آنها  تنها زمانی کار می کنند که اپلیکیشن های دیگری نیز نصب شده باشند.

برای جلوگیری از وقوع مشکلات، دریافتند که  RPM نیز باید اطلاعات وابستگی از اینکه به چه نرم افزاری برای عملکرد درست نیاز است را پیگیری کند و  RPM با استفاده از این اطلاعات برای نصب و حذف اپلیکیشن ها باید از این اطلاعات وابستگی استفاده کند.

به عنوان مثال با استفاده از دستور ذیل می توان وابستگی های اپلیکیشن BitTorrent-5.2.2-1-Python2.4.noarch.rpm  را مشاهده کرد:

قابلیت پرس و جو

به عنوان بخشی از راه اندازی ، نرم افزار RPM یک دیتابیس بر روی سیستم تمامی پکیج ها یی که نصب شده است نگه می دارد و اطلاعاتی را مستند می کند مبنی بر اینکه این پکیج ها چه فایلهایی را بر روی سیستم نصب کرده اند.  RPM طراحی شده تا به راحتی مورد جستجو قرار بگیرد و بتوان با جستجو در این دیتابیس مشخص کرد که چه اپلیکیشن هایی بر روی این سیستم نصب شده اند و هر پکیج چه فایلهایی را بر روی سیستم قرار داده است.

معماری های چندگانه rpm

بیشتر اهداف طراحی RPM که به آنها اشاره شد بر آن بودند که در عمدتا کار مدیران سیستم و آنهایی که مرتبا اپلیکیشن ها را حذف، نصب و به روز رسانی می کنند را آسان تر کند.  ضمن اینکه بتوانند با پلتفرم های سخت افزاری مختلف سازگار باشند.

تفاوت بین YUM و RPM چیست ؟

تفاوت RPM و YUM به دو جنبه تقسیم می شود:

  1. RPM یک Package Manager و سیستم مدیریت بسته های نرم افزاری است در حالیکه YUM یک لایه میانی است که می تواند با RPM یکپارچه شده و کار کند.
  2. RPM نمی تواند وابستگی های نرم افزاری را نصب کند اما YUM می تواند ITPRO باشد.

سوالات متداول

پکیج های RPM را از کجا دانلود کنیم؟

نام برخی از سایت هایی که می توانید RPM را دانلود کنید:

چطور امضای بسته ی RPM را بررسی کنیم؟

قبل از آنکه بسته را نصب کنیم باید امضای آن را توسط Checksig بررسی کنیم:

rpm –checksig pidgin-2.7.9-5.el6.2.i686.rpm

pidgin-2.7.9-5.el6.2.i686.rpm: rsa sha1 (md5) pgp md5 OK

خروج از نسخه موبایل