Linux dpkg command

Tìm hiểu về lệnh dpkg trong Linux: Quản lý gói phần mềm mạnh mẽ (A Beginner's Guide)

Trong thế giới Linux đa dạng và linh hoạt, việc quản lý gói phần mềm là một phần thiết yếu để duy trì hệ thống ổn định và cập nhật. Trong số nhiều công cụ có sẵn, dpkg nổi bật như một trình quản lý gói mạnh mẽ và linh hoạt, đặc biệt quan trọng trên các hệ thống dựa trên Debian như Ubuntu và Linux Mint. Bài viết này sẽ cung cấp cho bạn một cái nhìn tổng quan toàn diện về dpkg, từ những khái niệm cơ bản đến các ví dụ thực tế, giúp bạn tự tin hơn trong việc quản lý phần mềm trên hệ thống Linux của mình.

dpkg là gì và tại sao nó quan trọng?

dpkg (Debian Package Manager) là một công cụ dòng lệnh được sử dụng để cài đặt, gỡ bỏ và quản lý các gói phần mềm .deb trên hệ thống Linux. Nó hoạt động như một nền tảng cơ bản cho các trình quản lý gói cấp cao hơn như apt (Advanced Package Tool). Sự khác biệt chính là dpkg trực tiếp làm việc với các tệp .deb, trong khi apt có thể tự động giải quyết các phụ thuộc gói và tải xuống các gói cần thiết từ các kho lưu trữ.

Việc hiểu dpkg rất quan trọng vì nó cho phép bạn kiểm soát hoàn toàn quá trình cài đặt và gỡ bỏ phần mềm. Trong một số trường hợp, bạn có thể cần sử dụng dpkg trực tiếp khi apt không thể giải quyết được một số vấn đề, hoặc khi bạn muốn cài đặt một gói phần mềm không có sẵn trong các kho lưu trữ chính thức.

Cài đặt gói .deb bằng lệnh dpkg

Để cài đặt một gói .deb bằng dpkg, bạn sử dụng lệnh sau:

sudo dpkg -i <tên_gói.deb>

Trong đó:

  • sudo: Cần thiết để thực hiện lệnh với quyền quản trị viên.
  • dpkg: Gọi trình quản lý gói dpkg.
  • -i hoặc --install: Chỉ định rằng bạn muốn cài đặt một gói.
  • <tên_gói.deb>: Đường dẫn đến tệp .deb bạn muốn cài đặt.

Ví dụ, để cài đặt gói google-chrome-stable_current_amd64.deb, bạn sẽ chạy lệnh:

sudo dpkg -i google-chrome-stable_current_amd64.deb

Lưu ý quan trọng: dpkg sẽ không tự động giải quyết các phụ thuộc. Nếu gói bạn cài đặt yêu cầu các gói khác, dpkg sẽ báo lỗi. Bạn cần cài đặt các phụ thuộc này trước khi cài đặt gói chính. apt có thể giúp bạn giải quyết các phụ thuộc này. Sau khi dpkg báo lỗi thiếu phụ thuộc, bạn có thể chạy lệnh sudo apt-get install -f để apt tự động tải xuống và cài đặt các phụ thuộc còn thiếu.

Gỡ bỏ gói bằng lệnh dpkg

Để gỡ bỏ một gói phần mềm đã cài đặt bằng dpkg, bạn sử dụng lệnh sau:

sudo dpkg -r <tên_gói>

Trong đó:

  • sudo: Cần thiết để thực hiện lệnh với quyền quản trị viên.
  • dpkg: Gọi trình quản lý gói dpkg.
  • -r hoặc --remove: Chỉ định rằng bạn muốn gỡ bỏ một gói.
  • <tên_gói>: Tên của gói bạn muốn gỡ bỏ (không phải tên tệp .deb). Bạn có thể tìm tên gói bằng lệnh dpkg -l.

Ví dụ, để gỡ bỏ gói google-chrome-stable, bạn sẽ chạy lệnh:

sudo dpkg -r google-chrome-stable

Để gỡ bỏ gói và tất cả các tệp cấu hình của nó, bạn sử dụng lệnh:

sudo dpkg -P <tên_gói>

Trong đó -P hoặc --purge chỉ định rằng bạn muốn gỡ bỏ hoàn toàn gói và tất cả các tệp cấu hình liên quan.

Các lệnh dpkg hữu ích khác

Ngoài cài đặt và gỡ bỏ, dpkg còn cung cấp nhiều lệnh khác để quản lý gói phần mềm. Dưới đây là một số lệnh hữu ích:

  • dpkg -l: Liệt kê tất cả các gói đã cài đặt trên hệ thống.
  • dpkg -s <tên_gói>: Hiển thị thông tin chi tiết về một gói cụ thể.
  • dpkg -L <tên_gói>: Liệt kê tất cả các tệp được cài đặt bởi một gói cụ thể.
  • dpkg --configure <tên_gói>: Cấu hình lại một gói đã cài đặt (thường hữu ích sau khi nâng cấp hệ thống).
  • dpkg --unpack <tên_gói.deb>: Giải nén một gói .deb mà không cài đặt nó.

Ví dụ thực tế về việc sử dụng dpkg

Tình huống 1: Cài đặt một gói không có trong kho lưu trữ.

Giả sử bạn muốn cài đặt một phần mềm không có sẵn trong kho lưu trữ chính thức của Ubuntu. Bạn đã tải xuống tệp .deb từ trang web của nhà phát triển. Bạn có thể sử dụng dpkg -i để cài đặt gói này.

Tình huống 2: Sửa lỗi phụ thuộc sau khi cài đặt bằng dpkg.

Bạn đã cài đặt một gói bằng dpkg, nhưng sau đó nhận được thông báo lỗi về các phụ thuộc bị thiếu. Bạn có thể sử dụng sudo apt-get install -f để yêu cầu apt tự động giải quyết và cài đặt các phụ thuộc còn thiếu.

Tình huống 3: Kiểm tra thông tin về một gói đã cài đặt.

Bạn muốn biết thông tin chi tiết về một gói đã cài đặt, chẳng hạn như phiên bản, nhà cung cấp và mô tả. Bạn có thể sử dụng dpkg -s <tên_gói> để hiển thị thông tin này.

So sánh dpkg và apt

Mặc dù cả dpkgapt đều được sử dụng để quản lý gói phần mềm trên hệ thống Debian, nhưng chúng có những điểm khác biệt quan trọng:

Tính năng dpkg apt
Xử lý phụ thuộc Không tự động xử lý. Yêu cầu người dùng cài đặt các phụ thuộc thủ công. Tự động giải quyết và cài đặt các phụ thuộc.
Nguồn gói Chỉ làm việc với các tệp .deb cục bộ. Tải xuống các gói từ các kho lưu trữ trực tuyến.
Mức độ phức tạp Đơn giản hơn, phù hợp cho các tác vụ cơ bản. Phức tạp hơn, cung cấp nhiều tính năng nâng cao.
Mục đích sử dụng Cài đặt/gỡ bỏ các gói .deb cục bộ, kiểm tra thông tin gói. Quản lý gói phần mềm toàn diện, bao gồm cài đặt, gỡ bỏ, nâng cấp và giải quyết phụ thuộc.

FAQ về lệnh dpkg

Câu hỏi: Làm thế nào để biết tên chính xác của một gói để gỡ bỏ bằng lệnh dpkg -r?

Trả lời: Bạn có thể sử dụng lệnh dpkg -l để liệt kê tất cả các gói đã cài đặt. Tên gói được hiển thị ở cột thứ hai.

Câu hỏi: Tại sao tôi nhận được lỗi "permission denied" khi chạy lệnh dpkg?

Trả lời: Bạn cần sử dụng sudo trước lệnh dpkg để thực hiện nó với quyền quản trị viên.

Câu hỏi: Tôi có nên sử dụng dpkg hay apt?

Trả lời: Trong hầu hết các trường hợp, bạn nên sử dụng apt vì nó tự động giải quyết các phụ thuộc. dpkg hữu ích khi bạn cần cài đặt một gói .deb cục bộ hoặc khi apt không thể giải quyết được một số vấn đề.

Câu hỏi: Làm thế nào để cập nhật danh sách các gói có sẵn từ kho lưu trữ?

Trả lời: Bạn sử dụng lệnh sudo apt update để cập nhật danh sách này.

Kết luận

dpkg là một công cụ quản lý gói phần mềm mạnh mẽ và linh hoạt trong Linux. Mặc dù apt thường được ưu tiên hơn để quản lý gói một cách tổng thể, việc hiểu và sử dụng dpkg giúp bạn có được sự kiểm soát tốt hơn đối với hệ thống của mình và giải quyết các vấn đề phức tạp. Hy vọng bài viết này đã cung cấp cho bạn một cái nhìn tổng quan toàn diện về dpkg và giúp bạn tự tin hơn trong việc quản lý phần mềm trên hệ thống Linux của mình.

Last Updated : 22/08/2025