RPM چیست؟ آموزش استفاده از سیستم مدیریت بسته RPM در لینوکس
اگر از توزیع مبتنی بر RedHat مثل CentOS استفاده می کنید و به دنبال یک ابزار قدرتمند برای جستجو، نصب و به روزرسانی بسته های RPM هستید یا برای توزیع اسکریپت خود برنامه ریزی می کنید، چه گزینه ای بهتر ای از مدیر پکیج RPM؟
پکیج منیجر RPM یک مجموعه کامل برای کار با فایل های .rpm ارائه می دهد که مزیت هایی مثل سهولت استفاده و قدرت سازگاری بالا با پکیج ها باعث شده است برای پروسه نصب، حذف، آپدیت و جستجو پکیج های مربوط به توزیع های مبتنی بر RedHat ترجیح داده شود.
آشنایی با وظایف سیستم مدیریت بسته RPM و نحوه استفاده از آن برای اجرای عملیات متنوع به شما کمک می کند که به بهترین شکل ممکن از مزایای آن بهره مند شوید:
RPM چیست؟
سیستم مدیریت بسته، مجموعه ای از ابزارهای لازم برای نصب، به روزرسانی، جستجو و حذف نرم افزارها است. این ابزارها، بسته هایی را مدیریت می کنند که فایل های مربوط به آنها در آرشیو ذخیره شده اند. استفاده از این سیستم ها نیاز به مدیریت دستی نرم افزارها را از بین می برد.
پکیج منیجر RPM توسط Red Hat و توزیعات محبوب آن از جمله CentOS و Fedora استفاده می شود. این پکیج منیجر رایگان و متن باز، شامل برنامه های نرم افزاری کامپایل شده و کتابخانه های مورد نیاز بسته ها است که فقط با پکیج هایی که بر اساس فرمت .rpm شاخته شده اند، کار می کند. نصب، حذف، ارتقاء، تایید بسته های RPM و کوئری در هر بسته، عملیات اصلی هستند که توسط این مدیر بسته انجام می شود.
اینکه اکثر کاربران توزیع های مبتنی بر RedHat این سیستم مدیریت بسته را ترجیح می دهند، دلایل زیادی پنهان است که از مهم ترین آنها می توان به موارد زیر اشاره کرد:
- سهولت استفاده
- به حداقل رساندن خطاهای مربوط به سازگاری موقع نصب پکیج ها
- سادگی پروسه حذف نرم افزار و فایل های مربوط به آن
- امنیت بالا
- ثبت تاریخچه استفاده از RPM و پیگیری اطلاعات دقیق بسته ها
- راحتی پروسه رفع باگ ها
چند نکته مهم در مورد RPM
- RPM رایگان است و تحت مجوز GPL منتشر شده است.
- RPM اطلاعات تمام پکیج های نصب شده را در دیتابیس /var/lib/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- است. منظور از کوئری همان جستجو است و استفاده از آن، اطلاعات لازم در مورد پکیج موردنظر را ارائه می دهد.
اطلاع از اینکه پکیج موردنظر نصب شده است یا نه :
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 هم جزو اولویت های شماست، این بخش مخصوص شماست.
روش 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 در اوبونتو و دبیان هم با هیچ محدودیتی روبرو نیستید و با روش هایی که در این مقاله توضیح دادیم، به راحتی می توانید این کار را انجام دهید.
از اینکه تا انتهای مقاله با ما همراه بودید، از شما متشکریم. امیدواریم که مطالعه این مقاله برای شما مفید واقع شده باشد. در صورت داشتن هرگونه سوال، درخواست و نیاز به راهنمایی، می توانید با ثبت نظر خود، با ما وارد ارتباط شوید تا هر چه زودتر به شما پاسخ دهیم.
سوالات متداول:
آیا راهی برای بررسی یکپارچگی و اصل بودن یک پکیج rpm قبل از نصب وجود دارد؟
بله، با استفاده از دستور زیر می توانید امضای PGP پکیج موردنظر را بررسی کنید:
sudo rpm –checksig package-name