RPM یا Red Hat Package Manager یکی از ابزارهای مدیریت پکیج (نصب، حذف، آپدیت و ..) و پیش فرض اوپن سورس برای سیستم های مبتنی بر ردهت می باشد مانند (RHEL, CentOS and Fedora) . این ابزار به مدیران سیستم و کاربران اجازه می دهد تا عملیات install, update, uninstall, query, verify و مدیریت بسته های نرم افزاری سیستم در سیستم عامل های لینوکس/یونیکس را انجام دهند. RPM قبلا به نام فایل .rpm شناخته می شد، که شامل برنامه های نرم افزاری کامپایل شده و کتابخانه های مورد نیاز توسط بسته ها بود. این ابزار فقط با بسته هایی کار می کند که به صورت فرمت .rpm ساخته شده اند.
این مقاله 20 دستور مفید RPM را که ممکن است برایتان مفید باشد توضیح خواهد داد. با کمک این دستورات rpm شما می توانید بسته ها را در سیستم لینوکسی تان نصب، آپدیت، حذف کنید.
چند واقعیت در باره RPM یا RedHat Package Manager
5 تا مد اصلی برای دستورات RPM داریم
Install : برای نصب هر بسته rmp به کار می رود.
Remove : برای erase، remove ، un-installکردن بسته های rpm به کار می رود.
Upgrade : برای آپدیت بسته های rpm موجود به کار می رود.
Verify : برای کوئری بسته های مختلف rpm استفاده می شود.
Query : برای verify کردن بسته های rpm به کار می رود . (((توضیح: فکر کنم جای این دو سطر اشتباهه)))
کجا پکیج های rpm را بیابیم
در زیر لیست سایتهای rpm موجود است، که شما می توانید بسته های rpm را پیدا کنید و دانلود کنید.
همچنین توصیه میشود مطالعه کنید :
دستور yum در توزیع های لینوکس RHEL/CentOS برای مدیریت پکیج ها به همراه 20 مثال عملی
دستور apt در توزیع های لینوکس Debian/Ubuntu برای مدیریت پکیج ها به همراه 15 مثال عملی
شما باید یوزر root باشید تا بتوانید بسته ها را در لینوکس نصب کنید، با مجوز root می توانید دستورات rpm را به همراه آپشن هایش مدیریت کنید.
1. چگونه signature بسته rpm را چک کنیم
همیشه قبل از نصب بسته ها در لینوکس PGP signature آن را چک کنید و از سازگار بودن آن و اصل بودن آن اطمینان حاصل کنید.دستور زیر را به همراه آپشن –checksig (check signature) برای چک signature بسته pidgin به کار ببرید.
2. چطور یک بسته rpm را نصب کنیم
برای نصب یک بسته نرم افزاری rpm ، از دستور زیر با آپشن –i استفاده کنید. برای مثال، بسته rpm به نام pidgin-2.7.9-5.el6.2.i686.rpm را نصب کنید.
دستورات rpm و آپشن هایش
3. چطور پیش نیازهای یک بسته rpm را قبل از نصب چک کنیم
به فرض می خواهیم قبل از نصب وابستگی های یک بسته را چک کنیم. برای مثال، می خواهیم وابستگی بسته BitTorrent-5.2.2-1-Python2.4.noarch.rpm را با دستور زیر چک کنیم. در پایین لیست وابستگی های بسته نمایش داده شده است.
دستورات و آپشن های rpm
4. نحوه نصب بسته rpm بدون پیش نیازها
اگر شما می دانید که تمام بسته های مورد نیاز نصب شده اند ، شما می توانید وابستگی ها را با استفاده از آپشن –nodeps (no dependencies check) قبل از نصب بسته نادیده بگیرید.
دستور بالا بسته rpm را بدون در نظر گرفتن ارورهای وابستگی نصب خواهد کرد، اما اگر فایلهای وابستگی موجود نباشند، آن موقع برنامه اصلا کار نخواهد کرد، مگر اینکه آنها را نصب کنید.
5. چگونه یک بسته rpm نصب شده را چک کنیم
استفاده از آپشن –q با نام بسته، نشان می دهد که بسته نصب هست یا نه.
6. لیست کردن تمام فایلهای نصب شده یک بسته rpm
برای دیدن تمام فایلهای یک بسته rpm نصب شده، از آپشن -ql (query list) به همراه دستور rpm استفاده کنید.
7. لیست کردن بسته های rpm که اخیرا نصب شده
دستور زیر را با آپشن -qa (query all) استفاده کنید، که تمام بسته های rpm اخیر نصب شده را نمایش خواهد داد.
8. لیست کردن تمام بسته های rpm نصب شده
دستور زیر را برای دیدن کل بسته های rpm نصب شده بر روی سیستم لینوکس تایپ کنید.
9. نحوه آپگرید یک بسته rpm
برای این کار از آپشن “–U” (upgrade) استفاده کنید. یکی از فواید استفاده از این آپشن این است که نه تنها بسته را به آخرین ورژن آپگرید می کند، بلکه یک بک آپ ازبسته قدیمی را نگه می دارد تا اگر بسته جدید آپگرید شده اجرا نشد نسخه قدیمی را اجرا کند.
10. نحوه حذف یک بسته rpm
برای un install کردن یک بسته rpm ، برای مثال نام بسته را nx در نظر می گیریم، نه نام اصلی بسته را nx-3.5.0-2.el6.centos.i686.rpm . از آپشن -e (erase) برای حذف بسته بهره می گیریم.
11. نحوه حذف یک بسته rpm بدون پیش نیازها
آپشن –nodeps (Do not check dependencies) بسته rpm را به اجبار از سیستم حذف می کند. اما در نظر بگیرید با این کار شاید دیگر اپلیکیشت ها نیز از کار بیافتند.
12. یک فایل به کدام بسته rpm تعلق دارد
به فرض، شما لیست فایلها را دارید و می خواهید ببینید که این فایله به کدام بسته ها متعلق هستند. برای مثال، دستور زیر با آپشن -qf (query file) به شما نشان می دهد که فایل /usr/bin/htpasswd به بسته httpd-tools-2.2.15-15.el6.centos.1.i686 تعلق دارد.
13. به دست آوردن اطلاعات یک بسته rpm نصب شده
به فرض شما بسته ای را نصب کرده اید و می خواهید اطلاعاتی در مورد آن بسته به دست بیاورید. آپشن -qi (query info) اطلاعات موجود بسته نصب شده را چاپ می کند.
14. به دست آوردن اطلاعات از بسته rpm قبل از نصب
شما یک بسته را از اینترنت دانلود کرده اید و می خواهید قبل از نصب اطلاعاتی از آن به دست آورید. برای مثال، آپشن زیر -qip (query info package) اطلاعاتی در باره بسته sqlbuddy را چاپ خواهد کرد.
15. گرفتن کوئری از داکیومنت بسته rpm نصب شده
برای به دست اوردن داکیومنت های موجود یک بسته نصب شده، از دستور زیر با آپشن -qdf (query document file) استفاده کنید تا صفحه های manual مربوط به بسته vmstat را نمایش دهد.
16. نحوه verify کردن یک بسته rpm
Verifying یعنی مقایسه اطلاعات فایل های نصب شده از پکیج با دیتابیس rpm. -Vp (verify package) برای verify کردن یک پکیج استفاده می شود.
17. نحوه verify کردن تمام بسته های rpm
دستور زیر را برای verify کردن تمام بسته های نصب شده rpm تایپ کنید.
18. چگونه یک کلید RPM GPG را وارد کنیم
برای verify کردن بسته های RHEL/CentOS/Fedora، شما باید یک کلید GPG وارد کنید. برای این کار، دستور زیر را وارد کنید. این دستور کلید CentOS 6 GPG را وارد خواهد کرد.
19. چگونه تمام کلیدهای RPM GPG وارد شده را لیست کنیم
برای این کار از دستور زیر استفاده کنید.
20. چگونه دیتابیس rpm خراب شده را دوباره بسازیم
بعضی اوقات دیتابیس rpm خراب می شود و تمام فعالیت های rpm و اپلیکیشن های دیگر سیستم را استاپ می کند. بنابراین لازم است دیتابیس rpm را دوباره بسازیم و آن را restore کنیم .برای این کار از دستور زیر استفاده کنید.
همچنین توصیه میشود مطالعه کنید :
دستور dpkg برای مدیریت بسته های .deb در Debian/Ubuntu به همراه 15 مثال عملی
امیدوارم از مطالعه این مقاله لذت برده باشید. فراموش نکنید نکات و ترفندهای دیگر خود را با ما به اشتراک بگذارید.
این مقاله 20 دستور مفید RPM را که ممکن است برایتان مفید باشد توضیح خواهد داد. با کمک این دستورات rpm شما می توانید بسته ها را در سیستم لینوکسی تان نصب، آپدیت، حذف کنید.
چند واقعیت در باره RPM یا RedHat Package Manager
- RPM رایگان هست و تحت GPL یا General Public License انتشار یافته است.
- RPM اطلاعات تمام بسته های نصب شده را در دیتابیس ، مسیر /var/lib/rpm نگه داری می کند.
- RPM تنهاترین راه برای نصب بسته ها در سیستم های لینوکسی است ، اگر شما بسته ای را توسط سورس کد نصب کرده باشید ، rpm آن را مدیریت نخواهد کرد.
- RPM با فایلهای .rpm سر وکار دارد، که شامل اطلاعات واقعی درباره بسته هاست مانند : چه چیزی هست، از کجا آمده است، اطلاعات وابستگی، اطلاعات ورژن ...
5 تا مد اصلی برای دستورات RPM داریم
Install : برای نصب هر بسته rmp به کار می رود.
Remove : برای erase، remove ، un-installکردن بسته های rpm به کار می رود.
Upgrade : برای آپدیت بسته های rpm موجود به کار می رود.
Verify : برای کوئری بسته های مختلف rpm استفاده می شود.
Query : برای verify کردن بسته های rpm به کار می رود . (((توضیح: فکر کنم جای این دو سطر اشتباهه)))
کجا پکیج های rpm را بیابیم
در زیر لیست سایتهای rpm موجود است، که شما می توانید بسته های rpm را پیدا کنید و دانلود کنید.
همچنین توصیه میشود مطالعه کنید :
دستور yum در توزیع های لینوکس RHEL/CentOS برای مدیریت پکیج ها به همراه 20 مثال عملی
دستور apt در توزیع های لینوکس Debian/Ubuntu برای مدیریت پکیج ها به همراه 15 مثال عملی
شما باید یوزر root باشید تا بتوانید بسته ها را در لینوکس نصب کنید، با مجوز root می توانید دستورات rpm را به همراه آپشن هایش مدیریت کنید.
1. چگونه signature بسته rpm را چک کنیم
همیشه قبل از نصب بسته ها در لینوکس PGP signature آن را چک کنید و از سازگار بودن آن و اصل بودن آن اطمینان حاصل کنید.دستور زیر را به همراه آپشن –checksig (check signature) برای چک signature بسته pidgin به کار ببرید.
کد:
[root@linux-zone]# 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@linux-zone]# rpm -ivh pidgin-2.7.9-5.el6.2.i686.rpm Preparing... ########################################### [100%] 1:pidgin ########################################### [100%]
- -i : نصب یک بسته
- -v : برای نمایش اطلاعات بیشتر
- -h : همین که بسته unpack می شود پیشرفت آن را با هش مارک نشان می دهد.
3. چطور پیش نیازهای یک بسته rpm را قبل از نصب چک کنیم
به فرض می خواهیم قبل از نصب وابستگی های یک بسته را چک کنیم. برای مثال، می خواهیم وابستگی بسته BitTorrent-5.2.2-1-Python2.4.noarch.rpm را با دستور زیر چک کنیم. در پایین لیست وابستگی های بسته نمایش داده شده است.
کد:
[root@linux-zone]# 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
- -q : کوئری یک بسته
- -p : لیست توانایی های بسته مورد نظر
- -R : لیست تواناییهایی که این بسته وابسته است.
4. نحوه نصب بسته rpm بدون پیش نیازها
اگر شما می دانید که تمام بسته های مورد نیاز نصب شده اند ، شما می توانید وابستگی ها را با استفاده از آپشن –nodeps (no dependencies check) قبل از نصب بسته نادیده بگیرید.
کد:
[root@linux-zone]# rpm -ivh --nodeps BitTorrent-5.2.2-1-Python2.4.noarch.rpm Preparing... ########################################### [100%] 1:BitTorrent ########################################### [100%]
5. چگونه یک بسته rpm نصب شده را چک کنیم
استفاده از آپشن –q با نام بسته، نشان می دهد که بسته نصب هست یا نه.
کد:
[root@linux-zone]# rpm -q BitTorrent BitTorrent-5.2.2-1.noarch
6. لیست کردن تمام فایلهای نصب شده یک بسته rpm
برای دیدن تمام فایلهای یک بسته rpm نصب شده، از آپشن -ql (query list) به همراه دستور rpm استفاده کنید.
کد:
[root@linux-zone]# 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 که اخیرا نصب شده
دستور زیر را با آپشن -qa (query all) استفاده کنید، که تمام بسته های rpm اخیر نصب شده را نمایش خواهد داد.
کد:
[root@linux-zone]# 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 نصب شده
دستور زیر را برای دیدن کل بسته های rpm نصب شده بر روی سیستم لینوکس تایپ کنید.
کد:
[root@linux-zone]# 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
برای این کار از آپشن “–U” (upgrade) استفاده کنید. یکی از فواید استفاده از این آپشن این است که نه تنها بسته را به آخرین ورژن آپگرید می کند، بلکه یک بک آپ ازبسته قدیمی را نگه می دارد تا اگر بسته جدید آپگرید شده اجرا نشد نسخه قدیمی را اجرا کند.
کد:
[root@linux-zone]# rpm -Uvh nx-3.5.0-2.el6.centos.i686.rpm Preparing... ########################################### [100%] 1:nx ########################################### [100%]
10. نحوه حذف یک بسته rpm
برای un install کردن یک بسته rpm ، برای مثال نام بسته را nx در نظر می گیریم، نه نام اصلی بسته را nx-3.5.0-2.el6.centos.i686.rpm . از آپشن -e (erase) برای حذف بسته بهره می گیریم.
کد:
[root@linux-zone]# rpm -evv nx
11. نحوه حذف یک بسته rpm بدون پیش نیازها
آپشن –nodeps (Do not check dependencies) بسته rpm را به اجبار از سیستم حذف می کند. اما در نظر بگیرید با این کار شاید دیگر اپلیکیشت ها نیز از کار بیافتند.
کد:
[root@linux-zone]# rpm -ev --nodeps vsftpd
12. یک فایل به کدام بسته rpm تعلق دارد
به فرض، شما لیست فایلها را دارید و می خواهید ببینید که این فایله به کدام بسته ها متعلق هستند. برای مثال، دستور زیر با آپشن -qf (query file) به شما نشان می دهد که فایل /usr/bin/htpasswd به بسته httpd-tools-2.2.15-15.el6.centos.1.i686 تعلق دارد.
کد:
[root@linux-zone]# rpm -qf /usr/bin/htpasswd httpd-tools-2.2.15-15.el6.centos.1.i686
13. به دست آوردن اطلاعات یک بسته rpm نصب شده
به فرض شما بسته ای را نصب کرده اید و می خواهید اطلاعاتی در مورد آن بسته به دست بیاورید. آپشن -qi (query info) اطلاعات موجود بسته نصب شده را چاپ می کند.
کد:
[root@linux-zone]# 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 info package) اطلاعاتی در باره بسته sqlbuddy را چاپ خواهد کرد.
کد:
[root@linux-zone]# 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@linux-zone]# 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. نحوه verify کردن یک بسته rpm
Verifying یعنی مقایسه اطلاعات فایل های نصب شده از پکیج با دیتابیس rpm. -Vp (verify package) برای verify کردن یک پکیج استفاده می شود.
کد:
[root@linux-zone downloads]# rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm S.5....T. c /etc/httpd/conf.d/sqlbuddy.conf
17. نحوه verify کردن تمام بسته های rpm
دستور زیر را برای verify کردن تمام بسته های نصب شده rpm تایپ کنید.
کد:
[root@linux-zone]# 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 را وارد کنیم
برای verify کردن بسته های RHEL/CentOS/Fedora، شما باید یک کلید GPG وارد کنید. برای این کار، دستور زیر را وارد کنید. این دستور کلید CentOS 6 GPG را وارد خواهد کرد.
کد:
[root@linux-zone]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
19. چگونه تمام کلیدهای RPM GPG وارد شده را لیست کنیم
برای این کار از دستور زیر استفاده کنید.
کد:
[root@linux-zone]# 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 را دوباره بسازیم و آن را restore کنیم .برای این کار از دستور زیر استفاده کنید.
کد:
[root@linux-zone]# cd /var/lib [root@linux-zone]# rm __db* [root@linux-zone]# rpm --rebuilddb [root@linux-zone]# rpmdb_verify Packages
همچنین توصیه میشود مطالعه کنید :
دستور dpkg برای مدیریت بسته های .deb در Debian/Ubuntu به همراه 15 مثال عملی
امیدوارم از مطالعه این مقاله لذت برده باشید. فراموش نکنید نکات و ترفندهای دیگر خود را با ما به اشتراک بگذارید.