کاربرد RPM در لینوکس
۱۴ مثال عملی از دستورات RPM در لینوکس | مدیریت بسته لینوکس با YUM و RPM
مقدمه
” دستور RPM (Red Hat Package Manager) یک ابزار اساسی در دنیای مدیریت بسته های لینوکس است. این به طور گسترده در توزیع های مبتنی بر Red Hat مانند Fedora و CentOS و همچنین سایر توزیع های مبتنی بر RPM استفاده می شود. دستور RPM به کاربران اجازه می دهد تا بسته های نرم افزاری را نصب، پرس و جو، تأیید و مدیریت کنند و آن را به ابزاری ضروری برای مدیران سیستم و علاقه مندان به لینوکس تبدیل می کند. در این آموزش، ویژگی های rpm و مثال هایی عملی از دستورات rpm، کاربرد rpm و تفاوت rpm و yum را مورد بررسی قرار میدهیم. “
ویژگی های RPM
برخی از ویژگی های RPM عبارتند از:
- بسته های RPM را می توان به صورت رمزنگاری با GPG و MD5 تأیید کرد.
- RPM می تواند به عنوان یک موتور جستجوی قدرتمند برای جستجوی نرم افزارها استفاده شود.
- کامپوننت ها، نرم افزارها و غیره را می توان با استفاده از RPM بدون نیاز به نصب مجدد آنها ارتقا داد.
- نصب مجدد را می توان به راحتی با استفاده از RPM انجام داد.
- در طول به روز رسانی RPM فایل های پیکربندی را با دقت مدیریت می کند، به طوری که سفارشی سازی از بین نمی رود.
- به روز رسانی دلتا PatchRPM ها و DeltaRPM ها، معادل RPM یک فایل پچ، می توانند نرم افزارهای نصب شده در RPM را به صورت تدریجی به روز کند.
- RPM به صورت رایگان در دسترس است و تحت مجوز عمومی (GPL) منتشر می شود.
- RPM یک پایگاه داده از تمام بسته های نصب شده نگهداری می کند و این اطلاعات را در پوشه /var/lib/rpm ذخیره می کند.
- RPM به عنوان روش اصلی برای نصب بسته ها در سیستم های لینوکس عمل می کند. اگر بسته ها با استفاده از کد منبع نصب شده باشند، RPM آنها را مدیریت نمی کند.
- RPM با فایلهای rpm. کار میکند که حاوی اطلاعات مهم بسته مانند هویت، منبع، وابستگیها، جزئیات نسخه و غیره است.
- ارزیابی وابستگی زمان ساخت خودکار
۱۴ مثال عملی از دستورات RPM در لینوکس
با کمک این دستورات RPM می توانید نصب، به روز رسانی و حذف بسته ها را در سیستم های لینوکس خود مدیریت کنید.
حالت های اولیه برای فرمان RPM
در اینجا حالت های اولیه برای دستور RPM در سیستم های لینوکسی (خرید سرور مجازی VPS) آمده است:
۱) دستور install
rpm -i یک بسته جدید را روی سیستم نصب می کند.
۲) دستور upgrade
rpm -U یک بسته موجود را به نسخه جدیدتر ارتقا می دهد.
3) دستور remove
rpm -e بسته ای را از سیستم حذف یا حذف می کند.
۴) دستور query
rpm -q از پایگاه داده RPM برای اطلاعات در مورد بسته های نصب شده پرس و جو می کند.
۵) دستور verify
rpm –V یکپارچگی فایل های بسته نصب شده را تأیید می کند.
۶) دستور freshen
rpm -F یک بسته را فقط در صورتی نصب می کند که قبلاً نصب شده باشد.
۷) بازسازی پایگاه داده
دستور rpm –rebuilddb پایگاه داده RPM را بازسازی می کند و مشکلات خرابی پایگاه داده را حل می کند.
۸) دستور وارد کردن کلید GPG
rpm –import یک کلید GPG را وارد می کند که برای تأیید امضای بسته استفاده می شود.
۹) دستور Query All
rpm -qa تمام بسته های نصب شده روی سیستم را فهرست می کند.
۱۰) دستور Query Files
rpm -ql تمام فایل های نصب شده توسط یک بسته خاص را فهرست می کند.
۱۱) دستور Query Documentation
rpm -qd فایل های مستند ارائه شده توسط یک بسته را فهرست می کند.
۱۲) دستور Query Dependencies
rpm -qR وابستگی های زمان اجرا را برای یک بسته فهرست می کند.
۱۳) دستور Query
rpm -q قابلیت های لیست دستورات ارائه شده توسط یک بسته را ارائه می دهد.
۱۴) دستور Query Requires
rpm -q به دستور نیاز دارد وابستگی های مورد نیاز یک بسته را فهرست کند.
چگونه یک بسته RPM را نصب یا ارتقا دهیم؟
-
محیط
Red Hat Enterprise Linux 6، 7، 8، 9
-
دانلود فایل نصب RPM
یک فایل نصب RPM را می توان از اینترنت یا از مخزنی که مدیر بسته شما استفاده می کند دانلود کرد. برای یادگیری نحوه استفاده از هر روش به بخش های زیر مراجعه کنید.
فایل های RPM را از اینترنت دانلود کنید.
شما می توانید یک فایل RPM را از اینترنت با استفاده از یک مرورگر وب دانلود کنید یا اگر خط فرمان را ترجیح می دهید، از ابزار wget استفاده کنید. مثال های زیر نحوه نصب wget را در سیستم عامل های مختلف نشان می دهد:
برای نصب wget در CentOS و سایر توزیعها با استفاده از yum، دستور زیر را اجرا کنید:
sudo yum install wget |
برای نصب wget در فدورا و سایر توزیعهایی که از dnf استفاده میکنند، اجرا کنید:
sudo dnf install wget |
پس از نصب دستور wget، از دستور زیر برای دانلود یک فایل RPM از اینترنت استفاده کنید:
wget http://some_website/sample_file.rpm |
http://some_website/sample_file.rpm را با پیوند فایل RPM جایگزین کنید و دستور آن را در فهرست فعلی شما دانلود می کند. می توانید آدرس یک فایل RPM خاص را در یک مرورگر وب در سیستم دیگری جستجو کنید. این یک راه مفید برای نصب نسخه های جدیدتر نرم افزار یا نرم افزارهای غیر استاندارد خاص است.
” توجه: برای مشاهده یا دانلود بستهها، اشتراک محصول فعال که شامل حقوق بسته میشود، الزامی است. “
نصب یا ارتقاء
دو گزینه اصلی از دستور rpm وجود دارد که برای نصب یا ارتقاء بسته های RPM استفاده می شود:
-i برای نصب یک بسته جدید استفاده می شود. همیشه از این برای نصب هسته و ارتقاء فقط در مورد استفاده کنید.
-U برای ارتقاء یک بسته RPM استفاده می شود، اما اگر بسته در پایگاه داده RPM وجود نداشته باشد، آن را نیز نصب می کند.
استفاده و گزینه های اضافی را می توان در صفحه مرد RPM یافت. man rpm را از خط فرمان تایپ کنید. در اینجا اطلاعاتی در مورد پرچم -i و -U آمده است:
” توجه: این مثال ها فرض می کنند که بسته ها در یک دایرکتوری در سیستم شما قرار دارند. دستورات RPM زیر در دایرکتوری کاری فعلی که فایلهای RPM جدید در آن قرار دارند اجرا میشوند. “
INSTALL AND UPGRADE OPTIONS The general form of an rpm install command is rpm {-i|–install} [install-options] PACKAGE_FILE This installs a new package. The general form of an rpm upgrade command is rpm {-U|–upgrade} [install-options] PACKAGE_FILE … This install the package or upgrades the package currently installed to a newer version. This is the same as install, except all other version(s) of the package are removed after the new package is installed. |
برای نصب یک بسته RPM، از پرچم -i استفاده می کنیم. همانطور که قبلا ذکر شد، هنگام نصب یک هسته RPM از این پرچم استفاده می کنید. در این حالت، در صورتی که هسته جدید راهاندازی نشود، میخواهید حداقل موقتاً هسته قدیمی خود را در جای خود رها کنید. در این مثال ابتدا بررسی می کنیم که نام بسته های RPM جدید را با دستور ls ببینیم. سپس پایگاه داده RPM را پرس و جو می کنیم تا ببینیم کدام بسته های هسته قبلاً نصب شده اند. شما نیازی به وارد کردن شماره نسخه در پرس و جو ندارید، اما کاربرد این است: rpm -q <نام بسته>. می توانیم بسته RPM را با دستور زیر نصب کنیم: rpm -ivh <package name>. توجه داشته باشید که گزینه -v خروجی مفصل و -h نشانه های هش را نشان می دهد که نشان دهنده عملکرد پیشرفت RPM ارتقاء است. در نهایت، یک پرسوجو RPM دیگر را اجرا میکنیم تا تأیید کنیم که بسته در دسترس است.
# ls kernel-2.4.21-15.0.3.EL.i686.rpm kernel-smp-2.4.21-15.0.3.EL.i686.rpm # rpm -q kernel; rpm -q kernel-smp kernel-2.4.21-4.0.1.EL kernel-2.4.21-15.0.2.EL kernel-smp-2.4.21-4.0.1.EL kernel-smp-2.4.21-15.0.2.EL # rpm -ivh kernel-2.4.21-15.0.3.EL.i686.rpm Preparing… ########################################### [100%] 1:kernel ########################################### [100%] # rpm -ivh kernel-smp-2.4.21-15.0.3.EL.i686.rpm Preparing… ########################################### [100%] 1:kernel-smp ########################################### [100%] # rpm -q kernel; rpm -q kernel-smp kernel-2.4.21-4.0.1.EL kernel-2.4.21-15.0.2.EL kernel-2.4.21-15.0.3.EL kernel-smp-2.4.21-4.0.1.EL kernel-smp-2.4.21-15.0.2.EL kernel-smp-2.4.21-15.0.3.EL |
برای ارتقاء یک بسته RPM، از پرچم -U استفاده می کنیم. در این مثال، نام بسته جدید را با دستور ls تأیید می کنیم. سپس یک پرسوجوی RPM اجرا میکنیم تا ببینیم بستهای که میخواهیم نصب کنیم در پایگاه داده RPM، rpm -q <نام بسته> وجود دارد یا خیر. بعد، نصب RPM را با دستور زیر اجرا می کنیم: rpm -Uvh <package name>. توجه داشته باشید که گزینه -v خروجی مفصل و -h نشانه های هش را نشان می دهد که نشان دهنده عملکرد پیشرفت RPM ارتقاء است. در نهایت، یک پرسوجو RPM دیگر را اجرا میکنیم تا تأیید کنیم که بسته در دسترس است.
# ls httpd-2.0.46-32.ent.3.i386.rpm mod_ssl-2.0.46-32.ent.3.i386.rpm # rpm -q httpd; rpm -q mod_ssl httpd-2.0.46-32.ent mod_ssl-2.0.46-32.ent # rpm -Uvh httpd-2.0.46-32.ent.3.i386.rpm mod_ssl-2.0.46-32.ent.3.i386.rpm Preparing… ########################################### [100%] 1:httpd ########################################### [ 50%] 2:mod_ssl ########################################### [100%] # rpm -q httpd; rpm -q mod_ssl httpd-2.0.46-32.ent.3 mod_ssl-2.0.46-32.ent.3 |
” توجه: httpd و mod_ssl به دلیل مشکلات وابستگی باید همزمان نصب شوند. اگر بخواهید یکی را بدون دیگری نصب کنید، با خطای زیر مواجه خواهید شد:
# دور در دقیقه -Uvh httpd-2.0.46-32.ent.3.i386.rpm
خطا: وابستگی های ناموفق:
httpd = 2.0.46-32.ent توسط mod_ssl-2.0.46-32.ent (نصب شده) مورد نیاز است. “
مدیریت بسته لینوکس با YUM و RPM
مدیریت نرم افزار با استفاده از YUM/DNF و RPM را برای سیستم های لینوکس مبتنی بر Red Hat یاد بگیرید.
نصب، وصله کردن، و حذف بسته های نرم افزاری روی ماشین های لینوکس یکی از کارهای رایجی است که هر سیسادمین باید انجام دهد. در اینجا نحوه شروع کار با مدیریت بسته لینوکس در توزیع های مبتنی بر لینوکس Red Hat (توزیعات) آورده شده است.
مدیریت بستهها روشی برای نصب، بهروزرسانی، حذف و پیگیری بهروزرسانیهای نرمافزار از مخازن خاص (repos) در سیستم لینوکس است. توزیع کنندگان لینوکس اغلب از ابزارهای مدیریت بسته های مختلف استفاده می کنند. توزیعهای مبتنی بر ردهت از RPM (مدیر بسته RPM) و YUM/DNF (بهروزرسانیکننده سگ زرد، اصلاحشده/مرغدار YUM) استفاده میکنند.
بهروزرسانی سگ زرد، اصلاح شده (YUM)
DNF یا Dandified YUM پیشفرض بهروزرسانیشده از Red Hat Enterprise Linux 8، CentOS 8، Fedora 22، و هر توزیع مبتنی بر اینها است. به طور کلی، گزینه ها یکسان هستند.
YUM ابزار مدیریت بسته اولیه برای نصب، به روز رسانی، حذف و مدیریت بسته های نرم افزاری در Red Hat Enterprise Linux است. YUM هنگام نصب، به روز رسانی و حذف بسته های نرم افزاری، وضوح وابستگی را انجام می دهد. YUM می تواند بسته ها را از مخازن نصب شده در سیستم یا بسته های rpm. مدیریت کند. فایل پیکربندی اصلی برای YUM در /etc/yum.conf است و همه مخازن در /etc/yum.repos.d هستند.
مدیریت بسته ها در لینوکس با YUM آسان است. در خط فرمان وارد کنید:
yum -option |
گزینه ها و دستورات زیادی برای استفاده با YUM وجود دارد. من برخی از دستورات رایج برای YUM را در زیر فهرست کرده ام:
هدف فرمان
- yum install بسته های مشخص شده را نصب می کند
- remove بسته های مشخص شده را حذف می کند
- جستجو فراداده بسته را برای کلمات کلیدی جستجو می کند
- توضیحات لیست اطلاعات
- به روز رسانی هر بسته را به آخرین نسخه به روز می کند
- repolist مخازن را فهرست می کند
- تاریخچه آنچه در تراکنش های گذشته اتفاق افتاده را نشان می دهد
موارد زیر گزینههای رایج مورد استفاده در YUM هستند:
- -C از کش سیستم اجرا می شود
- –security شامل بسته هایی است که یک مشکل امنیتی را برطرف می کند
- -y به همه سؤالات بله پاسخ می دهد
- — skip-broken بسته ها را پرش می کند که باعث ایجاد مشکل می شود
- -v پرمخاطب
- گزینه تاریخچه به شما یک نمای کلی از آنچه در تراکنش های گذشته رخ داده است می دهد. این اطلاعات مفیدی را
- ارائه میکند، مانند تاریخی که تراکنش انجام شده و چه دستوری اجرا شده است.
با استفاده از دستور history می توانید برخی از تراکنش ها را لغو یا دوباره انجام دهید. در اینجا مثالی از لغو تراکنش آورده شده است:
yum history undo <id> |
YUM گزینه های زیادی برای مدیریت بسته ارائه می دهد. برای اطلاعات دقیق گزینه، به man yum و yum –help نگاه کنید.
حالت های مختلف RPM (RPM Package Manager)
RPM یک ابزار مدیریت بسته محبوب در توزیعهای مبتنی بر لینوکس Red Hat Enterprise است. با استفاده از RPM، میتوانید بستههای نرمافزاری را نصب، حذف و درخواست کنید. با این حال، نمی تواند وضوح وابستگی را مانند YUM مدیریت کند. RPM خروجی مفیدی را به شما ارائه می دهد، از جمله لیستی از بسته های مورد نیاز. یک بسته RPM از آرشیو فایل ها و ابرداده ها تشکیل شده است. فراداده شامل اسکریپت های کمکی، ویژگی های فایل و اطلاعاتی در مورد بسته ها می شود.
RPM یک پایگاه داده از بسته های نصب شده را حفظ می کند که پرس و جوهای قدرتمند و سریع را امکان پذیر می کند. پایگاه داده RPM داخل /var/lib است و نام فایل __db* است.
RPM چند حالت اساسی دارد: پرس و جو، تأیید، نصب، ارتقاء، پاک کردن، نمایش برچسبها، نمایش پیکربندی. حداقل یکی از این حالت ها باید برای انجام وظایف مدیریت بسته انتخاب شود. هر حالت مجموعه ای از گزینه های خاص خود را دارد. به عنوان مثال، install mode i مجموعه ای از گزینه های نصب خود را دارد. گزینههای حالتها در صفحات مرد RPM با دور در دقیقه یافت میشوند.
حالت های رایج
برخی از حالت های رایج در زیر لیست شده اند:
- -i یک بسته را نصب می کند
- -U یک بسته را ارتقا می دهد
- -e یک بسته را پاک می کند
- -V یک بسته را تأیید می کند
- -q یک بسته را پرس و جو می کند
گزینه های عمومی هدف
در اینجا برخی از گزینه های عمومی رایج وجود دارد:
- -؟ | –help کمک چاپ می کند
- –نسخه شماره نسخه را چاپ می کند
- -v خروجی مفصل را چاپ می کند
برای نصب یا ارتقاء یک بسته rpm با استفاده از RPM، این دستور را صادر کنید:
- rpm -i بسته-فایل
- فایل بسته rpm -U
- فایل بسته rpm -ivh
پرچم -i برای نصب، U برای ارتقا، v برای پرحرف، h برای هش (این گزینه # را به عنوان نوار پیشرفت عملیات نمایش می دهد). در این مثال، v و h پرچم های اختیاری هستند.
برای پرس و جو برای یک بسته با استفاده از مسئله RPM دستور زیر:
query -q rpm |
دور در دقیقه -qa vim افزایش یافته است.
گزینه a تمام بسته های نصب شده روی سیستم را جستجو می کند.
برای پاک کردن بسته، از دستور زیر استفاده کنید:
rpm -e erase-options package-name |
rpm -evh vim بهبود یافته است.
جمع بندی
” مدیریت بسته ها یک وظیفه مشترک برای هر سیستمی است. YUM و RPM راههای کارآمدی را برای نصب، ارتقا، حذف و ردیابی بستههای نرمافزاری در سیستمهای لینوکس Red Hat Enterprise ارائه میکنند. “