Lệnh yum: cách dùng và tùy chọn, yum-utils và kiểm tra kho lưu trữ

Môi trường thử nghiệmHọ RHELAlmaLinux 9.8Tài khoản root
Lệnh quản lý góiyumyum-utilsrpmVị trí/usr/bin/yum

Lệnh yum là lệnh quản lý gói dùng để cài đặt, cập nhật và gỡ gói trên Linux họ RHEL. Khi chạy thử các lệnh tra cứu, kiểm tra cập nhật và các công cụ yum-utils trên máy chủ AlmaLinux 9, yum chạy như cùng một chương trình với dnf và kết quả xuất ra cũng giống dnf.

Danh sách kho lưu trữ, số phát hành (release) của gói và thời gian cài đặt trong kết quả bên dưới là giá trị ví dụ.

1️⃣ Cách dùng cơ bản lệnh yum: yum và dnf

Trên AlmaLinux 9, gõ yum sẽ chạy dnf. Đó là vì /usr/bin/yum là liên kết trỏ tới dnf-3.

ls -l /usr/bin/yum /usr/bin/dnf
lrwxrwxrwx 1 root root 5 Oct  5 10:12 /usr/bin/dnf -> dnf-3
lrwxrwxrwx 1 root root 5 Oct  5 10:12 /usr/bin/yum -> dnf-3

Cả hai tệp đều là liên kết trỏ tới dnf-3. Vì vậy chạy yum --version cũng hiện phiên bản dnf.

yum --version
4.14.0
  Installed: dnf-0:4.14.0-21.el9_8.alma.1.noarch at Mon Oct  5 10:12:30 2026
  Built    : AlmaLinux Packaging Team <packager@almalinux.org> at Fri May  1 09:30:00 2026

  Installed: rpm-0:4.16.1.3-23.el9.x86_64 at Mon Oct  5 10:12:08 2026
  Built    : AlmaLinux Packaging Team <packager@almalinux.org> at Thu Mar 12 08:15:20 2026

Dòng đầu 4.14.0 là phiên bản dnf, bên dưới là thời điểm cài các gói dnf và rpm. Phiên bản rpm cũng hiện ra vì cuối cùng yum cài các gói nhận từ kho lưu trữ bằng rpm.

Dạng cơ bản của lệnh là yum, tùy chọn, lệnh và tên gói theo thứ tự đó. Dòng đầu của --help chính là dạng này, bên dưới là danh sách lệnh.

yum --help | head -n 12
usage: yum [options] COMMAND

List of Main Commands:

alias                     List or create command aliases
autoremove                remove all unneeded packages that were originally installed as dependencies
check                     check for problems in the packagedb
check-update              check for available package upgrades
clean                     remove cached data
deplist                   [deprecated, use repoquery --deplist] List package's dependencies and what packages provide them
distro-sync               synchronize installed packages to the latest available versions
downgrade                 Downgrade a package

Các lệnh hay dùng được gom vào bảng.

LệnhChức năng
list installedDanh sách gói đã cài (thêm tên gói thì chỉ gói đó)
list updatesDanh sách gói có phiên bản mới hơn trong kho lưu trữ
check-updateKiểm tra có bản cập nhật hay không (có thì mã thoát 100)
infoPhiên bản, kích thước, kho lưu trữ và mô tả của một gói
searchTìm gói theo tên và tóm tắt
installCài gói (kèm phụ thuộc)
removeGỡ gói (giống erase)
updateNâng các gói đã cài lên phiên bản mới (giống upgrade)
autoremoveGỡ các gói được cài làm phụ thuộc và không còn cần nữa
makecacheTải trước metadata của kho lưu trữ và tạo bộ nhớ đệm
clean allXóa toàn bộ bộ nhớ đệm đã tải
repolistDanh sách kho lưu trữ đang bật
deplistPhụ thuộc và gói cung cấp (nên dùng repoquery --deplist)
historyLịch sử giao dịch cài đặt và gỡ bỏ

2️⃣ Tùy chọn của lệnh yum: -y, -C, exclude, enablerepo

Tùy chọn đặt giữa yum và lệnh. -y trả lời có cho mọi câu hỏi nên dùng trong script; khi chạy update bằng tay trên máy chủ thật, tốt hơn là không dùng -y mà đọc bảng giao dịch rồi tự trả lời.

