Hướng dẫn này giải thích cách sử dụng RPM (Red Hat Package Manager) để cài đặt, nâng cấp, gỡ bỏ và truy vấn gói phần mềm trên các bản phân phối cơ trên Red Hat (RHEL, CentOS, Fedora, Rocky, Alma).
RPM là trình quản lý gói cấp thấp (low-level) – không tự động giải quyết phụ thuộc. Công cụ cấp cao hơn như YUM/DNF khuyến khích dùng cho tác vụ hàng ngày. RPM hữu ích khi cần kiểm soát tinh vi hoặc khắc phục sự cố.
Truy vấn gói đã cài đặt
Liệt kê tất cả
# rpm -qa
Kết quả rất dài. Kết hợp grep để lọc:
# rpm -qa | grep php
php-pdo-5.2.0-1.rhel4.ct
php-mbstring-5.2.0-1.rhel4.ct
php-mysql-5.2.0-1.rhel4.ct
php-imap-5.2.0-5
php-5.2.0-1.rhel4.ct
php-cli-5.2.0-1.rhel4.ct
php-gd-5.2.0-1.rhel4.ct
Truy vấn chi tiết một gói
# rpm -qi php # Thông tin gói (mô tả, phiên bản, nhà xây dựng...)
# rpm -ql php # Liệt kê TẤT CẢ tệp thuộc gói
# rpm -qc php # Chỉ liệt kê tệp CẤU HÌNH (config files)
# rpm -qd php # Chỉ liệt kê tệp TÀI LIỆU (doc)
# rpm -qR php # Phụ thuộc (requires)
# rpm -q --provides php # Capability mà gói cung cấp
Kiểm tra gói sở hữu tệp
# rpm -qf /usr/bin/php
php-5.2.0-1.rhel4.ct
Kiểm tra chữ ký/gpg
# rpm -K package.rpm
Cài đặt và nâng cấp
Tải file .rpm từ rpmfind.net, pkgs.org, hoặc repo chính thức.
# rpm -ivh package-name.rpm # Cài mới (-i install, -v verbose, -h hash/progress)
# rpm -Uvh package-name.rpm # Nâng cấp (-U upgrade: cài mới nếu chưa có, hoặc nâng cấp nếu đã có)
# rpm -Fvh package-name.rpm # Freshen: chỉ nâng cấp nếu gói ĐÃ CÓ sẵn
Dependency hell: RPM sẽ báo lỗi thiếu phụ thuộc. Bạn phải tự tìm và cài các gói phụ thuộc trước. Khuyến khích dùng dnf install ./package.rpm – tự động kéo phụ thuộc từ repo.
Gỡ cài đặt
# rpm -e package-name # Gỡ (e = erase)
# rpm -e --nodeps package-name # Bỏ qua kiểm tra phụ thuộc (NGUY HIỂM)
Lưu ý: Tên gói gỡ là tên gói RPM (như php), KHÔNG PHẢI tên file .rpm.
Xác thực hệ thống
# rpm -Va # Verify all: kiểm tra toàn bộ tệp hệ thống so với database RPM (checksum, quyền, owner, kích thước...)
Ký hiệu đầu ra: S (Size), M (Mode), 5 (MD5), D (Device), L (Link), U (User), G (Group), T (mTime), c (config), g (ghost).
Rebuild database RPM (khi hỏng)
# rpm --rebuilddb
Tóm tắt: Khi nào dùng RPM vs DNF/YUM?
| Tác vụ | Công cụ khuyến nghị |
|---|---|
| Cài đặt gói từ repo | dnf / yum |
| Cài file .rpm cục bộ | dnf install ./file.rpm (tự giải quyết dep) / rpm -ivh (thủ công) |
| Truy vấn thông tin gói | rpm -qi/ql/qc/qR/qf |
| Xác thực toàn vẹn hệ thống | rpm -Va |
| Gỡ cài đặt | dnf remove / rpm -e |