• Thông Tin Cần Biết
  • Hướng Dẫn
  • Câu Hỏi Thường Gặp
  • Thông Tin Cần Biết
  • Hướng Dẫn
  • Câu Hỏi Thường Gặp
Home/Hướng Dẫn/Linux/Tổng hợp lệnh RPM trên Linux

Tổng hợp lệnh RPM trên Linux

66 lượt xem 0

Bài viết này sẽ giới thiệu với các bạn về cách sử dụng lệnh RPM trên hệ điều hành Linux. Trong bài viết này chúng ta sẽ tìm hiểu về RPM cũng như các ví dụ về nó từ đây giúp cho chúng ta có thể tự học và tự tìm hiểu Linux cơ bản.

1. Giới thiệu về RPM

RPM(Red Hat Package Manager) là một công cụ dùng để quản lý gói mặc định và mã nguồn mở mặc định cho các hệ thống dựa trên Red Hat (RHEL, CentOS và Fedora). Công cụ này giúp cho phép chúng ta có thể cài đặt, cập nhật, gỡ cài đặt, truy vấn, xác minh và quản lý các gói phần mềm trên hệ thống. RPM trước đây được gọi là tệp .rpm gồm các chương trình và thư viện phần mềm được biên dịch cần thiết cho các gói. Tiện ích này chỉ hoạt động với các gói được xây dựng trên định dạng .rpm.

Chức năng cơ bản lệnh RPM:

  • Install: Sử dụng để cài đặt bất kỳ gói RPM.
  • Remove: Sử dụng để xóa hoặc hủy cài đặt bất kỳ gói RPM.
  • Upgrade: Sử dụng để cập nhật gói RPM hiện có.
  • Verify: Sử dụng để truy vấn bất kỳ gói RPM.
  • Query: Sử dụng để xác minh các gói RPM.

Với quyền root chúng ta có thể sử dụng lệnh rpm với các tùy chọn phù hợp để quản lý các gói phần mềm RPM.

RPM là công cụ miễn phí và được phát hành theo GPL (General Public License). RPM sẽ lưu giữ thông tin của tất cả các gói đã cài đặt trong /var/lib/rpm. RPM xử lý các tệp .rpm chứa thông tin về các gói như: nó là gì, từ đâu đến, thông tin phụ thuộc, thông tin phiên bản…

Chúng ta có thể tìm gói RPM tại các trang web sau đây:

  • https://rpmfind.net/
  • https://www.redhat.com/en
  • https://freshrpms.net/
  • http://rpm.pbone.net/

2. Sử dụng RPM

Các ví dụ cơ bản với lệnh RPM

Ví dụ 1: Cài đặt gói RPM

Tên của tệp RPM gồm có các thành phần là: tên gói, phiên bản, phát hành và kiến ​​trúc.

Khi chúng ta thực hiện cài đặt RPM thì nó sẽ kiểm tra xem hệ thống có phù hợp với phần mềm mà gói RPM chứa hay không, tìm ra nơi cài đặt các tệp và cài đặt chúng trên hệ thống và thêm phần mềm đó vào cơ sở dữ liệu gói RPM đã được cài đặt.

Chúng ta chạy lệnh rpm với tùy chọn -i, -v, -h để cài đặt gói RPM wget như bên dưới:

[root@localhost ~]# rpm -ivh wget-1.19.5-7.el8_0.1.x86_64.rpm
Preparing...                ########################################### [100%]
   1:wget                   ########################################### [100%]

Trong đó các tùy chọn có ý nghĩa như sau:

  • -i: Cài đặt một gói.
  • -v: Hiển thị đầy đủ.
  • -h: Hiển thị dấu băm khi gói được giải nén.

Ví dụ 2: Truy vấn tất cả các gói RPM

Chúng ta có thể truy vấn tất cả các gói RPM đã dược cài đặt bằng cách sử dụng lệnh rpm cùng với các tùy chọn -q và -a:

