Lệnh dpkg trong Linux là công cụ quản lý gói phần mềm trên các hệ điều hành dựa trên Debian, cho phép cài đặt, gỡ cài đặt, kiểm tra và quản lý các package .deb một cách linh hoạt. Hãy cùng mình tham khảo thêm về chủ đề lệnh dpkg trong bài hướng dẫn dưới đây.
Những điểm chính
- Giới thiệu lệnh dpkg: Là công cụ quản lý gói phần mềm trên các hệ điều hành dựa trên Debian.
- Cú pháp lệnh dpkg: Cung cấp cú pháp cơ bản của lệnh dpkg để cài đặt, gỡ bỏ, và quản lý các gói phần mềm.
- Tùy chọn của lệnh dpkg: Tổng hợp các tùy chọn quan trọng của dpkg như: cài đặt, liệt kê, kiểm tra trạng thái và cấu hình package.
- Biết đến Vietnix – Nhà cung cấp dịch vụ VPS uy tín với hơn 12 năm kinh nghiệm.
Lệnh dpkg trong Linux là gì?
Lệnh dpkg
là trình quản lý package cấp thấp cho các hệ điều hành Linux dựa trên Debian, (Ví dụ: Như Ubuntu). Lệnh này giúp xử lý cài đặt, cấu hình, nâng cấp và gỡ bỏ các package .deb, phù hợp cho việc quản lý package cục bộ và thao tác chi tiết, khác với lệnh apt ở việc không tự động xử lý phụ thuộc.

Việc quản lý các gói phần mềm trên Linux thông qua lệnh dpkg sẽ trở nên mượt mà hơn khi bạn sử dụng một hệ thống máy ảo VPS với hiệu suất ổn định và mạnh mẽ. Dịch vụ AMD VPS của Vietnix, được trang bị bộ xử lý AMD EPYC mạnh mẽ và ổ cứng NVMe Enterprise siêu tốc, sẽ mang lại cho bạn một hệ thống lý tưởng để tối ưu hóa công việc với các lệnh hệ thống. Với khả năng nâng cấp linh hoạt và không giới hạn dữ liệu, bạn có thể hoàn toàn yên tâm khi sử dụng VPS của Vietnix cho mọi nhu cầu quản lý hệ thống và phần mềm.
Cú pháp lệnh dpkg trong Linux
dpkg [options] action
Lệnh yêu cầu có 1 action và option có thể có hoặc không. Ngoải ra, lệnh này có vai trò như giao diện (front-end) cho 2 công cụ sau:
Lệnh dpkg-deb
: hiển thị thông tin về package .deb.Lệnh dpkg-query
: hiển thị thông tin từ database củadpkg
.
Lệnh dpkg
thực thi action từ 2 lệnh trên, do đó khi bạn chạy 2 lệnh sau sẽ cho ra kết cùng một kết quả:
dpkg -l
dpkg-query -l
Tùy chọn -l
cho phép hiển thị tất cả package từ database của dpkg
, lệnh có thể phát hiện các option ngoài và tự chạy dpkg-query
.
Các tùy chọn của lệnh dpkg
Cú pháp | Loại | Mô tả |
---|---|---|
-i <package.deb>--install <package.deb> | Action | Cài đặt package |
--unpack <package.deb> | Action | Giải nén package không cần cấu hình |
--configure <package> | Action | Cấu hình cho package đã giải nén |
-r <package>--remove <package> | Action | Gỡ bỏ package đã cài nhưng để lại file cấu hình và các dữ liệu khác |
-P <package>--purge <package> | Action | Xóa bỏ hoàn toàn package đã cài hay gỡ bỏ, bao gồm file cấu hình và dữ liệu liên quan khác |
--get-selections | Action | Lấy package với lựa chọn hiện có |
--set-selections | Action | Đặt trạng thái chọn file từ file được đọc ở input |
-b <directory>--build <directory> | Action (from dpkg-deb) | Xây dựng .deb package. |
-c <package.deb>--contents <package.deb> | Action (from dpkg-deb) | Liệt kê nội dung các package. |
-I <package.deb>--info <package.deb> | Action (from dpkg-deb) | Hiển thị thông tin về package. |
-l <pattern>--list <pattern> | Action (from dpkg-query) | Liệt kê package trùng khớp với pattern. |
-L <package>--listfiles <package> | Action (from dpkg-query) | Liệt kê vị trí file của package đã cài. |
-s <package>--status <package> | Action (from dpkg-query) | Hiển thị trạng thái của package đã cài. |
-S <pattern>--search <pattern> | Action (from dpkg-query) | Tìm pattern trong package đã cài. |
-R--recursive | Option | Xử lý action đệ quy nằm trong target directory và subdirectory. |
--log=<file> | Option | Ghi lại trạng thái cập nhật vào file. |
--no-act--dry-run--simulate | Option | Hiển thị output không có thay đổi, dùng trước action. |
Lưu ý
Các action liên quan thiết lập hệ thống sẽ yêu cầu quyền sudo. Trong khi đó các lệnh xem thông tin sẽ không cần phân quyền đặc biệt.
19 ví dụ cụ thể cách sử dụng lệnh dpkg trong Linux
wget http://ports.ubuntu.com/pool/universe/c/cowsay/cowsay_3.03+dfsg2-8_all.deb