Tùy chọnSao chépMô tả
-C, --cacheonlyChỉ dùng bộ nhớ đệm đã tải mà không kết nối tới kho lưu trữ.
-q, --quietẨn các thông báo như dòng metadata và chỉ in kết quả.
--showduplicatesIn cả phiên bản đã cài lẫn các phiên bản trong kho lưu trữ của cùng một gói.
--exclude=PKG, -x PKGLoại gói đó khỏi lệnh lần này (dùng được mẫu như kernel*).
--enablerepo=REPOBật kho lưu trữ đang tắt chỉ cho lệnh lần này.
--versionIn phiên bản yum (dnf) và rpm.
-h, --helpIn trợ giúp.
Tùy chọnSao chépMô tả
-y, --assumeyesTrả lời có cho mọi câu hỏi.
-v, --verboseIn chi tiết quá trình thực hiện.
--disablerepo=REPOTắt kho lưu trữ đang bật chỉ cho lệnh lần này.
--skip-brokenBỏ qua các gói bị hỏng phụ thuộc và tiếp tục với phần còn lại.

-C in kết quả chỉ từ bộ nhớ đệm đã tải, không kết nối tới kho lưu trữ. Dòng đầu cho biết lần cuối bộ nhớ đệm được làm mới, kết quả bắt đầu từ dòng thứ hai.

yum -C list tree
Last metadata expiration check: 0:35:03 ago on Thu Oct 29 05:32:35 2026.
Installed Packages
tree.x86_64                         1.8.0-12.el9                         @baseos

Thêm -q thì dòng đầu biến mất và chỉ còn kết quả.

yum -C -q list installed tree
Installed Packages
tree.x86_64                         1.8.0-12.el9                         @baseos

--showduplicates in song song phiên bản đã cài và các phiên bản có trong kho lưu trữ.

yum -C --showduplicates list libavif
Last metadata expiration check: 0:38:15 ago on Thu Oct 29 05:32:35 2026.
Installed Packages
libavif.x86_64                      0.11.1-7.el9                       @epel
Available Packages
libavif.x86_64                      1.1.1-2.el9                        epel

0.11.1 ở Installed Packages và 1.1.1 ở Available Packages là hai phiên bản của cùng một gói. Phiên bản trong kho lưu trữ cao hơn, nên libavif là gói cần cập nhật.

--exclude loại gói đó khỏi lệnh lần này.

yum -C --exclude=libavif check-update libavif libdav1d
Last metadata expiration check: 0:35:10 ago on Thu Oct 29 05:32:35 2026.

libdav1d.x86_64                         1.5.4-2.el9                         epel

Đã chỉ định hai gói nhưng libavif bị loại và chỉ còn libdav1d. Khi thêm vào update, mọi thứ được cập nhật trừ gói đó.

3️⃣ Quản lý gói bằng yum và thứ tự cập nhật

Dù biết tùy chọn, bạn vẫn phải xem trước cái gì đã cài và cái gì mới ra thì mới quyết định được gói nào cần cập nhật. Vì vậy ta bắt đầu từ các lệnh kiểm tra gói đã cài.

yum -C list installed tree
Installed Packages
tree.x86_64                         1.8.0-12.el9                         @baseos

@baseos ở cột cuối là kho lưu trữ đã dùng khi cài gói. Tra bằng rpm -q thì phiên bản hiện trên một dòng.

rpm -q tree htop libavif
tree-1.8.0-12.el9.x86_64
package htop is not installed
libavif-0.11.1-7.el9.x86_64

Với gói chưa cài, kết quả kết thúc bằng một dòng not installed, và mã thoát là 1.

Các gói có phiên bản mới trong kho lưu trữ được kiểm tra bằng list updates.

yum -C list updates libavif libdav1d
Last metadata expiration check: 0:35:07 ago on Thu Oct 29 05:32:35 2026.
Available Upgrades
libavif.x86_64                          1.1.1-2.el9                         epel
libdav1d.x86_64                         1.5.4-2.el9                         epel

Bên dưới Available Upgrades là các gói có phiên bản mới. Nếu không thêm tên gói, lệnh xét toàn bộ gói đã cài.

check-update cũng báo cùng danh sách đó qua mã thoát.

yum -C check-update libavif libdav1d; echo $?
Last metadata expiration check: 0:35:08 ago on Thu Oct 29 05:32:35 2026.

libavif.x86_64                          1.1.1-2.el9                         epel
libdav1d.x86_64                         1.5.4-2.el9                         epel
100

Số 100 ở dòng cuối là mã thoát. Có bản cập nhật thì là 100, không có thì là 0, nên script dựa vào giá trị này để quyết định.

Cập nhật theo thứ tự makecache, update, autoremove.

yum makecache

makecache tải trước metadata của kho lưu trữ. update tự tải nên có thể bỏ qua bước này.

yum update

