20 ví dụ thực tế về lệnh RPM Linux

RPM Linux (Red Hat Package Manager) là một công cụ quản lý gói mặc định mã nguồn mở và được sử dụng rộng rãi cho các hệ thống dựa trên Red Hat như CentOS, Fedora, Rocky và Alma Linux.

Công cụ quản lý gói rpm cho phép quản trị viên hệ thống và người dùng cài đặt, cập nhật, gỡ bỏ, truy vấn, xác minh và quản lý các gói phần mềm trên hệ điều hành Unix/Linux, mà trước đây được biết đến là một tệp .rpm chứa các chương trình phần mềm đã được biên dịch và các thư viện cần thiết bởi các gói.

Bài viết này cung cấp 20 ví dụ hữu ích về các lệnh RPM có thể giúp đỡ bạn. Nhờ vào các lệnh RPM này, bạn có thể quản lý việc cài đặt, cập nhật và gỡ bỏ các gói trên hệ thống Linux của bạn.

Thông tin về RPM

Dưới đây là một số thông tin về RPM (Red Hat Package Manager):

  • RPM miễn phí và được phát hành theo Giấy phép Công cộng Chung (GPL).
  • RPM duy trì một cơ sở dữ liệu của tất cả các gói đã cài đặt, lưu thông tin này trong thư mục /var/lib/rpm.
  • RPM hoạt động như phương pháp chính để cài đặt các gói trên hệ thống Linux. Nếu các gói đã được cài đặt bằng mã nguồn, RPM không quản lý chúng.
  • RPM hoạt động với các tệp .rpm, chứa thông tin quan trọng về gói như danh tính, nguồn, phụ thuộc, chi tiết phiên bản và nhiều hơn nữa.

Các chế độ cơ bản cho lệnh RPM

Dưới đây là các chế độ chính cho lệnh RPM:

  • Cài đặt - Lệnh rpm -i cài đặt một gói mới trên hệ thống.
  • Nâng cấp - Lệnh rpm -U cập nhật một gói hiện có lên phiên bản mới hơn.
  • Gỡ bỏ - Lệnh rpm -e gỡ cài đặt hoặc xóa một gói khỏi hệ thống.
  • Truy vấn - Lệnh rpm -q truy vấn cơ sở dữ liệu RPM để lấy thông tin về các gói đã cài đặt.
  • Xác minh - Lệnh rpm -V xác minh tính toàn vẹn của các tệp gói đã cài đặt.
  • Cập nhật - Lệnh rpm -F cập nhật hoặc cài đặt một gói chỉ khi nó đã được cài đặt.
  • Tái tạo cơ sở dữ liệu - Lệnh rpm --rebuilddb tái tạo cơ sở dữ liệu RPM, giải quyết các vấn đề hỏng cơ sở dữ liệu.
  • Nhập khóa GPG - Lệnh rpm --import nhập một khóa GPG được sử dụng để xác minh chữ ký của gói.
  • Truy vấn tất cả - Lệnh rpm -qa liệt kê tất cả các gói đã cài đặt trên hệ thống.
  • Truy vấn tệp tin - Lệnh rpm -ql liệt kê tất cả các tệp tin được cài đặt bởi một gói cụ thể.
  • Truy vấn tài liệu - Lệnh rpm -qd liệt kê các tệp tài liệu được cung cấp bởi một gói.
  • Truy vấn phụ thuộc - Lệnh rpm -qR liệt kê các phụ thuộc chạy thời cho một gói.
  • Truy vấn cung cấp - Lệnh rpm -q --provides liệt kê các khả năng do một gói cung cấp.
  • Truy vấn yêu cầu - Lệnh rpm -q --requires liệt kê các phụ thuộc cần thiết bởi một gói.

Ở đâu để tìm gói RPM

Bạn có thể tìm gói RPM ở một số nơi, tùy thuộc vào phiên bản Linux của bạn. Dưới đây là những địa điểm phổ biến bạn có thể tìm và tải xuống tất cả các gói RPM.

  • http://rpmfind.net
  • http://www.redhat.com
  • https://pkgs.org/
  • http://rpm.pbone.net/

