شما برای مطالعه این مقاله فقط 7 دقیقه وقت نیاز دارید

RPM
دسته بندی : آموزش لینوکس RPM

RPM چیست؟ آموزش استفاده از سیستم مدیریت بسته RPM در لینوکس

4.7/5 - (3 امتیاز)

اگر از توزیع مبتنی بر RedHat مثل CentOS استفاده می کنید و به دنبال یک ابزار قدرتمند برای جستجو، نصب و به روزرسانی بسته های RPM هستید یا برای توزیع اسکریپت خود برنامه ریزی می کنید، چه گزینه ای بهتر ای از مدیر پکیج RPM؟

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

آشنایی با وظایف سیستم مدیریت بسته RPM و نحوه استفاده از آن برای اجرای عملیات متنوع به شما کمک می کند که به بهترین شکل ممکن از مزایای آن بهره مند شوید:

RPM چیست؟

RPM چیست

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

پکیج منیجر RPM توسط Red Hat و توزیعات محبوب آن از جمله CentOS و Fedora استفاده می شود. این پکیج منیجر رایگان و متن باز، شامل برنامه های نرم افزاری کامپایل شده و کتابخانه های مورد نیاز بسته ها است که فقط با پکیج هایی که بر اساس فرمت .rpm شاخته شده اند، کار می کند. نصب، حذف، ارتقاء، تایید بسته های RPM و کوئری در هر بسته، عملیات اصلی هستند که توسط این مدیر بسته انجام می شود.

اینکه اکثر کاربران توزیع های مبتنی بر  RedHat این سیستم مدیریت بسته را ترجیح می دهند، دلایل زیادی پنهان است که از مهم ترین آنها می توان به موارد زیر اشاره کرد:

  • سهولت استفاده
  • به حداقل رساندن خطاهای مربوط به سازگاری موقع نصب پکیج ها
  • سادگی پروسه حذف نرم افزار و فایل های مربوط به آن
  • امنیت بالا
  • ثبت تاریخچه استفاده از RPM و پیگیری اطلاعات دقیق بسته ها
  • راحتی پروسه رفع باگ ها

چند نکته مهم در مورد RPM

  • RPM رایگان است و تحت مجوز GPL منتشر شده است.
  • RPM اطلاعات تمام پکیج های نصب شده را در دیتابیس /var/lib/rpm نگه می دارد.
  • با RPM فقط قادر به نصب پکیج ها هستید و این سیستم قادر به نصب و مدیریت پکیج ها با استفاده از سورس کدهای آنها نیست.
  • RPM با فایل های .rpm سروکار دارد که حاوی اطلاعات واقعی بسته ها مثل ورژن، لوکیشن و وابستگی ها هستند.

نحوه استفاده از RPM

نحوه استفاده از دستورات rpm

برای اجرای دستورات مربوط به این پکیج منیجر اول باید پیش نیازهای زیر را داشته باشید:

  • حساب کاربری با امتیازات sudo
  • دسترسی یه ترمینال برای وارد کردن دستورات
  • مدیر بسته RPM ( به طور پیش فرض در توزیع های مبتنی بر RedHat نصب شده است.)

1) نصب پکیج rpm

اول بهتر است به کمک سایت های زیر، پکیج موردنظر خود را پیدا کنید:

بعد از اینکه فایل را با استفاده از پرکاربردترین دستورات لینوکس برای دانلود یعنی curl یا wget دانلود کردید، با استفاده از دستور زیر می توانید آن را نصب کنید:

sudo rpm -i package.rpm

RPM با دیدن آپشن i- متوجه می شود که می خواهید فایل موردنظر را نصب کنید.

البته در کنار این اپشن می توانید از v- و h- استفاده کنید. v- برای نمایش زیباتر جزئیات نصب و h- هم برای پرینت علائم هش بسته بعد از باز شدن آرشیو مربوط به آن است.

sudo rpm -ivh package.rpm

این دستور علاوه بر خود فایل تمام وابستگی های آن را هم نصب می کند که اگر تمایلی به این کار ندارید و می خواهید فایل را بدون وابستگی های آن نصب کنید، دستور را با استفاده از آپشن nodeps– اجرا کنید:

sudo rpm –ivh --nodeps package.rpm

البته توجه داشته باشید که این دستور به اجبار فایل را با نادیده گرفتن وابستگی هایش نصب می کند و اگر سیستم شما مجهز به وابستگی های آن نباشد، مطمئناً تا وقتی آنها را نصب نکرده اید، برنامه اصلاً کار نمی کند.

اگر هم دوست دارید که پروسه پیدا کردن و دانلود فایل را رد کنید و با استفاده از یک دستور ساده، فایل را دانلود و نصب کنید، URL فایل موردنظر را کپی کنید و دستور را به شکل زیر اجرا کنید:

sudo rpm -ivh https://example.com/ package.rpm

2) آپدیت بسته RPM

U-، آپشنی است که برای آپدیت یا ارتقا نسخه پکیج به کار می رود. مزیت اصلی این آپشن این است که نه تنها پکیج را به آخرین نسخه ارتقاء می دهند و بلکه یک بکآپ از نسخه قدیمی را هم نگه می دارد تا بعداً در صورت نیاز بتوان از آن استفاده کرد.

با استفاده از دستور زیر می توانید بسته موردنظر را آپدیت کنید:

sudo rpm -Uvh package-name

(همانظور که قبلاً هم اشاره کردیم، آپشن های اختیاری uv با قرار گرفتن در کنار آپشن اصلی که در اینجا U- است، جزئیات واضح تری از پروسه اجرای دستور ارائه می دهند.)

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

3) عملیات کوئری RPM

آپشنی که برای اجرای کوئری های مختلف به کار می رود، q- است. منظور از کوئری همان جستجو است و استفاده از آن، اطلاعات لازم در مورد پکیج موردنظر را ارائه می دهد.

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

کلیک کنید  دستور آپدیت CentOS از طریق ترمینال و محیط گرافیکی

sudo rpm -q package-name

(اگر نصب شده باشد، اسم پکیج به عنوان خروجی ظاهر می شود)

ارائه اطلاعات بیشتر در مورد پکیج موردنظر بعد از نصب (با آپشن i-):

sudo rpm -qi package-name

ارائه اطلاعات بیشتر در مورد پکیج موردنظر قبل از نصب (با آپشن p-):

sudo rpm -qip package_name

نمایش لیست فایل های موجود در پکیج نصب شده (با آپشن l-):

sudo rpm -ql package-name

نمایش لیست وابستگی های پکیج موردنظر (با آپشن R-):

rpm -qpR package_name // قبل از نصب

rpm -qR package_name // بعد از نصب

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

sudo rpm -qf /path/of/file

نمایش لیست تمام پکیج های نصب شده در سیستم (با آپشن a-):

sudo rpm –qa

نمایش لیست پکیج هایی که اخیراً نصب شده اند (با آپشن last-):

rpm -qa –last

نمایش لیست داکیومنتیشن پکیج نصب شده (با آپشن df-):

sudo rpm –qdf path/of/package

4) بررسی و تایید بسته rpm

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

بررسی تمام بسته های نصب شده در سیستم (با آپشن a-):

sudo rpm –Va

بررسی یک پکیج خاص با آپشن (p-):

sudo rpm -Vp package_name

5) حذف پکیج rpm

برای این که یک پکیج نصب شده را از سیستم حذف کنید، باید از e- یا erase– استفاده کنید.

sudo rpm -e package_name

حذف چند پکیج با یک دستور:

rpm -e [package1] [package2]… sudo

ارائه جزئیات بیشتر در مورد پکیج در پروسه حذف (با آپشن v-):

sudo rpm -ev package_name

حذف یک پکیج RPM بدون حذف وابستگی های آن (با آپشن nodeps–):

sudo rpm -ev --nodeps package_name

6) ایجاد پکیج rpm

برای ایجاد یک پکیج rpm حتماً باید از یک سیستم عامل مبتنی برای RedHat استفاده کنید. سورس کد پکیج هم در کنار برخی از نرم افزارهای پیش نیاز در پروسه ایجاد پکیج موردنیاز است.

– نرم افزارهای موردنیاز را نصب کنید.

sudo dnf install -y rpmdevtools rpmlint

