Tổng hợp lệnh rpm trên Linux kèm bảng tra
Hướng dẫn Linux Server · cập nhật 22/08/2026
Lệnh rpm quản lý gói phần mềm trên các bản Linux dòng Red Hat: cài, gỡ, nâng cấp, tra cứu gói và kiểm tra file thuộc gói nào. Bảng tra ở đầu bài đủ dùng cho hầu hết việc hàng ngày, tra một dòng mất chưa tới mười giây.
Bài này viết cho RHEL, CentOS, AlmaLinux, Rocky Linux và Fedora. Các bản Debian và Ubuntu dùng dpkg với apt, cú pháp khác hẳn nên không áp dụng được.
- Tra bảng bên dưới để chọn đúng tuỳ chọn.
- Chạy lệnh bằng quyền root.
- Kiểm lại bằng một lệnh truy vấn để chắc gói đã đúng trạng thái mong muốn.
Lệnh rpm cài đúng file trong gói và không tự tải gói phụ thuộc. Cài phần mềm mới trên máy đang chạy thì nên dùng yum hoặc dnf. Chỉ dùng rpm khi bạn có sẵn file .rpm trong tay hoặc cần tra cứu thông tin gói đã cài.
Bảng tra lệnh rpm dùng khi nào
Lệnh rpm có năm nhóm chức năng chính, phân biệt bằng chữ cái đầu sau dấu gạch: cài đặt, nâng cấp, gỡ bỏ, truy vấn và xác minh. Bảng dưới liệt kê các tổ hợp dùng nhiều nhất, đủ cho phần lớn việc quản trị máy chủ hàng ngày.
| Việc cần làm | Lệnh | Ghi chú |
|---|---|---|
| Cài một gói từ file | rpm -ivh file.rpm | Báo lỗi nếu gói đã có |
| Nâng cấp hoặc cài mới | rpm -Uvh file.rpm | Chưa có thì cài, có rồi thì thay |
| Chỉ nâng cấp gói đã có | rpm -Fvh file.rpm | Chưa cài thì bỏ qua |
| Gỡ một gói | rpm -e tengoi | Dùng tên gói, không dùng tên file |
| Liệt kê mọi gói đã cài | rpm -qa | Kết hợp grep để lọc |
| Kiểm tra một gói đã cài chưa | rpm -q tengoi | Phải gõ đúng tên gói |
| Xem thông tin chi tiết gói | rpm -qi tengoi | Phiên bản, ngày cài, nhà phát hành |
| Liệt kê file trong gói | rpm -ql tengoi | Đường dẫn đầy đủ từng file |
| Tra file này thuộc gói nào | rpm -qf /duong/dan | Ngược lại của -ql |
| Xem gói cài gần đây nhất | rpm -qa --last | Sắp theo thời gian giảm dần |
| Xem gói phụ thuộc của một gói | rpm -qR tengoi | Danh sách yêu cầu để chạy được |
| Xác minh file có bị sửa không | rpm -V tengoi | Im lặng nghĩa là nguyên vẹn |
| Xem file cấu hình của gói | rpm -qc tengoi | Lọc riêng file config |
| Đọc thông tin từ file chưa cài | rpm -qip file.rpm | Thêm p để hỏi vào file |
Ba chữ cái đi kèm hầu hết mọi lệnh cài: -v in chi tiết quá trình, -h vẽ thanh tiến trình bằng dấu thăng, --test chạy thử mà không đụng vào hệ thống.
Cài và nâng cấp gói bằng lệnh rpm
Cài gói là chép các file trong gói vào đúng vị trí trên máy và ghi bản kê vào cơ sở dữ liệu ở /var/lib/rpm. Trước khi chép, rpm kiểm tra kiến trúc máy, phiên bản hệ điều hành và các gói phụ thuộc. Thiếu một điều kiện là nó dừng lại và in ra thứ còn thiếu.
1. Cài gói mới
rpm -ivh wget-1.14-18.el7_6.1.x86_64.rpm
Preparing... ########################################### [100%]
1:wget ########################################### [100%]
Tên file gói gồm bốn phần: tên gói, phiên bản, số bản phát hành và kiến trúc. Với wget-1.14-18.el7_6.1.x86_64.rpm thì gói là wget, phiên bản 1.14, bản phát hành 18 dành cho el7, chạy trên kiến trúc x86_64.
2. Nâng cấp lên bản mới hơn
rpm -Uvh wget-1.19.5-7.el8_0.1.x86_64.rpm
Tuỳ chọn -U gỡ bản cũ rồi cài bản mới trong một lượt, giữ lại file cấu hình đã sửa bằng cách đổi tên thành .rpmsave. Máy chưa có gói đó thì -U cài mới luôn, nên dùng được cả hai trường hợp.
3. Chạy thử trước khi cài thật
rpm -ivh --test tengoi.rpm
Lệnh này kiểm tra hết điều kiện rồi in ra thứ còn thiếu mà không chép file nào. Nên chạy trước mỗi lần cài gói trên máy chủ đang phục vụ, để biết trước có vướng phụ thuộc hay xung đột file với gói khác hay không.
Truy vấn gói và tra ngược file thuộc gói nào
Nhóm lệnh truy vấn bắt đầu bằng -q và không đụng gì vào hệ thống, chạy được bằng tài khoản thường. Đây là nhóm dùng nhiều nhất khi tìm hiểu một máy chủ lạ: xem đang cài gì, phiên bản bao nhiêu, file này ở đâu ra.
Tìm xem một phần mềm đã có trên máy chưa:
rpm -qa | grep -i php
Tra một file đang có trên đĩa thuộc gói nào. Cách này hay dùng khi phát hiện file lạ hoặc cần biết gỡ gói nào thì mất file đó:
rpm -qf /usr/bin/python2.7
python2-2.7.15-24.module_el8.0.0+193+7850e68f.x86_64
Xem toàn bộ file mà một gói đã đặt lên máy:
rpm -ql wget
Liệt kê gói mới cài gần đây, hữu ích khi máy vừa hỏng sau một lần cập nhật và cần biết đợt đó thay những gì:
rpm -qa --last | head -20
Gỡ gói và xử lý phụ thuộc bị vướng
Gỡ gói dùng tuỳ chọn -e kèm tên gói, không kèm tên file và không kèm đuôi kiến trúc. Nếu có gói khác đang cần gói này thì rpm từ chối gỡ và in danh sách gói phụ thuộc, đây là hàng rào bảo vệ chứ không phải lỗi.
rpm -e wget
Thông báo khi vướng phụ thuộc:
error: Failed dependencies:
wget is needed by (installed) some-package-1.0-1.el7.x86_64
Lúc này có hai đường. Đường an toàn là gỡ luôn gói đang phụ thuộc, hoặc dùng yum remove để nó tự tính cả cây phụ thuộc. Đường nhanh nhưng rủi ro là bỏ qua kiểm tra:
rpm -e --nodeps wget
Tuỳ chọn --nodeps để lại các gói khác trong trạng thái thiếu thư viện và chúng sẽ hỏng lúc chạy. Chỉ dùng khi bạn biết chắc gói kia không còn được dùng, hoặc khi đang gỡ để cài ngay bản khác thay thế.
Xác minh gói và nhập khoá GPG
Lệnh rpm -V so từng file của gói với bản kê gốc, phát hiện file bị sửa, bị xoá hay đổi quyền. Không in gì nghĩa là mọi thứ nguyên vẹn. Đây là cách nhanh nhất để kiểm tra máy bị can thiệp sau một sự cố bảo mật.
rpm -V httpd
Có sai lệch thì mỗi dòng bắt đầu bằng một dãy ký tự cho biết thứ đã đổi:
| Ký tự | Nghĩa |
|---|---|
S | Kích thước file đã đổi |
M | Quyền hoặc kiểu file đã đổi |
5 | Nội dung khác bản gốc, sai mã băm MD5 |
T | Thời gian sửa file đã đổi |
U | Chủ sở hữu file đã đổi |
G | Nhóm sở hữu file đã đổi |
c | Đây là file cấu hình, sửa là bình thường |
File cấu hình có chữ c ở cột cuối thì lệch là chuyện đương nhiên vì bạn đã sửa nó. File nhị phân trong /usr/bin mà lệch mã băm mới là dấu hiệu đáng xem lại.
Nhập khoá GPG để công cụ xác thực chữ ký gói trước khi cài:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
rpm -qa gpg-pubkey*
Khi nào dùng rpm và khi nào dùng yum
Lệnh rpm làm việc với đúng file bạn đưa cho nó, không biết gì về kho gói trên mạng và không tự tải gói phụ thuộc. Lệnh yum hoặc dnf đứng một tầng trên, biết hỏi kho gói và tự giải quyết cây phụ thuộc. Chọn sai công cụ là nguồn gốc của phần lớn ca cài dở dang.
| Tình huống | Nên dùng | Vì sao |
|---|---|---|
| Cài phần mềm từ kho chính thức | yum hoặc dnf | Tự tải đủ gói phụ thuộc |
| Có sẵn một file .rpm tải riêng | rpm -ivh | Không cần kho, cài thẳng |
| Tra file thuộc gói nào | rpm -qf | Yum không có lệnh tương đương gọn bằng |
| Gỡ gói kèm mọi thứ phụ thuộc | yum remove | Tính được cả cây phụ thuộc |
| Kiểm tra file bị sửa đổi | rpm -V | Chỉ công cụ này làm được |
| Cập nhật toàn hệ thống | yum update | Xử lý hàng trăm gói một lượt |
Trên máy chủ CentOS 7 và CentOS 8 đã hết vòng đời, yum không hỏi được kho gói cũ nữa. Nếu lệnh yum của bạn báo lỗi tải metadata, sửa theo hướng dẫn fix lỗi Not found trying other mirror trên CentOS 7 trước khi quay lại làm việc với gói.
Điều cần nhớ khi làm việc với gói rpm
Cơ sở dữ liệu gói nằm ở /var/lib/rpm và là thứ duy nhất rpm dựa vào để biết máy đang cài gì. Xoá thư mục này là mất toàn bộ danh sách gói, dựng lại được nhưng mất công. Nếu truy vấn báo lỗi cơ sở dữ liệu hỏng, chạy rpm --rebuilddb để dựng lại chỉ mục.
Trước mỗi lần gỡ gói trên máy chủ đang phục vụ, chạy rpm -q --whatrequires tengoi để xem thứ gì đang cần nó. Một phút kiểm tra đổi lấy việc không phải dựng lại dịch vụ lúc nửa đêm.