update nâng toàn bộ gói đã cài lên phiên bản mới và xử lý luôn phụ thuộc.

yum update libavif

Thêm tên gói thì chỉ nâng gói đó.

yum autoremove

autoremove xóa các gói được cài kèm làm phụ thuộc và không còn cần nữa. Chạy sau update.

yum update --exclude='kernel*'

Muốn cập nhật mà không đụng tới kernel, thêm mẫu kernel vào --exclude. Sau khi kernel được cập nhật phải khởi động lại mới chạy bằng kernel mới, còn có cần khởi động lại hay không thì kiểm tra bằng needs-restarting của yum-utils.

4️⃣ Công cụ yum-utils: yumdownloader, repoquery, needs-restarting

Trên AlmaLinux 9, yum-utils là lớp tương thích do dnf-plugins-core cung cấp. Tên lệnh vẫn như thời YUM cũ, nhưng thứ thực sự chạy là plugin của dnf.

yum -C info yum-utils
Last metadata expiration check: 0:38:12 ago on Thu Oct 29 05:32:35 2026.
Installed Packages
Name         : yum-utils
Version      : 4.3.0
Release      : 14.el9
Architecture : noarch
Size         : 23 k
Source       : dnf-plugins-core-4.3.0-14.el9.src.rpm
Repository   : @System
From repo    : baseos
Summary      : Yum-utils CLI compatibility layer
URL          : https://github.com/rpm-software-management/dnf-plugins-core
License      : GPLv2+
Description  : As a Yum-utils CLI compatibility layer, supplies in CLI shims for
             : debuginfo-install, repograph, package-cleanup, repoclosure, repomanage,
             : repoquery, reposync, repotrack, repodiff, builddep, config-manager, debug,
             : download and yum-groups-manager that use new implementations using DNF.

Source là dnf-plugins-core và Summary là Yum-utils CLI compatibility layer. Nếu chưa cài thì cài bằng [yum install yum-utils].

17 lệnh mà gói này cài được liệt kê bằng rpm -ql.

rpm -ql yum-utils | grep bin/
/usr/bin/debuginfo-install
/usr/bin/find-repos-of-install
/usr/bin/needs-restarting
/usr/bin/package-cleanup
/usr/bin/repo-graph
/usr/bin/repoclosure
/usr/bin/repodiff
/usr/bin/repomanage
/usr/bin/repoquery
/usr/bin/reposync
/usr/bin/repotrack
/usr/bin/yum-builddep
/usr/bin/yum-config-manager
/usr/bin/yum-debug-dump
/usr/bin/yum-debug-restore
/usr/bin/yum-groups-manager
/usr/bin/yumdownloader
ls -l /usr/bin/yumdownloader /usr/bin/repoquery /usr/bin/needs-restarting /usr/bin/yum-config-manager
lrwxrwxrwx 1 root root 22 Mar  3  2026 /usr/bin/needs-restarting -> /usr/libexec/dnf-utils
lrwxrwxrwx 1 root root 22 Mar  3  2026 /usr/bin/repoquery -> /usr/libexec/dnf-utils
lrwxrwxrwx 1 root root 22 Mar  3  2026 /usr/bin/yum-config-manager -> /usr/libexec/dnf-utils
lrwxrwxrwx 1 root root 22 Mar  3  2026 /usr/bin/yumdownloader -> /usr/libexec/dnf-utils

Tất cả đều là liên kết trỏ tới một tệp duy nhất là /usr/libexec/dnf-utils. Các công cụ hay dùng và việc chúng làm được gom thành cây.

yum-utilsMột gói — cả 17 lệnh đều là liên kết tới /usr/libexec/dnf-utils
yumdownloaderTải tệp gói (.rpm) · --urls chỉ in địa chỉ
repoqueryTra danh sách tệp, phụ thuộc và phụ thuộc ngược của gói
needs-restartingKiểm tra sau khi cập nhật có cần khởi động lại hay không
package-cleanupTìm gói trùng, gói mồ côi và gói có vấn đề
yum-builddepCài các gói cần để build RPM nguồn
yum-config-managerBật, tắt và thêm kho lưu trữ (thay đổi tệp cấu hình)
repoclosure · repodiff · repomanage · repo-graphKiểm tra, so sánh, dọn dẹp và vẽ đồ thị kho lưu trữ
reposync · repotrackTải kho lưu trữ và nhóm gói
debuginfo-install · find-repos-of-install · yum-debug-dump · yum-debug-restore · yum-groups-managerThông tin gỡ lỗi · kho nguồn gốc · xuất và khôi phục cấu hình · quản lý nhóm