– بعد نصب این برنامه ها، درخت فایل لازم برای ساخت پکیج RPM را ایجاد کنید:

rpmdev-setuptree

– اسکریپت خود را در دایرکتوری مورنظر قرار دهید. یک دایرکتوری برای آن ایجاد کنید و بعد اسکریپت را به آن منتقل کنید.

mkdir script-dir

mv script-name script-dir

– از دستور tar برای ایجاد یک فایل آرشیو استفاده کنید:

tar --create --file script-dir.tar.gz script-dir

– بعد این فایل را به SOURCES منتقل کنید:

mv script-dir.tar.gz SOURCES

– فایل spec پکیج را ایجاد کنید:

rpmdev-newspec script-name

– برای بررسی خطاهای فایل spec می توانید از دستور زیر استفاده کنید:

rpmlint ~/rpmbuild/SPECS/script-name.spec SPECS/script-name.spec

– برای ایجاد پکیج src آر پی ام دستور زیر را وارد کنید:

rpmbuild -bs ~/rpmbuild/SPECS/script-name.spec

– برای ایجاد بسته باینری RPM دستور زیر را وارد کنید:

rpmbuild -bb ~/rpmbuild/SPECS/rm-ssh-offendingkey.spec

(استفاده از آپشن ba-، هر دو بسته را به صورت همزمان ایجاد می کند.)

نحوه استفاده از پکیج های RPM در اوبونتو و دبیان

نحوه استفاده از rpm در اوبونتو و دبیان

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

روش 1) تبدیل فایل .rpm به .deb

در این روش برای نصب و استفاده از فایل rpm اول باید آن را به فایل deb تبدیل کنید و Alien ابزاری است که این تبدیل را انجام می دهد.

1) Alien را نصب کنید.

– با استفاده از دستور زیر، universe repository را فعال کنید:

sudo add-apt-repository universe

– از آپدیت بودن این repository مطمئن شوید:

sudo apt-get update

– با دستور زیر ابزار تبدیل Alien را نصب کنید:

sudo apt-get install alien

2) فرمت فایل را تغییر دهید.

حالا که ابزار Alien را نصب کردید، نوبت به تبدیل فرمت rpm به deb می رسد.

– به پوشه ای که فایل rpm قرار دارد، بروید و دستور زیر را وارد کنید:

sudo alien packagename.rpm

این دستور به ابزار Alien دستور می دهد که تبدیل فایل .rpm به .deb را آغاز کند.

توجه! برای نصب هر پکیج یا فایل در اوبونتو و دبیان نیاز به یک کاربر با دسترسی sudo دارید.

3) پکیج .deb جدید را نصب کنید.

– وقتی که پروسه تبدیل فرمت با موفقیت تکمیل شد، با استفاده از دستور زیر فایل موردنظر را نصب کنید.

sudo dpkg –i packagename.deb

روش 2) نصب مستقیم فایل .rpm

این روش نسبت به روش دیگر کوتاه تر است و با استفاده از آن می توانید پکیج rpm. را بدون تبدیل به deb. نصب کنید.

در این روش هم به ابزار Alien نیاز دارید که اگر طبق دستور روش بالا این ابزار را نصب کردید، با وارد کردن دستور زیر می توانید بسته موردنظر را نصب کنید.

sudo alien –i packagename.rpm

کلام آخر

سیستم مدیریت بسته RPM از محبوب ترین ابزارهای سیستم عامل های مبتنی بر Red Hat (CentOS، Fedora و RHEL است. نصب، جستجو، آپدیت، تایید و حذف، 5 عمل اصلی هستند که توسط این سیستم انجام می شوند. البته، برای نصب فایل .rpm در اوبونتو و دبیان هم با هیچ محدودیتی روبرو نیستید و با روش هایی که در این مقاله توضیح دادیم، به راحتی می توانید این کار را انجام دهید.

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

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

بله، با استفاده از دستور زیر می توانید امضای PGP پکیج موردنظر را بررسی کنید:

sudo rpm –checksig package-name

مطالب مشابهی که شاید علاقمند باشید

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

دیدگاه های شما

برای دریافت این مقاله لطفا ایمیلتان را وارد کنید

می توانید مقاله را دانلود کنید یا پرینت بگیرید