คู่มือพื้นฐานการใช้ RPM (Red Hat Package Manager) สำหรับติดตั้ง อัปเกรด ถอน และค้นหาแพ็กเกจใน RHEL, CentOS, Fedora, Rocky, AlmaLinux
💡 เคล็ดลับ: ในการใช้งานจริง แนะนำให้ใช้ YUM/DNF แทน RPM โดยตรง เพราะจัดการ Dependency ให้อัตโนมัติ RPM ใช้เมื่อต้องการควบคุมระดับต่ำ หรือแก้ปัญหาเฉพาะเจาะจง
ค้นหาและแสดงแพ็กเกจ
| คำสั่ง | คำอธิบาย |
|---|---|
rpm -qa | แสดงแพ็กเกจที่ติดตั้งทั้งหมด |
rpm -qa | grep php | ค้นหาแพ็กเกจที่ติดตั้งแล้ว (filter ด้วย grep) |
rpm -qi <package> | แสดงรายละเอียดแพ็กเกจที่ติดตั้ง |
rpm -ql <package> | แสดงไฟล์ทั้งหมดในแพ็กเกจ |
rpm -qc <package> | แสดงเฉพาะไฟล์ config |
rpm -qd <package> | แสดงเฉพาะไฟล์ documentation |
rpm -qR <package> | แสดง Dependencies (สิ่งที่แพ็กเกจต้องการ) |
rpm -q --provides <package> | แสดงสิ่งที่แพ็กเกจให้บริการ (capabilities) |
rpm -qp <file.rpm> | ดูข้อมูลจากไฟล์ .rpm ที่ยังไม่ติดตั้ง |
ติดตั้งและอัปเกรด
# ติดตั้งใหม่
rpm -ivh package-name.rpm
# -i = install, -v = verbose, -h = hash marks (progress)
# อัปเกรด (ติดตั้งใหม่หายังไม่มี, อัปเกรดถ้ามีอยู่แล้ว)
rpm -Uvh package-name.rpm
# ติดตั้งหลายไฟล์พร้อมกัน (จัดการ dependency เอง)
rpm -ivh *.rpm
ถอนแพ็กเกจ
# ถอนแพ็กเกจ
rpm -e package-name
# ถอนแบบไม่ตรวจสอบ dependency (อันตราย!)
rpm -e --nodeps package-name
# ทดสอบการถอน (dry run)
rpm -e --test package-name
ตรวจสอบและแก้ไขปัญหา
# ตรวจสอบความสมบูรณ์ของแพ็กเกจ
rpm -V package-name
# S = Size changed, M = Mode changed, 5 = MD5 changed, D = Device changed
# L = readLink changed, U = User changed, G = Group changed, T = mTime changed
# สร้างฐานข้อมูล RPM ใหม่ (หากเสียหาย)
rpm --rebuilddb
Dependency Hell และการแก้ไข
- RPM ไปไม่จัดการ dependency ให้ → ต้องหาและติดตั้ง dependency เอง
- ใช้
rpm -qRp package.rpmดู dependency ก่อนติดตั้ง - ดาวน์โหลด dependency จาก rpmfind.net หรือ pkgs.org
- แนะนำ: ใช้
yum localinstall package.rpmหรือdnf install package.rpmแทน - จะดึง dependency ให้อัตโนมัติ
แหล่งดาวน์โหลด RPM
- pkgs.org - ค้นหาแพ็กเกจทุก distro
- rpmfind.net - แหล่งเก่าแต่ครบ
- Official repos:
yumdownloader --resolve packageดาวน์โหลดพร้อม dependency
RPM เป็นพื้นฐานของการจัดการแพ็กเกจใน Red Hat family การเข้าใจ RPM ช่วยแก้ปัญหาได้เมื่อ YUM/DNF ไม่ทำงาน หรือต้องการควบคุมรายละเอียด