yumdownloader chỉ tải tệp gói mà không cài. Thêm --urls thì chỉ in địa chỉ sẽ tải về.

yumdownloader --urls tree
Last metadata expiration check: 0:35:16 ago on Thu Oct 29 05:32:35 2026.
https://repo.almalinux.org/almalinux/9.8/BaseOS/x86_64/os/Packages/tree-1.8.0-12.el9.x86_64.rpm

Địa chỉ kho lưu trữ và tên tệp hiện trên một dòng. Với địa chỉ này, bạn có thể tải trước các tệp để mang sang cài trên máy chủ không có internet.

repoquery tra các tệp mà một gói cài và các phụ thuộc của nó.

repoquery -l tree
Last metadata expiration check: 0:35:17 ago on Thu Oct 29 05:32:35 2026.
/usr/bin/tree
/usr/lib/.build-id
/usr/lib/.build-id/e0
/usr/lib/.build-id/e0/e2ec3d46003583b56979e08d437395bd0d2a07
/usr/share/doc/tree
/usr/share/doc/tree/README
/usr/share/licenses/tree
/usr/share/licenses/tree/LICENSE
/usr/share/man/man1/tree.1.gz

-l là danh sách tệp của gói đó. Gồm một tệp thực thi cùng tài liệu, giấy phép và trang hướng dẫn.

repoquery --requires tree
Last metadata expiration check: 0:35:19 ago on Thu Oct 29 05:32:35 2026.
libc.so.6(GLIBC_2.34)(64bit)
rtld(GNU_HASH)

--requires là các thư viện cần thiết. yum deplist cũng in nội dung đó kèm gói cung cấp, nhưng trợ giúp ghi là deprecated nên dùng repoquery --deplist thay thế.

yum -C repoquery --deplist tree
Last metadata expiration check: 0:38:17 ago on Thu Oct 29 05:32:35 2026.
package: tree-1.8.0-12.el9.x86_64
  dependency: libc.so.6(GLIBC_2.34)(64bit)
   provider: glibc-2.34-170.el9_8.x86_64
  dependency: rtld(GNU_HASH)
   provider: glibc-2.34-170.el9_8.i686
   provider: glibc-2.34-170.el9_8.x86_64

Dòng dependency là thứ cần có, còn dòng provider là gói cung cấp thứ đó.

Có cần khởi động lại sau khi cập nhật hay không thì kiểm tra bằng needs-restarting -r.

needs-restarting -r
No core libraries or services have been updated since boot-up.
Reboot should not be necessary.

Sau khi kernel hoặc thư viện cốt lõi được cập nhật, thông báo chuyển sang báo cần khởi động lại và kết thúc với mã thoát 1.

Chạy package-cleanup không kèm tùy chọn thì chỉ in thông báo yêu cầu chọn kiểu kiểm tra.

package-cleanup
package-cleanup has to be executed with one of the options: --dupes, --leaves, --orphans, --problems or --cleandupes

5️⃣ Kiểm tra kho lưu trữ yum: repolist và tùy chọn enablerepo

Dù có đủ công cụ, nếu gói không có trong kho lưu trữ thì yum cũng không tìm thấy gì. Vì vậy trước hết hãy xem kho lưu trữ yum nào đang bật.

yum repolist
repo id             repo name
appstream           AlmaLinux 9 - AppStream
baseos              AlmaLinux 9 - BaseOS
epel                Extra Packages for Enterprise Linux 9 - x86_64
epel-cisco-openh264 Extra Packages for Enterprise Linux 9 openh264 (From Cisco) - x86_64
extras              AlmaLinux 9 - Extras

repolist chỉ in các kho có enabled=1 trong tệp cấu hình. baseos và appstream là kho mặc định của bản phân phối, còn epel là kho được thêm riêng.

yum repolist --all | head -n 12
repo id                       repo name                                 status
appstream                     AlmaLinux 9 - AppStream                   enabled
appstream-debuginfo           AlmaLinux 9 - AppStream - Debug           disabled
appstream-source              AlmaLinux 9 - AppStream - Source          disabled
baseos                        AlmaLinux 9 - BaseOS                      enabled
baseos-debuginfo              AlmaLinux 9 - BaseOS - Debug              disabled
baseos-source                 AlmaLinux 9 - BaseOS - Source             disabled
crb                           AlmaLinux 9 - CRB                         disabled
crb-debuginfo                 AlmaLinux 9 - CRB - Debug                 disabled
crb-source                    AlmaLinux 9 - CRB - Source                disabled
epel                          Extra Packages for Enterprise Linux 9 - x enabled
epel-cisco-openh264           Extra Packages for Enterprise Linux 9 ope enabled

