Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> สมาร์ทโฟน >> Linux

วิธีติดตั้งและจัดการแพ็กเกจใน Linux ด้วย RPM

คู่มือพื้นฐานการใช้ 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 ไม่ทำงาน หรือต้องการควบคุมรายละเอียด