[root@localhost ~]# rpm -qa
libdrm-2.4.97-2.el7.x86_64
device-mapper-event-1.02.158-2.el7_7.2.x86_64
ebtables-2.0.10-16.el7.x86_64
teamd-1.27-9.el7.x86_64
plymouth-0.8.9-0.32.20140113.el7.centos.x86_64
elfutils-libelf-0.176-2.el7.i686
libstdc++-4.8.5-39.el7.i686
...

Trong đó ý nghĩa các tùy chọn như sau:

  • q: Dùng để truy vấn.
  • a: Dùng để hiển thi tất cả các gói đã cài đặt.

Khi chúng ta muốm tìm kiếm xem một gối PRM có được cài đặt trên hệ thống hay không thì chúng ta có thể kết hợp lệnh rpm và lệnh grep để tìm kiếm. Ví dụ sau đây chúng ta sẽ xem gói python có được cài đặt trên hệ thống không.

[root@localhost ~]# rpm -qa | grep python
python-libs-2.7.5-86.el7.x86_64
libselinux-python-2.5-14.1.el7.x86_64
python-schedutils-0.4-6.el7.x86_64
newt-python-0.52.15-4.el7.x86_64
rpm-python-4.11.3-40.el7.x86_64
...

Ví dụ 3: Truy vấn 1 gói RPM cụ thể

Chúng ta có thể truy vấn một gói cụ thể và xác minh chúng đã được cài đặt chưa bằng việc kết hợp rpm với tùy chọn -q sau đó là tên của gói cần sác minh như bên dưới:

[root@localhost ~]# rpm -q wget
wget-1.19.5-7.el8_0.1.x86_64

Lưu ý: Để có thể truy vấn một gói, chúng ta cần sác định tên gói một cách chính xác. Nếu tên gói không chính xác, thì lệnh rpm sẽ báo cáo rằng gói không được cài đặt.

Ví dụ 4: Truy vấn các gói RPM theo một định dạng khác nhau

Lệnh rpm cung cấp cho chúng ta tùy chọn –queryformat, cho phép chúng ta có thể đặt tên thẻ tiêu đề, để liệt kê các gói. Đính kèm thẻ tiêu đề trong {}.

[root@localhost ~]# rpm -qa --queryformat '%{name}-%{version}-%{release} %{size}n'
NetworkManager-1.14.0-14.el8 9797209
geolite2-city-20180605-1.el8 56549434
policycoreutils-2.8-16.1.el8 668198
pkgconf-m4-1.4.2-1.el8 14187
selinux-policy-targeted-3.14.1-61.el8_0.2 51822907
dnf-data-4.0.9.2-5.el8 34196
...

Ví dụ 5: Xác định vị trí của gói thuộc các tệp

Lệnh sau, cung cấp vị trí của tất cả các tệp liên quan đến gói python 2.7.

[root@localhost ~]# rpm -qdf /usr/bin/python2.7
/usr/share/doc/python2/README
/usr/share/man/man1/python.1.gz
/usr/share/man/man1/python2.1.gz
/usr/share/man/man1/python2.7.1.gz

Trong đó tùy chọn d giúp chúng ta đề cập tới tệp liên quan tới gói.

Ví dụ 6: Hiển thị thông tin về gói RPM

Lệnh rpm giúp cho chúng ta có thể hiển thị rất nhiều thông tin về một pacakge bằng việc kết hợp lệnh rpm với tùy chọn q và tùy chọn i được cài đặt trên hệ thống:

[root@localhost ~]# rpm -qi python
Name        : python
Version     : 2.7.5
Release     : 86.el7
Architecture: x86_64
Install Date: Tue 01 Oct 2019 07:37:48 PM +07
Group       : Development/Languages
Size        : 80907
License     : Python
Signature   : RSA/SHA256, Fri 23 Aug 2019 04:40:03 AM +07, Key ID 24c6a8a7f4a80eb5
Source RPM  : python-2.7.5-86.el7.src.rpm
Build Date  : Wed 07 Aug 2019 08:15:38 AM +07
Build Host  : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://www.python.org/
Summary     : An interpreted, interactive, object-oriented programming language
Description :
Python is an interpreted, interactive, object-oriented programming
language often compared to Tcl, Perl, Scheme or Java. Python includes
modules, classes, exceptions, very high level dynamic data types and
dynamic typing. Python supports interfaces to many system calls and
libraries, as well as to various windowing systems (X11, Motif, Tk,
Mac and MFC).