--all in cả các kho đang tắt kèm cột status. Gói trong kho disabled như crb không cài được nếu để nguyên như vậy.

Muốn bật kho đang tắt chỉ cho lệnh lần này, thêm --enablerepo.

yum --enablerepo=crb repolist
repo id             repo name
appstream           AlmaLinux 9 - AppStream
baseos              AlmaLinux 9 - BaseOS
crb                 AlmaLinux 9 - CRB
epel                Extra Packages for Enterprise Linux 9 - x86_64
epel-cisco-openh264 Extra Packages for Enterprise Linux 9 openh264 (From Cisco) - x86_64
extras              AlmaLinux 9 - Extras

crb đã vào danh sách. Tệp cấu hình vẫn giữ nguyên nên ở lệnh sau crb lại bị loại ra. Muốn giữ kho luôn bật, hãy đổi tệp cấu hình bằng yum-config-manager. Bạn có thể xem cảnh kho được bật và tắt bằng cách nhấn các nút lệnh trong sơ đồ bên dưới.

🧭 Kho lưu trữ mà yum dùng để tìm gói
Sơ đồ giải thích
🔍 Lệnh
$ yum repolist--enablerepo=crb repolist--disablerepo=epel repolist
baseosBậtChỉ bật lần nàyChỉ tắt lần này
appstreamBậtChỉ bật lần nàyChỉ tắt lần này
extrasBậtChỉ bật lần nàyChỉ tắt lần này
epelBậtChỉ bật lần nàyChỉ tắt lần này
crbTắtChỉ bật lần nàyChỉ tắt lần này
➜
yumKho lưu trữ dùng để tìm gói564
repolist chỉ in các kho có enabled=1 trong tệp cấu hình. yum chỉ tìm gói trong các kho thuộc danh sách này. Gói trong kho đang tắt như crb sẽ không thấy.
Thêm --enablerepo=crb thì crb chỉ bật cho đúng lệnh này và vào danh sách. Tệp cấu hình không đổi nên ở lệnh sau crb lại bị loại ra.
Thêm --disablerepo=epel thì epel chỉ bị loại ở đúng lệnh này. Muốn bật hoặc tắt kho lâu dài, hãy dùng yum-config-manager, công cụ thay đổi tệp cấu hình.

Thêm một kho mới như EPEL chỉ cần cài một gói kho lưu trữ.

yum install epel-release

Sau khi cài, tệp epel.repo được tạo trong /etc/yum.repos.d/ và epel xuất hiện trong repolist.

🔲 Trình mô phỏng lệnh yum

Trong trình mô phỏng bên dưới, bạn có thể tự gõ yum list, check-update, repolist và các lệnh yum-utils rồi xem kết quả. Danh sách kho dùng cùng giá trị ví dụ như bài viết, còn các lệnh cài, gỡ và cập nhật chỉ hiện thông báo.

Trình mô phỏng lệnh yumyum 4.14.0
[root@server work]#
Dùng phím ↑↓ trên bàn phím để gọi lại các lệnh đã gõ trước đó.

🔢 FAQ & nội dung đề xuất

Không có. Gõ yum delete sẽ kết thúc với lỗi No such command: delete. Để gỡ gói hãy dùng yum remove, và erase cũng làm việc tương tự.

Là cùng một lệnh. Trong dnf, update là tên khác của upgrade, nên chạy yum help update cũng ra trợ giúp bắt đầu bằng usage: yum upgrade.

Thêm -C thì list và info chạy bằng bộ nhớ đệm đã tải, không kết nối kho lưu trữ. Để cài gói, hãy tải tệp .rpm bằng yumdownloader trên một máy chủ khác, mang sang rồi truyền đường dẫn tệp cho install.

ℹ️ Thông báo tiếp thị liên kết
Nội dung trên trang này có chứa liên kết affiliate (tiếp thị liên kết). Khi khách truy cập mua sản phẩm hoặc dịch vụ qua các liên kết này, trang sẽ nhận hoa hồng từ bên bán. Trong quá trình đó, số tiền người mua phải trả (sẽ giảm khi có chương trình khuyến mãi ↓) không hề tăng lên. Giá, khuyến mãi và tình trạng hàng được đăng theo thời điểm viết bài và có thể khác với thực tế, vì vậy hãy kiểm tra lại lần cuối với bên bán trước khi mua. Việc chọn và đánh giá sản phẩm dựa trên tiêu chí riêng của trang; việc có nhận hoa hồng hay không không ảnh hưởng đến thứ tự giới thiệu hay nội dung đánh giá.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Prove your humanity: 7   +   10   =