Kết quả: Bạn dùng lệnh ls để tìm file mình đã download.

Ví dụ 1: Cài đặt package với lệnh dpkg trong Linux
Để cài đặt 1 package, bạn sử dụng lệnh dpkg
với option -i
như sau:
sudo dpkg -i <package.deb>

Ví dụ: Để cài đặt package cowsay_3.03+dfsg2-8_all.deb, bạn nhập lênh sau:
sudo dpkg -i cowsay_3.03+dfsg2-8_all.deb
Kết quả: Lệnh này sẽ tiến hành giải nén và cài đặt package có tên cowsay có số phiên bản là 3.03+dfsg2-8.

Ví dụ 2: Sử dụng lệnh dpkg để liệt kê package
Với option -l
, lệnh dpkg
có vai trò hiển thị tất cả package hiện có trong hệ thống. Bạn thực hiện cú pháp lệnh như sau:
dpkg -l
Kết quả: Danh sách các package được liệt kê. Bạn dùng nút mũi tên lên/xuống để xem danh sách, nhấn q để thoát.

Cột đầu tiên cho biết trạng thái chung của package hiện có và ý nghĩa trong đó như sau:
1. Action selection:
- u – Unknown
- i – Install
- h – Hold
- r – Remove
- p – Purge
2. Package status:
- n – Not installed
- c – Config files
- H – Half installed
- U – Unpacked
- F – Half configured
- W – Awaiting triggers
- t – Pending triggers
- i – Installed
3. Error flags:
- R – Reinstallation required
- <empty> – No errors

Ví dụ: Để tìm package cụ thể như cowsay, bạn nhập lệnh sau:
dpkg -l cowsay
Kết quả: Theo trong hình, bạn thấy cột đầu tiên chỉ trạng thái “ii“- package đã cài đặt thành công, không có xuất hiện lỗi.

Lưu ý
Nếu bạn muốn liệt kê nhiều package, mỗi gói sẽ cách nhau một khoảng trắng (space).
Ví dụ 3: Xóa Package bằng lệnh dpkg trong Linux
Để xóa một package, bạn hãy nhập lệnh sau:
dpkg -r <package>

Ví dụ: Bạn muốn xóa package tên cowsay, hãy nhập lệnh sau:
sudo dpkg -r cowsay
Kết quả: Với option -r
, lệnh sẽ không bỏ đi các file cấu hình, thuận tiện cho việc bạn cài lại sau này.

Ví dụ 4: Gỡ bỏ package bằng lệnh dpkg trong Linux
Để gỡ bỏ một package, bạn kết hợp lệnh dpkg
với tùy chọn -P
.
sudo dpkg -P <package>

Ví dụ: Để gỡ bỏ package tên cowsay, bạn dùng lệnh sau:
sudo dpkg -P cowsay
Kết quả: Lệnh dpkg
với tùy chọn này sẽ xóa bỏ toàn bộ package cùng với các file cấu hình, việc thực hiện purge (xóa) một package đồng nghĩa rằng khi bạn muốn cài lại package này, bạn cần phải thiết lập lại cấu hình package (nếu có).

Ví dụ 5: Hiển thị nội dung package với lệnh dpkg trong Linux
Trong package .deb sẽ có chứa các file và directory giúp nhận biết về vị trí package được cài đặt hoặc giải nén. Cú pháp lệnh như sau:
dpkg -c <package.deb>

Ví dụ: Bạn cần hiển thị nội dung của package cowsay_3.03+dfsg2-8_all.deb, dùng cú pháp sau:
dpkg -c cowsay_3.03+dfsg2-8_all.deb
Kết quả: Trả về toàn bộ file và directory có trong .deb package. Sau khi package được giải nén và cài đặt thì nơi chứa file sẽ lần lượt chứa trong 2 đường dẫn /usr/game và /usr/share.