Programmers can write new built-in modules for Python in C or C++.
Python can be used as an extension language for applications that need
a programmable interface.

Note that documentation for Python is provided in the python-docs
package.

This package provides the "python" executable; most of the actual
implementation is within the "python-libs" package.

Trong đó ý nghĩa các tùy chọn như sau:

  • i: Hiển thị thông tin của một package.
  • p: Chỉ định một package.

Ví dụ 7: Kiểm tra xem tệp RPM thuộc về gói nào.

Khi chúng ta có danh sách các tệp và chúng ta muốn biết gói nào sở hữu tất cả các tệp này thì lệnh rpm có thể giúp chúng ta xác định điều này.

Ví dụ: Khi chúng ta có tệp /usr/bin/python2.7 để có thể biết gói sở hửu tệp chúng ta thực thi lệnh sau:

[root@localhost ~]# rpm -qf /usr/bin/python2.7
python2-2.7.15-24.module_el8.0.0+193+7850e68f.x86_64

Ví dụ 8: Để có thể liệt kê các gói RPM được cài đặt gần đây chúng ta sử dụng lệnh rpm với tùy chọn -qa dùng để truy vấn tất cả ), sẽ giúp chúng ta liệt kê tất cả các gói rpm được cài đặt gần đây như bên dưới:

[root@localhost ~]# rpm -qa --last
microcode_ctl-2.1-53.3.el7_7.x86_64           Mon 02 Dec 2019 10:54:27 PM +07
python-perf-3.10.0-1062.4.3.el7.x86_64        Mon 02 Dec 2019 10:54:26 PM +07
epel-release-7-12.noarch                      Mon 02 Dec 2019 10:54:26 PM +07
kernel-3.10.0-1062.4.3.el7.x86_64             Mon 02 Dec 2019 10:54:23 PM +07
kernel-tools-3.10.0-1062.4.3.el7.x86_64       Mon 02 Dec 2019 10:54:16 PM +07
kernel-tools-libs-3.10.0-1062.4.3.el7.x86_64  Mon 02 Dec 2019 10:54:15 PM +07
wget-1.14-18.el7_6.1.x86_64                   Mon 02 Dec 2019 10:50:47 PM +07
htop-2.2.0-3.el7.x86_64                       Sat 09 Nov 2019 10:41:57 PM +07
gpg-pubkey-352c64e5-52ae6884                  Sat 09 Nov 2019 10:41:56 PM +07
...

Ví dụ 9: Nếu chúng ta muốn nâng cấp bất kỳ gói RPM hãy sử dụng tùy chọn -U. Nó giúp cho chúng ta nâng cấp phiên bản mới nhất của gói và duy trì sao lưu gói cũ hơn để trong trường hợp gói nâng cấp mới hơn không chạy gói đã cài đặt trước đó có thể được sử dụng lại.

[root@localhost ~]# rpm -Uvh wget-1.19.5-7.el8_0.1.x86_64.rpm
Preparing...                ########################################### [100%]
   1:wget                   ########################################### [100%]

Ví dụ 10: Để hủy cài đặt một gói RPM chúng ta sử dụng lệnh rpm với tùy chọn -e mèm theo đó là tên gói chúng ta cần hủy cài đặt. Giả sử chúng ta muốn hủy cài đặt gói có tên wget thực hiện như sau:

[root@localhost ~]# rpm -evv wget
D: loading keyring from pubkeys in /var/lib/rpm/pubkeys/*.key
D: couldn't find any keys in /var/lib/rpm/pubkeys/*.key
D: loading keyring from rpmdb
D: opening  db environment /var/lib/rpm cdb:0x401
D: opening  db index       /var/lib/rpm/Packages 0x400 mode=0x0
D: locked   db index       /var/lib/rpm/Packages
D: opening  db index       /var/lib/rpm/Name 0x400 mode=0x0
D:  read h#     303 Header SHA1 digest: OK (489efff35e604042709daf46fb78611fe90a75aa)
...

Ví dụ 11: Cách xóa gói RPM không phụ thuộc bằng cách sử dụng tùy chọn --nodeps không kiểm tra phụ thuộc:

[root@localhost ~]# rpm -ev --nodeps python
Preparing packages...
python-2.7.5-86.el7.x86_64

Lưu ý: Chúng ta cần xác định loại bỏ gói cụ thể nào đó nếu loại bỏ sai có thể ảnh hưởng các ứng dụng làm việc khác.

Ví dụ 12: Khi chúng ta muốn nhập khóa PRM-GPG-KEY để xác minh các gói RHEL/CentOS/Fedora chúng ta cần thực hiện như bên dưới lệnh này sẽ nhập RPM-GPG-KEY-CentOS-7:

[root@localhost ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

Ví dụ 13: Sau khi thực hiện thêm PRM-GPG-KEY chúng ta có thể hiển thị tất cả các PRM-GPG-KEY đã được nhập trên hệ thống của chúng ta bằng cách thực thi lệnh sau:

[root@localhost ~]# rpm -qa gpg-pubkey*
gpg-pubkey-f4a80eb5-53a7ff4b
gpg-pubkey-352c64e5-52ae6884

Ví dụ 15: Cách liệt kê tất cả các tệp của gói RPM đã cài đặt sử dụng tùy chọn -ql danh sách truy vấn với lệnh rpm như bên dưới:

[root@localhost ~]# rpm -ql wget
/etc/wgetrc
/usr/bin/wget
/usr/share/doc/wget-1.14
/usr/share/doc/wget-1.14/AUTHORS
/usr/share/doc/wget-1.14/COPYING
/usr/share/doc/wget-1.14/MAILING-LIST
/usr/share/doc/wget-1.14/NEWS
/usr/share/doc/wget-1.14/README
/usr/share/doc/wget-1.14/sample.wgetrc
/usr/share/info/wget.info.gz
...

Ví dụ 16: Khi chúng ta muốn thực hiện cài dè lệnh gói cũ chúng ta thực hiện như sau. Giả sử chúng ta cần cài đè lên gói wget-1.14*.

[root@localhost ~]# rpm -ivh --force --nodeps --replacepkgs --replacefiles wget-1.14*.rpm

Qua bài viết trên, giúp cho chúng ta hiểu hơn về cách sử dụng lệnh rpm trên hệ điều hành Linux.

Chúc các bạn thành công!

Bài viết này hữu ích không?

Yes  No
Bài viết liên quan
  • Ubuntu – Hướng dẫn mở rộng (Resize) dung lượng disk default
  • Ubuntu 22.04 – Add User
  • Ubuntu 22.04 – Enable root user
  • Hướng dẫn sử dụng KVM IP
  • Fix configure: error: Package requirements libzip
  • CentOS 8 – Fix lỗi Failed to download metadata for repo ‘AppStream’

Không tìm thấy câu trả lời của bạn? Liên hệ

Linux
  • Tổng hợp lệnh RPM trên Linux
  • Reset password root trên CentOS 7
  • How to Install Debian 11
  • Tìm và xóa file Zero-Byte trong Linux
  • Cài đặt ConfigServer Security & Firewall (CSF) trên CentOS
  • Ubuntu 20.04 – Thiết lập địa chỉ IP tĩnh (Static IP Address)
  • Xử lý lỗi full Inode trên server DirectAdmin
  • CentOS 7 – Fix lỗi Not found trying other mirror
  • CentOS 8 – Fix lỗi Failed to download metadata for repo ‘AppStream’
  • Ubuntu 22.04 – Enable root user
  • Ubuntu 22.04 – Add User
  • Ubuntu – Hướng dẫn mở rộng (Resize) dung lượng disk default
All Categories
  • Quản trị Website
  • WordPress Website
  • Quản lý tài khoản
  • Tên miền
  • Chứng chỉ số SSL
  • Email Hosting Server
  • Web Hosting
  • VPS / Server
  • Plesk
  • DirectAdmin
  • Networking
  • Linux
  • Windows
© BizMaC | Rainbow E-Commerce