Vui lòng nhớ rằng bạn phải là người dùng root khi cài đặt các gói trên Linux, với quyền root, bạn có thể quản lý các lệnh rpm với các tùy chọn phù hợp.

Các ví dụ thực tế về RPM Linux

1. Cách kiểm tra chữ ký gói RPM Linux

Luôn kiểm tra chữ ký PGP của các gói trước khi cài đặt chúng trên hệ thống Linux của bạn và đảm bảo tính toàn vẹn và nguồn gốc của chúng OK.

Sử dụng lệnh sau với tùy chọn --checksig (kiểm tra chữ ký) để kiểm tra chữ ký của gói được gọi là hardinfo.

rpm --checksig hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm: digests OK

2. Cách cài đặt gói RPM

Để cài đặt một gói phần mềm RPM, sử dụng lệnh sau với tùy chọn -ivh, sẽ cài đặt gói rpm có tên hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm trên hệ thống Linux.

rpm -ivh hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:hardinfo-2.0.11-1                ################################# [100%]

Hãy phân tích các thành phần của lệnh trên:

  • -i : cài đặt một gói
  • -v : hiển thị chi tiết hơn một cách trực quan
  • -h: hiển thị dấu # (hash marks) để chỉnh tiến trình cài đặt.

3. Cách kiểm tra các phụ thuộc của gói RPM trước khi cài đặt

Hãy nói rằng bạn muốn kiểm tra phụ thuộc trước khi cài đặt hoặc nâng cấp một gói. Ví dụ, sử dụng lệnh sau để kiểm tra phụ thuộc của gói hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm.

Lệnh trên truy vấn và hiển thị các phụ thuộc chạy thời được yêu cầu bởi gói "hardinfo", giúp xác định và đảm bảo rằng tất cả các phụ thuộc cần thiết đều được đáp ứng trước khi cài đặt gói.

rpm -qpR hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm
 
libX11.so.6()(64bit)
libatk-1.0.so.0()(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.33)(64bit)
libc.so.6(GLIBC_2.34)(64bit)
libc.so.6(GLIBC_2.38)(64bit)
libc.so.6(GLIBC_2.7)(64bit)
libcairo-gobject.so.2()(64bit)
libcairo.so.2()(64bit)
...

Hãy phân tích các thành phần của lệnh trên:

  • -q : Truy vấn gói.
  • -p : Liệt kê các khả năng mà gói này cung cấp.
  • -R : Liệt kê các khả năng mà gói này phụ thuộc vào.

4. Cách cài đặt gói RPM mà không cần phụ thuộc

Để cài đặt một gói rpm mà không cần phụ thuộc, bạn có thể sử dụng tùy chọn --nodeps, điều này sẽ cài đặt gói RPM một cách bắt buộc mà không kiểm tra hoặc giải quyết các phụ thuộc.

rpm -ivh --nodeps hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

Lệnh trên cài đặt gói rpm một cách bắt buộc bằng cách bỏ qua các lỗi phụ thuộc, nhưng nếu các tệp phụ thuộc đó bị thiếu, thì chương trình sẽ không hoạt động cho đến khi bạn cài đặt chúng.

5. Cách kiểm tra gói RPM đã cài đặt

Để kiểm tra một gói rpm đã được cài đặt, bạn có thể sử dụng tùy chọn -q, điều này sẽ truy vấn và hiển thị thông tin về phiên bản gói đã được cài đặt.

rpm -q hardinfo

hardinfo-2.0.11-1.x86_64

6. Cách tìm nơi gói RPM đã được cài đặt

Để xem tất cả các tệp của một gói rpm đã được cài đặt, sử dụng tùy chọn -ql (liệt kê truy vấn) với lệnh rpm.

rpm -ql hardinfo

/usr/bin/hardinfo2
/usr/lib/.build-id
/usr/lib/.build-id/3a
/usr/lib/.build-id/53
/usr/lib/.build-id/7c
/usr/lib/.build-id/ba
/usr/lib/.build-id/e0
/usr/lib64/hardinfo2
/usr/lib64/hardinfo2/modules
/usr/lib64/hardinfo2/modules/benchmark.so
/usr/lib64/hardinfo2/modules/computer.so
/usr/lib64/hardinfo2/modules/devices.so
/usr/lib64/hardinfo2/modules/network.so
...

