در این آموزش 20 مثال عملی از دستورات RPM در لینوکس را بررسی خواهیم کرد! RPM (Red Hat Package Manager) یک منبع باز پیشفرض و محبوبترین ابزار مدیریت بسته برای سیستمهای مبتنی بر Red Hat مانند (RHEL، CentOS و Fedora) است.
این ابزار به مدیران و کاربران سیستم اجازه میدهد تا بستههای نرمافزاری سیستم را در سیستمعاملهای یونیکس/لینوکس نصب، بهروزرسانی، حذف، جستجو، تأیید و مدیریت کنند.
آذرسیس ارائه دهنده سرور مجازی ، سرور اختصاصی و انواع سرور مجازی لینوکس و سرور مجازی ویندوز با بهترین سخت افزار و قیمت مناسب است.
RPM که قبلاً به عنوان فایل rpm. شناخته می شد که شامل برنامه های نرم افزاری کامپایل شده و کتابخانه های مورد نیاز بسته ها می باشد. این ابزار فقط با بسته هایی که بر اساس فرمت rpm. ساخته شده اند کار می کند.
با کمک دستور rpm می توانید موفق به نصب، به روز رسانی، حذف بسته ها در سیستم های لینوکس خود شوید.
فهرست مطالب
20 مثال عملی از دستورات RPM در لینوکس
نکاتی در مورد RPM (RedHat Package Manager)
- RPM رایگان است و تحت GPL (مجوز عمومی عمومی) منتشر شده است.
- RPM اطلاعات تمام بسته های نصب شده را در پایگاه داده /var/lib/rpm نگه می دارد.
- RPM تنها راه نصب بستهها در سیستمهای لینوکس است، اگر بستهها را با استفاده از کد منبع نصب کردهاید، rpm آن را مدیریت نمیکند.
- RPM با فایلهایی سروکار دارد که حاوی اطلاعات واقعی در مورد بستهها مانند: چیست، از کجا آمده است، اطلاعات وابستگیها، اطلاعات نسخه و… است.
پنج حالت اصلی برای دستورات RPM
- Install: برای نصب هر بسته RPM
- Remove: برای پاک کردن، حذف یا حذف هر بسته RPM
- Upgrade: برای به روز رسانی بسته RPM موجود
- Verify: برای تایید بسته های RPM
- Query: برای پرس و جو در هر بسته RPM
نحوه پیدا کردن بسته های دستورات RPM
در زیر لیستی از سایت های rpm وجود دارد که می توانید تمام بسته های RPM را پیدا و دانلود کنید.
- http://rpmfind.net
- http://www.redhat.com
- http://freshrpms.net/
- http://rpm.pbone.net/
لطفاً به یاد داشته باشید که هنگام نصب بسته ها در لینوکس باید کاربر اصلی باشید، با امتیازات root می توانید دستورات rpm را با گزینه های مناسب آنها مدیریت کنید.
1. نحوه بررسی بسته RPM Signature
همیشه PGP signatur بستهها را قبل از نصب آنها در سیستمهای لینوکس خود بررسی کنید و مطمئن شوید که یکپارچگی و منشاء آن صحیح است. از دستور زیر با گزینه –checksig (check signature) برای بررسی signature بسته ای به نام pidgin استفاده کنید.
[root@admin]# 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
2. نحوه نصب بسته RPM
برای نصب بسته نرم افزاری rpm از دستور زیر با گزینه -i استفاده کنید. مثلا بسته rpm به نام pidgin-2.7.9-5.el6.2.i686.rpm. را به صورت زیر نصب کنید.
[root@admin]# rpm -ivh pidgin-2.7.9-5.el6.2.i686.rpm Preparing... ########################################### [100%] 1:pidgin ########################################### [100%]
دستورات RPM + گزینه های موجود
- -i : install a package
- -v : verbose for a nicer display
- -h : print hash marks as the package archive is unpacked
3. نحوه بررسی dependencies بسته ها و دستورات RPM قبل از نصب
فرض کنید می خواهید قبل از نصب یا ارتقاء بسته، dependency را بررسی کنید. برای مثال، از دستور زیر برای بررسی dependencies بسته BitTorrent-5.2.2-1-Python2.4.noarch.rpm استفاده کنیدکه لیستی از وابستگی های بسته را نمایش می دهد.
[root@admin]# rpm -qpR BitTorrent-5.2.2-1-Python2.4.noarch.rpm /usr/bin/python2.4 python >= 2.3 python(abi) = 2.4 python-crypto >= 2.0 python-psyco python-twisted >= 2.0 python-zopeinterface rpmlib(CompressedFileNames) = 2.6
دستورات RPM و گزینه ها
- -q : Query a package
- -p : List capabilities this package provides
- -R : List capabilities on which this package depends
4. نحوه نصب بسته دستورات RPM بدون Dependencies
اگر میدانید که همه بستههای مورد نیاز قبلاً نصب شدهاند و RPM گیج کننده است، میتوانید با استفاده از گزینه –nodeps (بدون بررسی Dependencies) قبل از نصب بسته، وابستگیها را نادیده بگیرید.
[root@admin]# rpm -ivh --nodeps BitTorrent-5.2.2-1-Python2.4.noarch.rpm Preparing... ########################################### [100%] 1:BitTorrent ########################################### [100%]
دستور بالا به اجبار بسته rpm را با نادیده گرفتن خطاهای dependencies نصب می کند، اما اگر فایل های وابستگی از دست رفته باشند، برنامه به هیچ وجه کار نخواهد کرد، تا زمانی که آنها را نصب نکنید.
5. نحوه بررسی بسته دستورات RPM نصب شده
با استفاده از گزینه -q با نام بسته، نشان می دهد که آیا rpm نصب شده است یا خیر.
[root@admin]# rpm -q BitTorrent BitTorrent-5.2.2-1.noarch
6. نحوه فهرست کردن همه فایل های بسته دستورات RPM نصب شده
برای مشاهده تمام فایل های بسته های rpm نصب شده، از -ql (لیست query) با دستور rpm استفاده کنید.
[root@admin]# rpm -ql BitTorrent /usr/bin/bittorrent /usr/bin/bittorrent-console /usr/bin/bittorrent-curses /usr/bin/bittorrent-tracker /usr/bin/changetracker-console /usr/bin/launchmany-console /usr/bin/launchmany-curses /usr/bin/maketorrent /usr/bin/maketorrent-console /usr/bin/torrentinfo-console
7. نحوه فهرست کردن بسته های RPM اخیراً نصب شده
از دستور rpm زیر با گزینه -qa (query all) استفاده کنید، همه بستههای rpm اخیراً نصب شده را فهرست میکند.
[root@admin]# rpm -qa --last BitTorrent-5.2.2-1.noarch Tue 04 Dec 2012 05:14:06 PM BDT pidgin-2.7.9-5.el6.2.i686 Tue 04 Dec 2012 05:13:51 PM BDT cyrus-sasl-devel-2.1.23-13.el6_3.1.i686 Tue 04 Dec 2012 04:43:06 PM BDT cyrus-sasl-2.1.23-13.el6_3.1.i686 Tue 04 Dec 2012 04:43:05 PM BDT cyrus-sasl-md5-2.1.23-13.el6_3.1.i686 Tue 04 Dec 2012 04:43:04 PM BDT cyrus-sasl-plain-2.1.23-13.el6_3.1.i686 Tue 04 Dec 2012 04:43:03 PM BDT
8. نحوه فهرست کردن همه بسته های RPM نصب شده
دستور زیر را تایپ کنید تا تمام نام بسته های نصب شده در سیستم لینوکس شما چاپ شود.
[root@admin]# rpm -qa initscripts-9.03.31-2.el6.centos.i686 polkit-desktop-policy-0.96-2.el6_0.1.noarch thunderbird-17.0-1.el6.remi.i686
9. نحوه ارتقا بسته دستورات RPM
اگر بخواهیم هر بسته RPM را ارتقا دهیم، از گزینه “–U” (upgrade) استفاده خواهد شد. یکی از مزایای اصلی استفاده از این گزینه این است که نه تنها آخرین نسخه هر بسته را ارتقا می دهد، بلکه پشتیبان بسته قدیمی را نیز حفظ می کند تا در صورت عدم اجرای بسته ارتقا یافته جدید، بسته نصب شده قبلی را اجرا و دوباره استفاده کند.
[root@admin]# rpm -Uvh nx-3.5.0-2.el6.centos.i686.rpm Preparing... ########################################### [100%] 1:nx ########################################### [100%]
10. نحوه حذف بسته دستورات RPM
برای حذف نصب بسته RPM، به عنوان مثال، از نام بسته nx استفاده می کنیم، نه از نام بسته اصلی nx-3.5.0-2.el6.centos.i686.rpm. گزینه -e (erase) برای حذف بسته استفاده می شود.
[root@admin]# rpm -evv nx
11. نحوه حذف بسته RPM بدون Dependencies
گزینه –nodeps (Do not check dependencies) بسته rpm را از سیستم حذف می کند. اما به خاطر داشته باشید که حذف بسته خاص ممکن است سایر برنامه های کاربردی را خراب کند.
[root@admin]# rpm -ev --nodeps vsftpd
12. نحوه Query فایل متعلق به بسته دستورات RPM
فرض کنید شما لیستی از فایل ها را دارید و می خواهید بدانید که کدام بسته به این فایل ها تعلق دارد. به عنوان مثال، دستور زیر با گزینه -qf (query file) به شما نشان می دهد که یک فایل /usr/bin/htpasswd متعلق به بسته httpd-tools-2.2.15-15.el6.centos.1.i686 است.
[root@admin]# rpm -qf /usr/bin/htpasswd httpd-tools-2.2.15-15.el6.centos.1.i686
13. نحوه استعلام اطلاعات بسته دستورات RPM نصب شده
فرض کنید یک بسته rpm را نصب کرده اید و می خواهید اطلاعات مربوط به بسته را بدانید. گزینه -qi (اطلاعات query) زیر اطلاعات موجود بسته نصب شده را چاپ می کند.
[root@admin]# rpm -qi vsftpd Name : vsftpd Relocations: (not relocatable) Version : 2.2.2 Vendor: CentOS Release : 11.el6 Build Date: Fri 22 Jun 2012 01:54:24 PM BDT Install Date: Mon 17 Sep 2012 07:55:28 PM BDT Build Host: c6b8.bsys.dev.centos.org Group : System Environment/Daemons Source RPM: vsftpd-2.2.2-11.el6.src.rpm Size : 351932 License: GPLv2 with exceptions Signature : RSA/SHA1, Mon 25 Jun 2012 04:07:34 AM BDT, Key ID 0946fca2c105b9de Packager : CentOS BuildSystem <http://bugs.centos.org> URL : http://vsftpd.beasts.org/ Summary : Very Secure Ftp Daemon Description : vsftpd is a Very Secure FTP daemon. It was written completely from scratch.
14. دریافت اطلاعات بسته RPM قبل از نصب
شما یک بسته را از اینترنت دانلود کرده اید و می خواهید قبل از نصب از اطلاعات یک بسته مطلع شوید. به عنوان مثال، گزینه زیر -qip (پکیج اطلاعات query) اطلاعات یک بسته sqlbuddy را چاپ می کند.
[root@admin]# rpm -qip sqlbuddy-1.3.3-1.noarch.rpm Name : sqlbuddy Relocations: (not relocatable) Version : 1.3.3 Vendor: (none) Release : 1 Build Date: Wed 02 Nov 2011 11:01:21 PM BDT Install Date: (not installed) Build Host: rpm.bar.baz Group : Applications/Internet Source RPM: sqlbuddy-1.3.3-1.src.rpm Size : 1155804 License: MIT Signature : (none) Packager : Erik M Jacobs URL : http://www.sqlbuddy.com/ Summary : SQL Buddy â Web based MySQL administration Description : SQLBuddy is a PHP script that allows for web-based MySQL administration.
15. نحوه درخواست اسناد بسته RPM نصب شده
برای دریافت لیست اسناد موجود از یک بسته نصب شده، از دستور زیر با گزینه -qdf (query document file) استفاده کنید، صفحاتmanual مربوط به بسته vmstat را نمایش می دهد.
[root@admin]# rpm -qdf /usr/bin/vmstat /usr/share/doc/procps-3.2.8/BUGS /usr/share/doc/procps-3.2.8/COPYING /usr/share/doc/procps-3.2.8/COPYING.LIB /usr/share/doc/procps-3.2.8/FAQ /usr/share/doc/procps-3.2.8/NEWS /usr/share/doc/procps-3.2.8/TODO
16. نحوه تایید بسته RPM
تأییدیه بسته، اطلاعات فایل های نصب شده از بسته را با پایگاه داده rpm مقایسه می کند. -Vp (verify package) برای تأیید یک بسته استفاده می شود.
[root@admin downloads]# rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm S.5....T. c /etc/httpd/conf.d/sqlbuddy.conf
17. نحوه تایید تمام بسته های RPM
دستور زیر را برای تایید تمام بسته های rpm نصب شده تایپ کنید.
[root@admin]# rpm -Va S.5....T. c /etc/rc.d/rc.local .......T. c /etc/dnsmasq.conf .......T. /etc/ld.so.conf.d/kernel-2.6.32-279.5.2.el6.i686.conf S.5....T. c /etc/yum.conf S.5....T. c /etc/yum.repos.d/epel.repo
18. نحوه وارد کردن کلید RPM GPG
برای تأیید بستههای RHEL/CentOS/Fedora، باید کلید GPG را وارد کنید. برای این کار دستور زیر را اجرا و کلید CentOS 6 GPG را وارد کنید.
[root@admin]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
19. نحوه فهرست کردن همه کلیدهای RPM GPG وارد شده
برای چاپ تمام کلیدهای GPG وارد شده در سیستم خود از دستور زیر استفاده کنید.
[root@admin]# rpm -qa gpg-pubkey* gpg-pubkey-0608b895-4bd22942 gpg-pubkey-7fac5991-4615767f gpg-pubkey-0f2672c8-4cd950ee gpg-pubkey-c105b9de-4e0fd3a3 gpg-pubkey-00f97f56-467e318a gpg-pubkey-6b8d79e6-3f49313d gpg-pubkey-849c449f-4cb9df30
20. نحوه بازسازی پایگاه داده RPM خراب
گاهی اوقات پایگاه داده rpm خراب می شود و تمام عملکردهای rpm و سایر برنامه های روی سیستم را متوقف می کند. بنابراین، در آن زمان باید پایگاه داده rpm را بازسازی کرده و با کمک دستور زیر آن را بازیابی کنیم.
[root@admin]# cd /var/lib [root@admin]# rm __db* [root@admin]# rpm --rebuilddb [root@admin]# rpmdb_verify Packages
نتیجه گیری
در این آموزش 20 مثال عملی از دستورات RPM در لینوکس را بررسی کردیم. امیدوارم این مقاله برایتان مفید بوده باشد. نظرات خود را از طریق فرم زیر با ما به اشتراک بگذارید.