Liên hệProfile
Danh mục

Mục Lục

    Yum trong Linux là gì? Cách sử dụng lệnh Yum Linux chi tiết

    Nguyễn Hưng

    Ngày đăng:

    30/10/2025

    Cập nhật lần cuối:

    30/10/2025

    Lượt xem:
    Chia sẻ
    Đánh giá
    Đánh giá bài viết

    Nguyễn Hưng

    Lượt xem:
    Ngày đăng:

    30/10/2025

    Cập nhật lần cuối:

    30/10/2025

    Mục lục

    Lệnh yum trong Linux là công cụ quản lý gói phần mềm mạnh mẽ, sử dụng giao diện dòng lệnh, giúp người dùng dễ dàng cài đặt, cập nhật, gỡ bỏ và kiểm soát các ứng dụng trên hệ điều hành Linux dựa trên nền tảng RPM như CentOS, RHEL và Fedora. Trong bài viết này, mình sẽ hướng dẫn bạn chi tiết cách sử dụng lệnh Yum từ cơ bản đến nâng cao qua các ví dụ chi tiết.

    Những điểm chính

    • Khái niệm lệnh yum Linux: Là một công cụ quản lý gói mã nguồn mở cho các bản phân phối Linux dựa trên RPM, giúp cài đặt, cập nhật và gỡ bỏ phần mềm một cách dễ dàng.
    • Chức năng chính: Bao gồm cài đặt, cập nhật, gỡ bỏ gói, quản lý các gói phụ thuộc và tìm kiếm phần mềm trong các kho lưu trữ.
    • Các tùy chọn lệnh yum phổ biến: Cung cấp nhiều tùy chọn như install, update, remove, search, list và history để thực hiện các tác vụ quản lý gói khác nhau.
    • Ví dụ sử dụng lệnh yum: Bài viết cung cấp các ví dụ thực tế về cách cài đặt, cập nhật, tìm kiếm, quản lý kho lưu trữ và theo dõi lịch sử giao dịch bằng lệnh yum.
    • Giải đáp một số thắc mắc thường gặp khi sử dụng lệnh yum.

    Lệnh yum Linux là gì?

    Yum (Yellowdog Updater Modified) là một công cụ quản lý gói mã nguồn mở thiết yếu trên các bản phân phối Linux dựa trên RPM, bao gồm CentOS, RHEL, Fedora, Rocky Linux và AlmaLinux. Mục đích chính của YUM là giúp người dùng dễ dàng cài đặt, gỡ bỏ và cập nhật phần mềm một cách hiệu quả bằng cách tự động xử lý và giải quyết tất cả các gói phụ thuộc cần thiết từ các kho lưu trữ đã cấu hình.

    Yum (Yellowdog Updater Modified) là một trình quản lý gói phần mềm mã nguồn mở
    Yum (Yellowdog Updater Modified) là một trình quản lý gói phần mềm mã nguồn mở

    Ngày nay, DNF (Dandified Yum) đã thay thế YUM làm trình quản lý gói mặc định trong các phiên bản Linux mới hơn. DNF hoạt động hiệu quả hơn, đặc biệt trong việc xử lý các gói phụ thuộc và tốc độ. Tuy nhiên, lệnh yum thường vẫn được giữ lại như một bí danh (alias) cho lệnh dnf trên các hệ thống mới để đảm bảo tính tương thích ngược.

    Cú pháp cơ bản của lệnh yum:

    yum [options] [command] [package ...]

    Trong đó:

    • [options]: Là các tham số tùy chọn dùng để thay đổi hành vi mặc định của lệnh.
    • [command]: Là hành động chính mà bạn muốn thực hiện, ví dụ như cài đặt, cập nhật, gỡ bỏ, hoặc tìm kiếm.
    • [package …]: Là tên của một hoặc nhiều gói phần mềm mà bạn muốn thực hiện hành động trên.

    Chức năng chính của yum Linux

    Yum thực hiện các chức năng cốt lõi sau để quản lý phần mềm trên hệ thống Linux:

    • Cài đặt gói: Lấy và cài đặt phần mềm từ các kho lưu trữ vào hệ thống.
    • Cập nhật gói và hệ thống: Nâng cấp các gói đã cài đặt lên phiên bản mới nhất, đồng thời cập nhật toàn bộ hệ điều hành.
    • Gỡ bỏ gói: Xóa bỏ phần mềm đã cài đặt cùng với các tập tin cấu hình liên quan.
    • Quản lý phụ thuộc: Tự động xử lý và cài đặt các gói phần mềm khác mà chương trình chính yêu cầu để hoạt động.
    • Tìm kiếm phần mềm: Tra cứu các gói phần mềm có sẵn trong các kho lưu trữ đã được cấu hình.
    Chức năng chính của yum Linux
    Chức năng chính của yum Linux

    Các tùy chọn lệnh yum phổ biến

    Tùy chọnChức năng
    installCài đặt một gói phần mềm mới và tất cả các gói phụ thuộc (dependencies) của nó.
    reinstallCài đặt lại một gói phần mềm đã tồn tại trên hệ thống.
    updateCập nhật một gói phần mềm cụ thể hoặc cập nhật toàn bộ hệ thống lên phiên bản mới nhất.
    upgradeTương tự như update, nhưng có thêm tùy chọn xử lý các gói lỗi thời.
    downgradeHạ cấp một gói phần mềm về phiên bản cũ hơn.
    check-updateKiểm tra xem có bản cập nhật nào khả dụng cho các gói đã cài đặt không.
    removeGỡ bỏ (xóa) một gói phần mềm khỏi hệ thống.
    searchTìm kiếm các gói phần mềm trong tất cả các kho lưu trữ dựa trên từ khóa.
    infoHiển thị thông tin chi tiết về một gói phần mềm (phiên bản, mô tả, nhà cung cấp).
    listLiệt kê các gói phần mềm đã cài đặt hoặc có sẵn trong các kho lưu trữ.
    clean allDọn dẹp bộ nhớ cache của yum (các file tiêu đề và gói tải xuống).
    historyXem lịch sử các giao dịch (cài đặt, cập nhật, gỡ bỏ) đã thực hiện bằng yum.

    Thực hiện cài đặt gói phần mềm

    • Cài đặt cơ bản: Để cài đặt một gói phần mềm, ví dụ như php, bạn chỉ cần sử dụng lệnh:
    sudo yum install php
    • Tùy chọn không cần nhắc nhở: Trong quá trình cài đặt, yum thường sẽ yêu cầu xác nhận. Để tự động đồng ý và bỏ qua bước này, bạn có thể thêm tùy chọn -y:
    sudo yum -y install php
    • Cài đặt gói từ file trên máy tính: Nếu bạn có một file RPM đã tải về, bạn có thể cài đặt file này bằng lệnh yum localinstall. Từ các phiên bản RHEL 6 trở lên, bạn có thể dùng trực tiếp lệnh install:
    sudo yum localinstall /path/to/package.rpm
    • Cài đặt gói từ kho lưu trữ cụ thể: Để cài đặt một gói từ một kho lưu trữ (repository) cụ thể mà không phải là kho mặc định, bạn có thể sử dụng cú pháp sau:
    sudo yum --enablerepo=repository_name install package_name

    Cài đặt lại, cập nhật và hạ cấp package

    • Cài đặt lại: Nếu một gói phần mềm gặp lỗi, bạn có thể cài đặt lại mà không ảnh hưởng đến các file cấu hình bằng lệnh:
    sudo yum reinstall php
    • Cập nhật: Để cập nhật một gói phần mềm cụ thể, ví dụ như trình duyệt Firefox, hãy dùng lệnh:
    sudo yum update firefox

    Để cập nhật hệ thống lên một phiên bản cụ thể của gói:

    sudo yum update-to package-version

    Để loại trừ một gói cụ thể khi cập nhật toàn bộ hệ thống:

    sudo yum update --exclude=package_name
    • Hạ cấp (Downgrade): Để quay trở lại phiên bản cũ hơn của một gói phần mềm, bạn có thể sử dụng lệnh downgrade:
    sudo yum downgrade php

    iconLưu ý

    Việc hạ cấp có thể gây ra xung đột phụ thuộc và làm hệ thống hoạt động không ổn định, vì vậy bạn hãy sao lưu dữ liệu quan trọng trước khi thực hiện.

    Tra cứu thông tin và danh sách package

    • Liệt kê package: Lệnh yum list sẽ hiển thị một danh sách rất dài, bạn có thể kết hợp với các lệnh khác như head để xem một phần:
    sudo yum list | head -10

    Liệt kê các gói đã được cài đặt:

    sudo yum list installed

    Liệt kê các gói được cài từ những kho lưu trữ hiện đã bị vô hiệu hóa:

    sudo yum list extras
    • Tìm kiếm package: Để tìm một gói phần mềm khi bạn không nhớ chính xác tên, hãy dùng lệnh search:
    sudo yum search php
    • Tìm package chứa file cụ thể: Nếu bạn muốn biết gói phần mềm nào cung cấp một file cụ thể, hãy sử dụng lệnh provides:
    sudo yum provides /etc/httpd/conf/httpd.conf
    • Xem các gói phụ thuộc: Để xem danh sách tất cả các gói phụ thuộc của một phần mềm, hãy dùng lệnh deplist:
    sudo yum deplist package_name

    Quản lý kho lưu trữ

    • Kiểm tra trạng thái kho lưu trữ: Để xem danh sách tất cả các kho phần mềm và trạng thái của chúng (đang bật hay tắt), bạn dùng lệnh:
    sudo yum repolist all
    Kiểm tra trạng thái kho lưu trữ
    Kiểm tra trạng thái kho lưu trữ
    • Kích hoạt kho lưu trữ: Để bật một kho lưu trữ đang bị tắt, bạn có thể dùng lệnh yum-config-manager:
    sudo yum-config-manager --enable repository_name
    • Vô hiệu hóa kho lưu trữ: Ngược lại, để tắt một kho lưu trữ, bạn dùng lệnh sau:
    sudo yum-config-manager --disable repository_name
    • Liệt kê các kho đang được bật: Lệnh yum repolist sẽ hiển thị các kho đang hoạt động.
    yum repolist
    Liệt kê các kho đang được bật
    Liệt kê các kho đang được bật

    Thao tác với nhóm phần mềm

    Lệnh yum cho phép quản lý các nhóm phần mềm liên quan với nhau một cách dễ dàng.

    • Hiển thị nhóm package: Lệnh yum grouplist sẽ hiển thị các nhóm phần mềm có sẵn và đã được cài đặt.
    yum grouplist
    • Cài đặt/Cập nhật/Xóa nhóm: Bạn có thể thực hiện các thao tác trên toàn bộ một nhóm bằng các lệnh tương ứng:
    sudo yum groupinstall "Development Tools"
    sudo yum groupupdate "Security Tools"
    sudo yum groupremove "GNOME Desktop"
    • Xóa các gói phụ thuộc không sử dụng: Sau khi gỡ bỏ phần mềm, có thể còn lại các gói phụ thuộc không cần thiết. Lệnh autoremove sẽ giúp bạn xử lý các gói này:
    sudo yum autoremove

    Quản lý bộ nhớ tạm (Cache)

    yum lưu trữ các gói phần mềm và siêu dữ liệu đã tải về trong một cache để tăng tốc độ cho các lần sử dụng sau. Tuy nhiên, đôi khi bộ nhớ này có thể bị lỗi hoặc chiếm nhiều dung lượng. Người dùng có thể dọn dẹp toàn bộ bộ nhớ đệm bằng lệnh sau:

    sudo yum clean all

    Lệnh này sẽ xóa các gói RPM đã tải về, siêu dữ liệu của kho lưu trữ và bất kỳ dữ liệu tạm thời nào khác, buộc yum phải tải lại thông tin mới nhất trong lần chạy tiếp theo.

    Theo dõi và quản lý lịch sử giao dịch

    Mỗi hành động mà lệnh yum thực hiện, từ cài đặt đến gỡ bỏ đều được ghi lại. Tính năng này rất hữu ích để theo dõi các thay đổi trên hệ thống và hoàn tác khi cần thiết.

    • Hiển thị lịch sử: Lệnh sudo yum history sẽ hiển thị toàn bộ lịch sử các giao dịch, bao gồm ID giao dịch, dòng lệnh đã sử dụng, ngày giờ và trạng thái:
    sudo yum history
    Hiển thị lịch sử
    Hiển thị lịch sử
    • Xem chi tiết giao dịch: Để xem thông tin chi tiết về một giao dịch cụ thể, bạn có thể sử dụng lệnh yum history info kèm theo ID của giao dịch đó:
    sudo yum history info 3
    Xem chi tiết giao dịch
    Xem chi tiết giao dịch
    • Hoàn tác giao dịch (Undo/Rollback): Bạn có thể hoàn tác một giao dịch cụ thể bằng lệnh undo. Ví dụ, để hoàn tác giao dịch có ID là 2, bạn thực hiện lệnh này:
    sudo yum history undo 2
    

    Kinh nghiệm:

    Lệnh rollback cũng có chức năng tương tự nhưng sẽ hoàn tác tất cả các giao dịch từ một điểm nhất định trở về sau.
    • Thực hiện lại hành động (Redo): Nếu bạn muốn thực hiện lại một giao dịch đã hoàn tác trước đó, hãy sử dụng lệnh redo:
    sudo yum history redo 2

    Sử dụng giao diện dòng lệnh tương tác (Yum Shell)

    Để thực hiện nhiều thao tác cùng một lúc, bạn có thể sử dụng môi trường shell tương tác của yum.

    • Bạn kích hoạt môi trường này bằng lệnh sau:
    sudo yum shell
    Sử dụng giao diện dòng lệnh tương tác
    Sử dụng giao diện dòng lệnh tương tác
    • Trong môi trường shell, bạn có thể nhập nhiều lệnh liên tiếp nhau, ví dụ như cài đặt, cập nhật, và xóa các gói khác nhau. Sau khi đã liệt kê xong các hành động, bạn chỉ cần gõ lệnh run để yum thực thi tất cả chúng trong một giao dịch duy nhất

    Lệnh yum provides

    Tình huống: Bạn cần cài đặt một công cụ nhưng không nhớ tên package, chỉ nhớ tên file thực thi (ví dụ: netstat) hoặc một file cấu hình quan trọng (/etc/my.cnf). Lúc này, yum search thường sẽ không hữu ích vì bạn chỉ có thể tìm kiếm trong tên và mô tả của package. Trong trường hợp này, bạn có thể sử dụng yum provides (hoặc yum whatprovides). Lệnh này hoạt động bằng cách kiểm tra danh sách tất cả các file của mọi package trong repository để tìm ra chính xác package nào chứa file bạn cần.

    Ví dụ 1: Tìm lệnh netstat

    # Lệnh search thông thường cho ra kết quả nhiễu, không liên quan
    yum search netstat
    
    # Dùng provides để tìm chính xác package chứa file thực thi "netstat"
    yum provides "*/netstat"
    Tìm lệnh netstat
    Tìm lệnh netstat

    Kết quả:

    Kết quả tìm lệnh netstat
    Kết quả tìm lệnh netstat
    net-tools-2.0-0.25.20131004git.el7.x86_64 : Basic networking tools
    Repo        : base
    Matched from:
    Filename    : /bin/netstat

    Kết quả truy vấn xác nhận rằng việc cài đặt package net-tools là điều kiện cần để hệ thống có thể sử dụng lệnh /bin/netstat. Nhờ vậy, vấn đề tìm đúng gói chương trình cho lệnh netstat đã được xử lý hiệu quả và chính xác.

    Ví dụ 2: Tìm package chứa file cấu hình MySQL

    yum provides "/etc/my.cnf"
    Tìm package chứa file cấu hình MySQL
    Tìm package chứa file cấu hình MySQL

    Bạn sẽ thấy kết quả trỏ đến các package như mariadb-libs hoặc mysql-community-libs, giúp bạn biết chính xác cần cài đặt gói nào.

    Quản lý repository

    Tình huống: Bạn cần cài đặt phiên bản PHP 8.1 từ repository Remi, nhưng hệ thống cố gắng cài phiên bản PHP 5.4 cũ từ repo base hoặc gây xung đột với các gói từ repo EPEL. Trong trường hợp này, việc vô hiệu hóa vĩnh viễn các file .repo có thể gây ra sự cố khác nên giải pháp an toàn và linh hoạt hơn là sử dụng cờ --enablerepo--disablerepo để chỉ định repository ngay trong câu lệnh yum.

    Ví dụ: Cài đặt PHP 8.1 từ Remi mà không bị ảnh hưởng bởi repo khác:

    # Vô hiệu hóa TẤT CẢ các repo (*), sau đó chỉ bật lại repo remi-php81
    yum --disablerepo="*" --enablerepo="remi-php81" install php php-cli php-common

    Phân tích lệnh:

    • --disablerepo="*": Một công tắc tổng tạm thời tắt mọi repository.
    • --enablerepo="remi-php81": Chỉ bật duy nhất repository bạn muốn sử dụng cho lần thực thi này.

    Cách làm này đảm bảo yum chỉ nhìn thấy các gói từ repository bạn chỉ định, loại bỏ hoàn toàn nguy cơ xung đột phiên bản hoặc phụ thuộc.

    Truy vết nguồn gốc package

    Tình huống: Bạn tiếp nhận một máy chủ mới và cần nâng cấp một phần mềm, ví dụ như PHP. Vấn đề đặt ra là: Phiên bản PHP hiện tại được cài đặt từ đâu (Từ repo base EPEL, Remi hay được biên dịch từ mã nguồn)? Và việc nâng cấp sai cách có thể phá vỡ toàn bộ hệ thống.

    Bước 1: Kiểm tra xem package có được quản lý bởi RPM/YUM không:

    $ rpm -q php
    php-8.1.27-1.el7.remi.x86_64
    • Nếu lệnh trả về tên và phiên bản đầy đủ như trên, phiên bản được cài đặt từ một package RPM.
    • Nếu lệnh báo lỗi “package php is not installed“, rất có thể phiên bản đã được cài thủ công từ mã nguồn.

    Hoặc bạn dùng lệnh:

    yum list installed
    Kết quả dùng lệnh “yum list installed”
    Kết quả dùng lệnh “yum list installed”

    Bước 2: Tìm ra package được cài từ Repository nào

    Khi đã xác định package được quản lý bởi YUM, hãy dùng lệnh yum info để xem thông tin chi tiết.

    $ yum info php

    Kết quả:

    Loaded plugins: fastestmirror
    Installed Packages
    Name        : php
    Arch        : x86_64
    Version     : 8.1.27
    Release     : 1.el7.remi
    Size        : 4.8 M
    Repo        : installed
    From repo   : remi-php81   <-- ĐÂY CHÍNH LÀ CÂU TRẢ LỜI!
    Summary     : PHP scripting language for creating dynamic web sites
    URL         : http://www.php.net/
    License     : PHP and Zend and BSD
    Description : PHP is an HTML-embedded scripting language.
    Tìm ra package được cài từ Repository nào
    Tìm ra package được cài từ Repository nào

    Dòng From repo : remi-php81 cho bạn biết chính xác nguồn gốc của package, bạn có thể lên kế hoạch nâng cấp hoặc cài đặt các extension khác từ cùng một repository để đảm bảo tính tương thích.

    Câu hỏi thường gặp

    Xử lý lỗi “Could not retrieve mirrorlist” khi chạy yum như thế nào?

    Để khắc phục lỗi “Could not retrieve mirrorlist” khi chạy yum, bạn có thể kiểm tra kết nối mạng và xóa bộ nhớ đệm yum bằng lệnh yum clean all. Nguyên nhân của lỗi này thường do sự cố mạng hoặc sự cố với kho lưu trữ, vì vậy việc làm sạch bộ nhớ đệm là một cách hiệu quả để khắc phục.

    Làm thế nào dọn dẹp cache và khắc phục lỗi khi yum không update được?

    Để khắc phục lỗi khi yum không cập nhật được, trước tiên hãy dọn dẹp cache bằng lệnh yum clean all hoặc yum clean metadata. Sau đó, bạn xóa tất cả các tệp lưu trữ bị lỗi rồi chạy lại yum update.

    Làm sao để hạ cấp package về phiên bản thấp hơn bằng yum?

    Sử dụng câu lệnh yum downgrade để hạ cấp xuống phiên bản trước đó được repo lưu trữ. Lưu ý, không phải repo nào cũng hỗ trợ đầy đủ package cũ, bạn cần kiểm tra kỹ chính sách và cấu trúc repo.​

    Qua bài viết, bạn đã có cái nhìn tổng quan về công cụ Yum và biết cách áp dụng các lệnh cơ bản để thao tác với gói phần mềm trên Linux. Hy vọng những thông tin này sẽ hỗ trợ đắc lực cho công việc quản trị hệ thống của bạn. Nếu bạn muốn tìm hiểu sâu hơn về các chủ đề liên quan đến Linux thì có thể tham khảo thêm một số bài viết dưới đây:

    Đánh giá bài viết
    Nguyễn Hưng
    Tôi là Nguyễn Hưng hay còn được biết đến với nickname là Bo, chuyên gia về hệ thống, mạng và bảo mật. Tôi là Co-Founder của Vietnix và Co-Founder của dự án Chống Lừa Đảo.
    0 0 đánh giá
    Đánh giá bài viết
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận

    BÀI VIẾT LIÊN QUAN

    Hướng dẫn sử dụng lệnh watch trong Linux để giám sát tiến trình hiệu quả
    Hướng dẫn sử dụng lệnh watch trong Linux để giám sát tiến trình hiệu quả

    Lệnh watch Linux là một công cụ dòng lệnh mạnh mẽ giúp bạn tự động thực thi lặp lại một lệnh bất kỳ theo chu kỳ. Thay vì phải gõ lại lệnh liên tục để xem sự thay đổi, watch sẽ cập nhật kết quả ngay trên màn hình của bạn. Bài viết này sẽ…

    30/10/2025

    Hướng dẫn kỹ thuật backup dữ liệu real-time bằng cách kết hợp tar và netcat
    Hướng dẫn kỹ thuật backup dữ liệu real-time bằng cách kết hợp tar và netcat

    Kỹ thuật nén và chuyển file backup real-time bằng tar nc là phương pháp sử dụng hai công cụ dòng lệnh phổ biến trong hệ điều hành Linux để nén dữ liệu và truyền trực tiếp giữa hai máy chủ mà không cần tạo ra file trung gian trên server nguồn. Trong bài viết này,…

    30/10/2025

    Hướng dẫn sao lưu dữ liệu trực tiếp qua mạng bằng tar qua SSH khi server đầy bộ nhớ
    Hướng dẫn sao lưu dữ liệu trực tiếp qua mạng bằng tar qua SSH khi server đầy bộ nhớ

    Khi ổ cứng đầy, giải pháp tốt nhất là bạn nên kết hợp tar và ssh để tạo một pipepline truyền dữ liệu trực tiếp qua mạng mà không cần lưu trữ trung gian. Bài viết này sẽ hướng dẫn chi tiết từng bước thực hiện backup bằng tar SSH trong điều kiện tài nguyên…

    30/10/2025

    Cách dùng Multitail để phân tích và đọc log chính xác, đơn giản
    Cách dùng Multitail để phân tích và đọc log chính xác, đơn giản

    Multitail là một công cụ dòng lệnh mạnh mẽ trên Linux giúp hiển thị nhiều file log hoặc output của nhiều lệnh khác nhau trên cùng một màn hình terminal, với khả năng chia nhỏ cửa sổ linh hoạt và các tính năng vượt trội so với lệnh tail truyền thống. Trong bài viết này,…

    30/10/2025