7. Cách liệt kê những gói RPM được cài đặt gần đây

Sử dụng lệnh rpm sau với tùy chọn -qa (liệt kê tất cả) sẽ liệt kê tất cả các gói rpm đã được cài đặt gần đây.

rpm -qa --last


hardinfo-2.0.11-1.x86_64                      Mon 04 Mar 2024 01:32:14 PM IST
pipewire-pulseaudio-1.0.3-1.fc39.x86_64       Mon 04 Mar 2024 01:32:02 PM IST
pipewire-jack-audio-connection-kit-1.0.3-1.fc39.x86_64 Mon 04 Mar 2024 01:32:02 PM IST
pipewire-alsa-1.0.3-1.fc39.x86_64             Mon 04 Mar 2024 01:32:02 PM IST
libsoup-devel-2.74.3-3.fc39.x86_64            Mon 04 Mar 2024 01:32:02 PM IST
json-glib-devel-1.8.0-1.fc39.x86_64           Mon 04 Mar 2024 01:32:02 PM IST
gtk3-devel-3.24.41-1.fc39.x86_64              Mon 04 Mar 2024 01:32:02 PM IST
xdg-desktop-portal-gtk-1.15.1-1.fc39.x86_64   Mon 04 Mar 2024 01:32:01 PM IST
xdg-desktop-portal-1.18.2-1.fc39.x86_64       Mon 04 Mar 2024 01:32:01 PM IST
libcanberra-gtk3-0.30-32.fc39.x86_64          Mon 04 Mar 2024 01:32:01 PM IST
gtk3-3.24.41-1.fc39.x86_64                    Mon 04 Mar 2024 01:32:01 PM IST
...

8. Cách liệt kê tất cả gói RPM đã cài đặt

Gõ lệnh sau để in tất cả tên các gói đã cài đặt trên hệ thống Linux của bạn.

rpm -qa

fonts-filesystem-2.0.5-12.fc39.noarch
libreport-filesystem-2.17.11-3.fc39.noarch
hunspell-filesystem-1.7.2-5.fc39.x86_64
abattis-cantarell-vf-fonts-0.301-10.fc39.noarch
fedora-gpg-keys-39-1.noarch
fedora-repos-39-1.noarch
setup-2.14.4-1.fc39.noarch
filesystem-3.18-6.fc39.x86_64
basesystem-11-18.fc39.noarch
default-fonts-core-sans-4.0-9.fc39.noarch
langpacks-fonts-en-4.0-9.fc39.noarch
...

9. Cách nâng cấp gói RPM

Nếu bạn muốn nâng cấp bất kỳ gói RPM nào, tùy chọn -U (nâng cấp) sẽ được sử dụng. Một trong những lợi ích chính của việc sử dụng tùy chọn này là nó sẽ không chỉ nâng cấp phiên bản mới nhất của gói mà còn duy trì bản sao lưu của gói cũ để trong trường hợp phiên bản mới nâng cấp không chạy, bạn có thể sử dụng lại phiên bản đã cài đặt trước đó.

rpm -Uvh hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

10. Cách gỡ bỏ một gói RPM

Để gỡ cài đặt một gói RPM, ví dụ, chúng ta sử dụng tên gói hardinfo, không phải tên gốc của gói hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm. Tùy chọn -e (erase) được sử dụng để xóa gói.

rpm -evv hardinfo

11. Cách gỡ bỏ một gói RPM mà không cần phụ thuộc

Tùy chọn --nodeps (không kiểm tra phụ thuộc) một cách bắt buộc xóa gói RPM khỏi hệ thống. Nhưng hãy nhớ rằng việc gỡ bỏ một gói cụ thể có thể làm hỏng các ứng dụng khác đang hoạt động.

rpm -ev --nodeps hardinfo

12. Cách tìm gói RPM của một tệp tin cụ thể