Lưu ý
Bạn nên nhập chính xác tên package.deb nếu trong hệ thống có nhiều hơn một file .deb để tránh được trường hợp hệ thống tìm thấy các file cùng tên mà không phải định dạng này và không thực thi được lệnh.
Ví dụ 6: Sử dụng lệnh dpkg để giải nén package
Để giải nén package, bạn nhập lệnh sau:
sudo dpkg --unpack <package.deb>

Ví dụ: Để giải nén package cowsay_3.03+dfsg2-8_all.deb, bạn dùng cú pháp lệnh sau:
sudo dpkg --unpack cowsay_3.03+dfsg2-8_all.deb
Kết quả: Tùy chọn --unpack
sẽ giải nén toàn bộ file có trong package.

Ví dụ 7: Cấu hình package bằng lệnh dpkg trong Linux
Nếu bạn muốn thiết lập cấu hình cho package chưa giải nén hoặc đã cài trên hệ thống, hãy nhập lệnh sau:
dpkg --configure <package>

Ví dụ: Bạn muốn thiết lập cấu hình cho package cowsay, hãy dùng cú pháp sau:
sudo dpkg --configure cowsay

Ví dụ 8: Kiểm tra trạng thái của package
Bạn muốn biết package được cài đặt lên hệ thống hay chưa, hãy nhập lệnh sau:
dpkg -s <package>

Ví dụ: Để kiểm tra trạng thái của package cowsay, bạn sử dụng lệnh sau:
dpkg -s cowsay

Ví dụ 9: Xem thông tin package
Nếu bạn cần xem thông tin trực tiếp từ file .deb, hãy nhập lệnh kết hợp với tùy chọn -I
như sau:
dpkg -I <package.deb>

Ví dụ: Bạn cần xem thông tin package cowsay_3.03+dfsg2-8_all.deb, nhập lệnh sau:
dpkg -I cowsay_3.03+dfsg2-8_all.deb
Kết quả: Bạn sẽ thấy đầy đủ thông tin cần thiết về package chỉ định như version, tên package, dung lượng cài, tác giả/người duy trì,…. Option này rất có ích khi bạn cần hiểu và nắm rõ về file cần cài đặt sao cho phù hợp hệ thống.

Ví dụ 10: Cài đặt tất cả package trong directory
Bạn kết hợp 2 tùy chọn -R
và -i
để thực hiện cài đặt tất cả package có trong directory theo cách đệ quy:
dpkg -R -i <directory>
Kết quả: Trong ví dụ này, lệnh cài đặt tất cả các package nằm trong thư mục và bất kỳ thư mục con nào. Nếu nhiều phiên bản của cùng một package được giải nén, chỉ có một cấu hình được thực hiện.

Ví dụ 11: Xem vị trí các package đã cài
Sau khi cài đặt thành công, bạn muốn xem vị trí file hiện tại đang chứa ở đâu, hãy nhập lệnh dpkg
cùng tùy chọn -L
như sau:
dpkg -L <package>

Ví dụ 12: Lấy package theo lựa chọn
Để lựa chọn ra tên package, bạn sử dụng tùy chọn --get-option
.
dpkg --get-selections

Ví dụ 13: Danh sách các package đã cài
Bạn muốn liệt kê danh sách các package đã cài đặt, hãy nhập lệnh sau:
dpkg --get-selections | grep -v "deinstall" | awk '{ print $1 }'
Kết quả: Trong lệnh sau, bạn dùng lệnh grep để tiến hành tìm các package được đánh dấu là “deinstall”, lệnh awk sẽ hiển thị cột giá trị đầu tiên là tên các package.

Ví dụ 14: Thiết lập lựa chọn package
Để tiến hành thiết lập lựa chọn package, bạn hãy nhập lệnh sau:
echo <package> <state> | dpkg --set-selections
Các trạng thái (state) có thể nhận thấy phổ biến bao gồm:
- install
- hold
- deinstall
- purge
- unknown

Ví dụ: Bạn muốn ngừng tính năng tự động cập nhật của một package.
echo cowsay hold | sudo dpkg --set-selections
Package chỉ định sẽ chuyển sang trạng thái chờ, không tự nhận các bản cập nhật mới.
Ví dụ 15: Tìm file chứa package bằng lệnh dpkg trong Linux
Để tìm file đang chứa package, bạn kết hợp lệnh dpkg với tùy chọn -S
.
dpkg -S <pattern>

