Cách tìm và sửa các gói bị hỏng trên Linux | Học trực tuyến CNTT, học lập trình từ cơ bản đến nâng cao

Cách tìm và sửa các gói bị hỏng trên Linux

Chia sẻ kiến thức 06/03/2022

Nếu các gói trên Linux bị hỏng mà không được sửa chữa, phần mềm sẽ không chạy. Bài viết này sẽ hướng dẫn bạn cách tìm các gói bị hỏng và sửa chúng trong Linux.

Trình quản lý gói (Package manager) trong Linux cho phép bạn kiểm soát việc cài đặt và gỡ bỏ các gói (package). Ngoài ra, trình quản lý gói cũng giúp bạn tìm kiếm các gói bị hỏng (broken package) trên hệ thống và cài đặt lại chúng để khắc phục các sự cố khác nhau liên quan đến các gói Linux.

Nếu bạn không biết sử dụng lệnh nào để tìm và sửa các gói bị hỏng trong Linux, thì hướng dẫn này là dành cho bạn. Chúng tôi sẽ thảo luận chi tiết ngắn gọn về các gói bị hỏng, cách bạn có thể kiểm tra xem hệ thống của mình có chứa các gói bị hỏng hay không và cách cài đặt lại chúng đúng cách.

Gói bị hỏng là gì?

Khi bạn cài đặt một gói mới trong Linux, trình quản lý gói của hệ thống sẽ phụ trách toàn bộ quá trình cài đặt. Các trình quản lý gói này có các phương pháp tích hợp để xử lý các trường hợp ngoại lệ và lỗi. Nhưng đôi khi, trong trường hợp xảy ra sự cố không mong muốn, quá trình cài đặt sẽ tạm dừng và gói hoàn chỉnh không được cài đặt. Các gói như vậy được gọi là các gói bị hỏng trong Linux.

Các trình quản lý gói như APT không cho phép cài đặt thêm các gói khác nếu phát hiện thấy một gói bị hỏng trên hệ thống. Trong tình huống như vậy, sửa chữa gói bị hỏng là sự lựa chọn duy nhất.

Cách tìm và sửa các gói bị hỏng

Mọi trình quản lý gói đều xử lý các loại gói khác nhau. Ví dụ: DNF và YUM làm việc với Trình quản lý gói Red Hat (RPM) để tải xuống và cài đặt các gói RPM. 

Cài đặt lại các gói bị hỏng trên Debian

APT là trình quản lý gói mặc định được cài đặt sẵn trên mọi bản phân phối dựa trên Debian. Ngoài APT, người dùng Debian và Ubuntu cũng có thể tải xuống và cài đặt các gói theo cách thủ công bằng dpkg.

Để sửa các gói bị hỏng trên các bản phân phối dựa trên Debian bằng APT:

  1. Mở terminal bằng cách nhấn Ctrl + Alt + T trên bàn phím và nhập:
    sudo apt --fix-missing update
  2. Cập nhật danh sách gói hệ thống của bạn từ các nguồn có sẵn:
    sudo apt update
  3. Bây giờ, bắt buộc cài đặt các gói bị hỏng bằng cờ (flag) -f . APT sẽ tự động tìm kiếm các gói bị hỏng trên hệ thống và cài đặt lại chúng từ kho lưu trữ (repository) chính thức.
    sudo apt install -f

Nếu các bước nói trên không hiệu quả với bạn, thì bạn có thể cố gắng giải quyết vấn đề bằng cách sử dụng dpkg.

  1. Buộc dpkg định cấu hình lại (reconfigure) tất cả các gói đang chờ xử lý đã được giải nén nhưng cần phải cấu hình lại. Cờ -a trong lệnh là viết tắt của All (tất cả). 
    sudo dpkg --configure -a
  2. Pipe grep với dpkg để nhận danh sách tất cả các gói được dpkg đánh dấu là Required (Bắt buộc).
     
    sudo dpkg -l | grep ^..r
  3. Sử dụng cờ –remove (loại bỏ) để xóa tất cả các gói bị hỏng.
    sudo dpkg --remove --force-remove-reinstreq
  4. Dọn dẹp bộ nhớ cache của gói và cài đặt các tập lệnh bằng cách sử dụng apt clean.
    sudo apt clean
  5. Bây giờ, hãy cập nhật danh sách gói hệ thống của bạn bằng lệnh sau:
    sudo apt update

Sửa các gói bị hỏng trên Fedora/CentOS và RHEL

Mặc dù YUM và DNF tự động quản lý các gói bị hỏng khá hiệu quả, nhưng đôi khi các vấn đề vẫn phát sinh do có hàng nghìn gói được cài đặt trên hệ thống Linux. Trong những tình huống như vậy, bạn có thể sử dụng RPM (trình quản lý gói cơ sở cho Fedora và CentOS) để khắc phục các sự cố như vậy một cách nhanh chóng.

  1. Xác minh tất cả các gói trên hệ thống của bạn bằng cờ -V .
    sudo rpm -Va
  2. Bạn sẽ thấy một danh sách dài chứa tất cả các gói đã cài đặt trên hệ thống của mình.
  3. Cài đặt lại gói mà bạn cho rằng có thể gây ra sự cố gói bị hỏng.
    sudo dnf --refresh reinstall packagename

Các bước trên rất bất tiện — việc xác định gói nào đang gây ra sự cố từ một danh sách hàng trăm gói là rất mệt mỏi. Mặc dù RPM là một trình quản lý gói mạnh mẽ và bạn sẽ hiếm khi gặp phải những vấn đề như vậy, nhưng biết cách khắc phục những vấn đề này vẫn rất quan trọng trong trường hợp bạn gặp phải tình huống tương tự.

Quản lý các gói trên bản phân phối Linux

Trình quản lý gói trên Linux có khả năng xử lý hầu hết các vấn đề, bao gồm cả cài đặt không thành công. Nhưng đôi khi, các vấn đề khác nhau vẫn xảy ra. Giải pháp để sửa các gói bị hỏng bao gồm một số bước — xác định gói bị hỏng, cài đặt lại và cập nhật danh sách gói của hệ thống.

Dịch từ: https://www.makeuseof.com/how-to-find-and-fix-broken-packages-on-linux/

Vân Nguyễn

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
FUNiX V2 GenAI Chatbot ×

yêu cầu gọi lại