Hãy nói rằng bạn có một danh sách các tệp tin và bạn muốn tìm biết tệp tin nào thuộc về gói nào. Ví dụ, lệnh sau với tùy chọn -qf (truy vấn tệp tin) sẽ cho bạn thấy một tệp tin /usr/bin/htpasswd là thuộc về gói httpd-tools-2.4.58-1.fc39.x86_64.

rpm -qf /usr/bin/htpasswd

httpd-tools-2.4.58-1.fc39.x86_64

13. Cách tra cứu thông tin về gói RPM đã cài đặt

Hãy nói rằng bạn đã cài đặt một gói rpm và muốn biết thông tin về gói. Tùy chọn -qi (truy vấn thông tin) sau sẽ hiển thị thông tin có sẵn về gói đã cài đặt.

rpm -qi hardinfo

Name        : hardinfo
Version     : 2.0.11
Release     : 1
Architecture: x86_64
Install Date: Mon 04 Mar 2024 01:32:14 PM IST
Group       : unknown
Size        : 5174404
License     : GPL2+
Signature   : (none)
Source RPM  : hardinfo-2.0.11-1.src.rpm
Build Date  : Sat 02 Mar 2024 06:37:42 AM IST
Build Host  : fedora.bigbear.dk
Relocations : /usr 
Vendor      : Humanity
URL         : https://www.hardinfo2.org
Summary     : hardinfo2 built using CMake
Description :
Hardinfo2 is a small application that displays information about your hardware and operating system.  It has online benchmarking to check your machine performance against other machines.

14. Lấy thông tin của gói RPM trước khi cài đặt

Bạn đã tải xuống một gói từ internet và muốn biết thông tin của một gói trước khi cài đặt. Ví dụ, tùy chọn -qip (truy vấn thông tin gói) sau sẽ hiển thị thông tin của gói sqlbuddy.

rpm -qip sqlbuddy

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. Cách truy vấn tài liệu của gói RPM đã cài đặt

Để lấy danh sách tài liệu có sẵn của một gói đã cài đặt, sử dụng lệnh sau với tùy chọn -qdf (truy vấn tệp tài liệu) sẽ hiển thị các trang tài liệu liên quan đến gói vmstat.

rpm -qdf /usr/bin/vmstat

/usr/share/doc/procps-ng/AUTHORS
/usr/share/doc/procps-ng/FAQ
/usr/share/doc/procps-ng/NEWS
/usr/share/doc/procps-ng/README.md
/usr/share/doc/procps-ng/bugs.md
/usr/share/man/man1/free.1.gz
/usr/share/man/man1/pgrep.1.gz
...

16. Cách xác minh gói RPM

Xác minh một gói so sánh thông tin các tệp đã cài đặt của gói với cơ sở dữ liệu rpm. Tùy chọn -Vp (xác minh gói) được sử dụng để xác minh một gói.

rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm

S.5....T.  c /etc/httpd/conf.d/sqlbuddy.conf

17. Cách xác minh tất cả các gói RPM

Gõ lệnh sau để xác minh tất cả các gói rpm đã cài đặt.

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. Cách nhập khóa GPG cho gói RPM

Để xác minh các gói RHEL/CentOS/Fedora, bạn phải nhập khóa GPG. Để làm điều này, thực hiện lệnh sau. Nó sẽ nhập public CentOS 8 GPG key.

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-8

19. Cách liệt kê tất cả các khóa GPG đã nhập cho gói RPM

Để hiển thị tất cả các GPG đã nhập vào hệ thống của bạn, sử dụng lệnh sau.

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. Cách tái tạo cơ sở dữ liệu RPM bị hỏng

Đôi khi cơ sở dữ liệu rpm bị hỏng và ngừng hoạt động tất cả các chức năng của rpm và các ứng dụng khác trên hệ thống. Do đó, vào thời điểm này, chúng ta cần tái tạo cơ sở dữ liệu rpm và khôi phục nó với sự trợ giúp của lệnh sau.

cd /var/lib
rm __db*
rpm --rebuilddb
rpmdb_verify Packages

Tóm lại, các lệnh rpm Linux được trình bày cung cấp hướng dẫn toàn diện để quản lý gói phần mềm một cách hiệu quả trên các bản phân phối Linux dựa trên RHEL.