Ví dụ: Bạn cần tìm apt-get:

Kết quả: Trả về các vị trí của package apt. Đối với việc cần tìm cụ thể hơn bạn cần phải nhập chính xác tên mong muốn.

Ví dụ 16: So sánh phiên bản
Ngoài ra, lệnh dpkg
còn có thể xem là công cụ đối chiếu phiên bản của package:
dpkg --compare-versions <version number> <comparison operator> <version number>
Các toán tử được dùng để so sánh bao gồm:
- lt – Strictly less than – ít hơn
- le – Less than or equal to – ít hơn bằng
- eq – Equal – bằng
- ne – Not equal – không bằng
- ge – Greater than or equal to – lớn hơn bằng
- gt – Strictly greater than – lớn hơn
Khi lệnh trả về kết quả là 0 (thành công) đồng nghĩa so sánh chính xác và không có giá giá trị nào bị lỗi.

Ví dụ: Bạn cần đối chiều 2 phiên bản 1.2-3 và 1.1-4, bạn nhập lệnh sau:
dpkg --compare-versions 1.2-3 gt 1.1-4
echo $?
Kết quả: Theo như trong hình với toán tử là gt (lớn hơn bằng) và lệnh echo trả về 0 nghĩa là phép so sánh phiên bản đã đúng, số phiên bản đầu tiên lớn hơn phiên bản thứ hai.

Ví dụ 17: Xem kiến trúc xử lý được hỗ trợ
Trong tất cả package Debian đều có lưu trữ thông tin về kiến trúc xử lý được hỗ trợ. Điều này giúp hệ thống được sử dụng package chính xác và tối ưu phù hợp cấu hình.

Ví dụ: Để sử dung amd64 (hệ thống 64 bit) hỗ trợ cài đặt i386 (hệ thống 32 bit). Bạn có thể dùng lệnh dpkg
đi kèm tùy chọn --printf-architecture
để xem được thông tin này:
dpkg --printf-architecture

Nếu bạn cần xem việc hỗ trợ kiến trúc khác có thể dùng lệnh sau:
dpkg --print-foreign-architectures

Đối với việc thêm hay loại bỏ hỗ trợ kiến trúc, bạn có thể áp dụng 2 lệnh sau:
sudo dpkg --add-architecture <architecture name>
sudo dpkg --remove-architecture <architecture name>
Lưu ý
Mọi thay đổi ở trường hợp sau đều được cập nhật thay đổi ngay lập tức trên danh sách kiến trúc xử lý.
Ví dụ 18: Xem phiên bản bằng lệnh dpkg
Để xem phiên bản hiện tại của lệnh dpkg
, bạn hãy nhập lệnh sau:
dpkg --version

Ví dụ 19: Xem thông tin bổ trợ lệnh dpkg
Bạn muốn xem các thông tin hỗ trợ, hãy nhập lệnh sau:
dpkg --help

Vietnix – Nhà cung cấp dịch vụ VPS uy tín với hơn 12 năm kinh nghiệm
Với hơn 12 năm kinh nghiệm trong lĩnh vực cung cấp dịch vụ VPS, Vietnix đã khẳng định vị thế là đối tác đáng tin cậy của hàng ngàn cá nhân và doanh nghiệp. Các gói VPS tại Vietnix được thiết kế để mang lại hiệu suất ổn định, bảo mật cao, và khả năng tùy chỉnh linh hoạt, đáp ứng mọi nhu cầu sử dụng. Bên cạnh đó, Vietnix cam kết uptime 99.9%, băng thông lớn cùng hệ thống hỗ trợ kỹ thuật 24/7, giúp bạn tập trung phát triển dự án mà không lo gián đoạn.
Thông tin liên hệ:
- Hotline: 18001093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
- Website: https://vietnix.vn/
Lệnh dpkg là công cụ mạnh mẽ để quản lý package trên các hệ điều hành Linux dựa trên Debian. Hiểu và sử dụng hiệu quả lệnh dpkg cùng các option giúp bạn kiểm soát cài đặt, gỡ bỏ và quản lý package phần mềm một cách chi tiết, đặc biệt trong các trường hợp thao tác trực tiếp với file .deb. Nếu bạn còn thắc mắc về quá trình thực thi lệnh, hãy để lại bình luận để được đội ngũ Vietnix hỗ trợ.