20 ตัวอย่างการใช้งานคำสั่ง RPM ใน Linux
RPM (Red Hat Package Manager) เป็นโอเพ่นซอร์สเริ่มต้นและเป็นยูทิลิตี้การจัดการแพ็คเกจที่ได้รับความนิยมสูงสุดสำหรับระบบที่ใช้ Red Hat เช่น (RHEL , CentOS และ Fedora) เครื่องมือนี้ช่วยให้ผู้ดูแลระบบและผู้ใช้สามารถ ติดตั้ง, อัปเดต, ถอนการติดตั้ง, สอบถาม, ยืนยัน และจัดการแพ็คเกจซอฟต์แวร์ระบบในระบบปฏิบัติการ Unix/Linux RPM เดิมชื่อไฟล์ .rpm ซึ่งรวมถึงโปรแกรมซอฟต์แวร์ที่คอมไพล์และไลบรารีที่จำเป็นสำหรับแพ็คเกจ ยูทิลิตี้นี้ใช้งานได้กับแพ็คเกจที่สร้างในรูปแบบ .rpm เท่านั้น
บทความนี้มี ตัวอย่างคำสั่ง 20 RPM ที่มีประโยชน์ซึ่งอาจเป็นประโยชน์กับคุณ ด้วยความช่วยเหลือของคำสั่ง rpm เหล่านี้ คุณสามารถจัดการเพื่อติดตั้ง อัปเดต ลบแพ็คเกจในระบบ Linux ของคุณได้
ข้อเท็จจริงบางประการเกี่ยวกับ RPM (ตัวจัดการแพ็คเกจ RedHat)
- RPM นั้นฟรีและเผยแพร่ภายใต้ GPL (General Public License)
- RPM จะเก็บข้อมูลของแพ็คเกจที่ติดตั้งไว้ทั้งหมดภายใต้ฐานข้อมูล /var/lib/rpm
- RPM เป็นวิธีเดียวที่จะติดตั้งแพ็คเกจภายใต้ระบบ Linux หากคุณได้ติดตั้งแพ็คเกจโดยใช้ซอร์สโค้ด rpm จะไม่จัดการมัน
- RPM เกี่ยวข้องกับไฟล์ .rpm ซึ่งมีข้อมูลจริงเกี่ยวกับแพ็คเกจ เช่น มันคืออะไร, มาจากที่ใด, ข้อมูลการขึ้นต่อกัน, ข้อมูลเวอร์ชัน ฯลฯ
มีโหมดพื้นฐานห้าโหมดสำหรับคำสั่ง RPM
- ติดตั้ง : ใช้สำหรับติดตั้งแพ็คเกจ RPM ใดๆ
- ลบ : ใช้เพื่อลบ ลบ หรือยกเลิกการติดตั้งแพ็คเกจ RPM ใด ๆ
- อัปเกรด : ใช้เพื่ออัปเดตแพ็คเกจ RPM ที่มีอยู่
- ยืนยัน : ใช้เพื่อตรวจสอบแพ็คเกจ RPM
- แบบสอบถาม : ใช้ค้นหาแพ็คเกจ RPM ใด ๆ
จะหาแพ็คเกจ RPM ได้ที่ไหน
ด้านล่างนี้คือรายการไซต์ rpm ซึ่งคุณสามารถค้นหาและดาวน์โหลดแพ็คเกจ RPM ทั้งหมดได้
- http://rpmfind.net
- http://www.redhat.com
- http://freshrpms.net/
- http://rpm.pbone.net/
อ่านเพิ่มเติม :
- 20 ตัวอย่างคำสั่ง YUM ใน Linux
- 10 ตัวอย่างคำสั่ง Wget ใน Linux
- 30 คำสั่ง Linux ที่มีประโยชน์ที่สุดสำหรับผู้ดูแลระบบ
โปรดจำไว้ว่าคุณจะต้องเป็นผู้ใช้ รูท เมื่อติดตั้งแพ็คเกจใน Linux ด้วยสิทธิ์รูท คุณสามารถจัดการคำสั่ง rpm ด้วยตัวเลือกที่เหมาะสมได้
1. วิธีตรวจสอบแพ็คเกจลายเซ็น RPM
ตรวจสอบลายเซ็น PGP ของแพ็คเกจทุกครั้งก่อนที่จะติดตั้งบนระบบ Linux ของคุณ และตรวจสอบให้แน่ใจว่าความสมบูรณ์และที่มาของแพ็คเกจนั้น ตกลง ใช้คำสั่งต่อไปนี้พร้อมกับตัวเลือก –checksig (ตรวจสอบลายเซ็น) เพื่อตรวจสอบลายเซ็นของแพ็คเกจที่เรียกว่า pidgin
[root@tecmint]# 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@tecmint]# rpm -ivh pidgin-2.7.9-5.el6.2.i686.rpm
Preparing... ########################################### [100%]
1:pidgin ########################################### [100%]
คำสั่งและตัวเลือก RPM
- -i : ติดตั้งแพ็คเกจ
- -v : verbose เพื่อการแสดงผลที่สวยงามยิ่งขึ้น
- -h: พิมพ์เครื่องหมายแฮชเมื่อไฟล์เก็บถาวรของแพ็กเกจถูกคลายแพ็ก
3. วิธีตรวจสอบการขึ้นต่อกันของแพ็คเกจ RPM ก่อนทำการติดตั้ง
สมมติว่าคุณต้องการตรวจสอบการพึ่งพาก่อนที่จะติดตั้งหรืออัพเกรดแพ็คเกจ ตัวอย่างเช่น ใช้คำสั่งต่อไปนี้เพื่อตรวจสอบการขึ้นต่อกันของแพ็คเกจ BitTorrent-5.2.2-1-Python2.4.noarch.rpm มันจะแสดงรายการการขึ้นต่อกันของแพ็คเกจ
[root@tecmint]# 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 : ค้นหาแพ็คเกจ
- -p : แสดงรายการความสามารถที่แพ็คเกจนี้มีให้
- -R: แสดงรายการความสามารถที่แพ็คเกจนี้ขึ้นอยู่กับ..
4. วิธีการติดตั้งแพ็คเกจ RPM โดยไม่ต้องพึ่งพา
หากคุณทราบว่าแพ็คเกจที่จำเป็นทั้งหมดได้รับการติดตั้งแล้ว และ RPM นั้นโง่เกินไป คุณสามารถเพิกเฉยต่อการอ้างอิงเหล่านั้นได้โดยใช้ตัวเลือก –nodeps (ไม่มีการตรวจสอบการขึ้นต่อกัน) ก่อนทำการติดตั้ง บรรจุุภัณฑ์.
[root@tecmint]# rpm -ivh --nodeps BitTorrent-5.2.2-1-Python2.4.noarch.rpm
Preparing... ########################################### [100%]
1:BitTorrent ########################################### [100%]
คำสั่งข้างต้นบังคับให้ติดตั้งแพ็คเกจ rpm โดยไม่สนใจข้อผิดพลาดในการอ้างอิง แต่หากไฟล์อ้างอิงเหล่านั้นหายไป โปรแกรมจะไม่ทำงานเลยจนกว่าคุณจะติดตั้ง
5. วิธีตรวจสอบแพ็คเกจ RPM ที่ติดตั้ง
การใช้ตัวเลือก -q พร้อมชื่อแพ็คเกจ จะแสดงว่าติดตั้ง rpm หรือไม่
[root@tecmint]# rpm -q BitTorrent
BitTorrent-5.2.2-1.noarch
6. วิธีแสดงรายการไฟล์ทั้งหมดของแพ็คเกจ RPM ที่ติดตั้ง
หากต้องการดูไฟล์ทั้งหมดของแพ็คเกจ rpm ที่ติดตั้ง ให้ใช้ -ql (รายการข้อความค้นหา) พร้อมด้วยคำสั่ง rpm
[root@tecmint]# 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@tecmint]# 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 ที่ติดตั้งทั้งหมด
พิมพ์คำสั่งต่อไปนี้เพื่อพิมพ์ชื่อทั้งหมดของแพ็คเกจที่ติดตั้งบนระบบ Linux ของคุณ
[root@tecmint]# 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” (อัปเกรด) จะถูกนำมาใช้ ข้อดีที่สำคัญประการหนึ่งของการใช้ตัวเลือกนี้คือ ไม่เพียงแต่จะอัพเกรดเวอร์ชันล่าสุดของแพ็คเกจใด ๆ เท่านั้น แต่ยังจะรักษาการสำรองข้อมูลของแพ็คเกจเก่าไว้ด้วย เผื่อว่าในกรณีที่แพ็คเกจที่อัพเกรดใหม่กว่าไม่ได้รันแพ็คเกจที่ติดตั้งก่อนหน้านี้ สามารถนำมาใช้ใหม่ได้
[root@tecmint]# 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 (ลบ) ใช้เพื่อลบแพ็คเกจ
[root@tecmint]# rpm -evv nx
11. วิธีลบแพ็คเกจ RPM โดยไม่ต้องพึ่งพา
ตัวเลือก –nodeps (อย่าตรวจสอบการขึ้นต่อกัน) บังคับให้ลบแพ็คเกจ rpm ออกจากระบบ แต่โปรดจำไว้ว่าการลบแพ็คเกจบางตัวออกอาจทำให้แอพพลิเคชั่นอื่น ๆ ที่ทำงานเสียหายได้
[root@tecmint]# rpm -ev --nodeps vsftpd
12. วิธีการสืบค้นไฟล์ที่เป็นของ RPM Package ใด
สมมติว่าคุณมีรายการไฟล์และต้องการทราบว่าแพ็คเกจใดเป็นของไฟล์เหล่านี้ ตัวอย่างเช่น คำสั่งต่อไปนี้ที่มีตัวเลือก -qf (query file) จะแสดงให้คุณเห็นว่าไฟล์ /usr/bin/htpasswd เป็นของแพ็คเกจ httpd-tools-2.2.15-15.el6.centos.1.i686
[root@tecmint]# rpm -qf /usr/bin/htpasswd
httpd-tools-2.2.15-15.el6.centos.1.i686
13. วิธีการสืบค้นข้อมูลของแพ็คเกจ RPM ที่ติดตั้ง
สมมติว่าคุณได้ติดตั้งแพ็คเกจ rpm และต้องการทราบข้อมูลเกี่ยวกับแพ็คเกจ ตัวเลือก -qi (ข้อมูลการสืบค้น) ต่อไปนี้จะพิมพ์ข้อมูลที่มีอยู่ของแพ็คเกจที่ติดตั้ง
[root@tecmint]# 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 (แพ็คเกจข้อมูลการสืบค้น) จะพิมพ์ข้อมูลของแพ็คเกจ sqlbuddy
[root@tecmint]# 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 (ไฟล์เอกสารแบบสอบถาม) จะแสดงหน้าคู่มือที่เกี่ยวข้องกับแพ็คเกจ vmstat
[root@tecmint]# 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 (ยืนยันแพ็คเกจ) ใช้ในการตรวจสอบแพ็คเกจ
[root@tecmint downloads]# rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm
S.5....T. c /etc/httpd/conf.d/sqlbuddy.conf
17. วิธีการตรวจสอบแพ็คเกจ RPM ทั้งหมด
พิมพ์คำสั่งต่อไปนี้เพื่อตรวจสอบแพ็คเกจ rpm ที่ติดตั้งทั้งหมด
[root@tecmint]# 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 โดยดำเนินการคำสั่งต่อไปนี้ มันจะนำเข้าคีย์ GPG CentOS 6
[root@tecmint]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
19. วิธีแสดงรายการคีย์ RPM GPG ที่นำเข้าทั้งหมด
หากต้องการพิมพ์คีย์ GPG ที่นำเข้าทั้งหมดในระบบของคุณ ให้ใช้คำสั่งต่อไปนี้
[root@tecmint]# 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@tecmint]# cd /var/lib
[root@tecmint]# rm __db*
[root@tecmint]# rpm --rebuilddb
[root@tecmint]# rpmdb_verify Packages