apt-get là tiện ích dòng lệnh trên các hệ điều hành Linux dựa trên Debian, hỗ trợ bạn cài đặt, nâng cấp, gỡ bỏ và quản lý phụ thuộc gói phần mềm một cách tự động và chính xác. Trong bài viết này, bạn sẽ tìm hiểu chi tiết cách sử dụng apt-get từ những lệnh cơ bản đến các tình huống xử lý lỗi thực tế để quản trị hệ thống hiệu quả hơn.
Những điểm chính
- Khái niệm: Hiểu rõ apt-get là tiện ích dòng lệnh truyền thống, giúp bạn quản lý các gói phần mềm định dạng .deb trên các hệ thống dựa trên Debian.
- Chức năng: Nắm được các chức năng chính như cài đặt, cập nhật, gỡ bỏ và xử lý phụ thuộc, giúp bạn quản lý vòng đời phần mềm một cách tự động và chính xác.
- Lý do sử dụng: Biết được tầm quan trọng của apt-get trong việc duy trì hệ thống ổn định và bảo mật, giúp bạn chủ động áp dụng các bản vá và cập nhật phần mềm kịp thời.
- So sánh với apt: Phân biệt rõ sự khác biệt giữa apt (hiện đại, thân thiện) và apt-get (truyền thống, ổn định cho script), giúp bạn lựa chọn đúng công cụ cho từng tình huống.
- Bảng tóm tắt lệnh: Nắm được bảng tóm tắt các lệnh apt-get cơ bản, giúp tra cứu nhanh và thực hiện các tác vụ quản lý gói hàng ngày.
- Hướng dẫn sử dụng: Nắm vững các bước thực hành từ cập nhật danh sách gói, nâng cấp hệ thống đến cài đặt và gỡ bỏ phần mềm, giúp bạn quản trị hệ thống một cách hiệu quả.
- Kiểm tra và xử lý lỗi: Biết cách xác nhận kết quả và khắc phục các lỗi phổ biến như không tìm thấy gói hoặc lỗi lock, giúp bạn giải quyết nhanh các sự cố thường gặp.
- Câu hỏi thường gặp: Được giải đáp các thắc mắc về tải trước gói, dọn dẹp cache và quản lý kho lưu trữ, giúp củng cố kiến thức và làm rõ các vấn đề thực tế.
apt-get là gì?
apt-get là tiện ích dòng lệnh truyền thống trong các bản phân phối Linux dựa trên Debian như Ubuntu, được xây dựng trên hệ thống Advanced Packaging Tool (APT) để quản lý các gói phần mềm định dạng .deb. Công cụ này cho phép bạn tìm kiếm, cài đặt, nâng cấp, gỡ bỏ gói và tự động xử lý các phụ thuộc, giúp việc bảo trì và cập nhật hệ thống diễn ra thuận tiện, chính xác và an toàn hơn. Ngoài ra, lệnh apt-get yêu cầu đặc quyền root (sudo) để thực hiện các thao tác cài đặt, nâng cấp hoặc gỡ bỏ gói.

Chức năng chính của apt-get
Các chức năng cơ bản của apt-get xoay quanh việc giúp bạn cài đặt, cập nhật và gỡ bỏ phần mềm trên các hệ thống Debian/Ubuntu thông qua một vài lệnh đơn giản trong terminal:
- Cài đặt gói mới: Bạn sử dụng apt-get install [tên_gói] để thêm phần mềm vào hệ thống, ví dụ: sudo apt-get install scrot khi cần cài công cụ chụp màn hình.
- Cập nhật danh sách gói: Bạn chạy apt-get update để tải về thông tin mới nhất về các gói từ những kho lưu trữ đã cấu hình, đảm bảo dữ liệu gói luôn được làm mới trước khi cài đặt hoặc nâng cấp.
- Nâng cấp hệ thống: Bạn dùng apt-get upgrade để nâng cấp các gói đã cài đặt lên phiên bản mới hơn hiện có trong kho, giúp hệ thống nhận các bản vá và tính năng mới.
- Gỡ bỏ phần mềm: Bạn áp dụng apt-get remove [tên_gói] để xóa một gói khỏi hệ thống khi không còn nhu cầu sử dụng, trong khi vẫn giữ lại tệp cấu hình nếu chưa cần xóa sạch.
- Xử lý phụ thuộc: Bạn để apt-get tự động tìm và cài đặt các gói phụ thuộc cần thiết mỗi khi cài hoặc nâng cấp phần mềm, tránh lỗi thiếu thư viện và giúp ứng dụng hoạt động ổn định.

Lý do nên sử dụng lệnh apt-get
apt-get được xem như một trong những công cụ dòng lệnh quan trọng nhất để quản lý vòng đời phần mềm trên các hệ thống Ubuntu/Debian, đặc biệt là trong môi trường máy chủ cần tính ổn định cao. Khi bạn thường xuyên sử dụng apt-get để cập nhật gói và áp dụng các bản vá mới, hệ thống sẽ luôn nhận được bản sửa lỗi và bản vá bảo mật kịp thời, giúp máy chủ vận hành trên những phiên bản phần mềm mới hơn và an toàn hơn trước các lỗ hổng bảo mật đã được công bố.

So sánh apt với apt-get
| Tiêu chí | apt | apt-get |
| Mức độ hiện đại | Được thiết kế mới hơn như một giao diện dòng lệnh tổng hợp, kế thừa và mở rộng chức năng từ apt-get và apt-cache. | Là giao diện dòng lệnh đời đầu của APT, tồn tại lâu năm và tập trung vào chức năng truyền thống. |
| Đối tượng khuyến nghị | Phù hợp cho người dùng cuối thao tác tương tác trực tiếp vì cú pháp ngắn gọn và dễ nhớ hơn. | Thường được khuyến nghị dùng trong script hoặc tự động hóa vì hành vi ổn định, ít thay đổi theo thời gian. |
| Trải nghiệm hiển thị Cung cấp thanh tiến trình, tóm tắt số gói có | Cung cấp thanh tiến trình, tóm tắt số gói có thể nâng cấp và thông tin đầu ra được trình bày rõ ràng, dễ đọc. | Tập trung vào đầu ra thuần văn bản, ít yếu tố trực quan, đòi hỏi người dùng tự diễn giải nhiều hơn. |
| Phạm vi chức năng | Gộp nhiều tác vụ thường dùng (cài đặt, cập nhật, tìm kiếm, liệt kê, xem thông tin gói) vào một bộ lệnh thống nhất. | Chia nhỏ chức năng cho nhiều lệnh (apt-get, apt-cache,…), khiến thao tác quản lý gói đôi khi phức tạp hơn với người mới. |
| Khả năng thay thế lẫn nhau | Có thể thực hiện hầu hết tác vụ mà apt-get đảm nhiệm, và trong nhiều trường hợp được dùng như lựa chọn thân thiện hơn. | Vẫn có thể dùng thay cho apt trong đa số tình huống, nhưng không phải lựa chọn ưu tiên cho thao tác tương tác hằng ngày. |
Theo kinh nghiệm của mình, nếu bạn là người dùng phổ thông hoặc quản trị hệ thống thao tác hằng ngày thì nên ưu tiên dùng apt vì cú pháp ngắn gọn, dễ nhớ và hiển thị trực quan hơn. Ngược lại, khi viết script tự động hóa hoặc cần đảm bảo tính ổn định lâu dài, apt-get vẫn là lựa chọn an toàn nhờ đầu ra nhất quán và ít thay đổi theo các phiên bản hệ điều hành.
Bảng tóm tắt các lệnh apt-get cơ bản
| Lệnh apt-get | Mục đích | Yêu cầu sudo |
| update | Cập nhật danh sách gói có sẵn từ kho lưu trữ. | Có |
| upgrade | Nâng cấp tất cả gói đã cài đặt. | Có |
| install <gói> | Cài đặt gói phần mềm. | Có |
| remove <gói> | Gỡ bỏ gói (giữ lại cấu hình). | Có |
| purge <gói> | Gỡ bỏ gói và toàn bộ tập tin cấu hình. | Có |
| autoremove | Xóa các gói phụ thuộc không còn cần thiết. | Có |
| clean | Xóa các tập tin gói .deb đã tải trong cache. | Có |
Hướng dẫn sử dụng lệnh apt-get trong Linux để quản lý gói phần mềm
Cập nhật danh sách gói phần mềm
Người dùng cần cập nhật danh sách gói để đồng bộ các gói hiện có trong kho lưu trữ (repositories) với hệ thống cục bộ trước khi thực hiện bất kỳ thao tác cài đặt hoặc nâng cấp nào:
sudo apt-get update
Ở bước này, người dùng chỉ tải về các tập tin chỉ mục (index files) mô tả phiên bản mới nhất của các gói, chứ không tải hoặc cài đặt thêm phần mềm mới.
Nâng cấp tất cả các gói đã cài đặt
Để nâng cấp tất cả các gói phần mềm đang được cài đặt lên phiên bản mới nhất, bạn sử dụng lệnh sau:
sudo apt-get upgrade
Khi chạy lệnh này, hệ thống sẽ liệt kê các gói có bản cập nhật, sau đó yêu cầu người dùng xác nhận trước khi tải về và cài đặt các phiên bản mới.
Cài đặt một gói phần mềm mới
Người dùng áp dụng lệnh cài đặt để tải về và cài đặt một gói phần mềm cụ thể từ kho lưu trữ:
sudo apt-get install <tên gói>
Trong quá trình này, APT tự động phân tích và cài đặt mọi gói phụ thuộc cần thiết để phần mềm được chỉ định có thể hoạt động đúng.
Ví dụ: Người dùng cài đặt gói wget để sử dụng công cụ tải file qua dòng lệnh.
Gỡ bỏ một gói phần mềm
Người dùng dùng lệnh gỡ bỏ khi muốn xóa gói khỏi hệ thống nhưng vẫn muốn giữ lại các tập tin cấu hình của gói đó:
sudo apt-get remove <tên gói>
Cách làm này cho phép người dùng cài đặt lại cùng gói trong tương lai mà không phải thiết lập lại cấu hình từ đầu.
Ví dụ: Người dùng gỡ bỏ gói wget khi không còn nhu cầu sử dụng.
Gỡ bỏ hoàn toàn một gói phần mềm
Người dùng sử dụng lệnh purge khi muốn loại bỏ gói và toàn bộ tập tin cấu hình liên quan khỏi hệ thống:
sudo apt-get purge <tên gói>Ví dụ: Người dùng gỡ bỏ hoàn toàn gói apache2 khi chuyển sang giải pháp máy chủ web khác.

Trong trường hợp này, người dùng thực hiện kiểu gỡ bỏ sạch nhất vì cả chương trình và cấu hình đều bị xóa.
Xóa các phụ thuộc không còn cần thiết
Người dùng có thể dọn dẹp hệ thống bằng cách loại bỏ những gói được cài làm phụ thuộc cho các gói khác nhưng hiện không còn được bất kỳ gói nào sử dụng:
sudo apt-get autoremove
Thao tác này giúp người dùng giải phóng dung lượng đĩa và giữ cho hệ thống gọn gàng, tránh tồn đọng các gói thừa sau nhiều lần cài đặt và gỡ bỏ phần mềm.
Kiểm tra kết quả và xử lý lỗi phổ biến
Kiểm tra kết quả thực thi thành công
Người dùng có thể coi thao tác cài đặt hoặc gỡ bỏ thành công khi lệnh hoàn tất mà không xuất hiện bất kỳ thông báo lỗi nào trên màn hình. Để kiểm tra gói đã được cài đặt, người dùng lệnh:
dpkg -l | grep <tên gói>Nếu tên gói xuất hiện trong danh sách, thao tác cài đặt được xem là hoàn tất. Đối với thao tác cập nhật, người dùng kiểm tra bằng lệnh:
sudo apt-get updateLệnh được coi là chạy thành công khi kết thúc với dòng Reading package lists… Done và không kèm theo thông báo lỗi kiểu Failed to fetch.
Xử lý một số lỗi apt/DPKG thường gặp
E: Unable to locate package <tên gói>
Nguyên nhân: Người dùng có thể nhập sai tên gói hoặc gói đó không tồn tại trong các kho lưu trữ đang được cấu hình trên hệ thống.
Cách khắc phục:
Người dùng cần kiểm tra lại chính tả của tên gói. Bạn có thể dùng lệnh sudo apt-get update để bảo đảm danh sách gói đã được cập nhật mới nhất. Bạn cũng có thể tìm kiếm gói liên quan bằng lệnh apt-cache search.
E: Could not get lock /var/lib/dpkg/lock
Nguyên nhân: Hệ thống báo lỗi khi một tiến trình quản lý gói khác (chẳng hạn apt, aptitude hoặc một tiến trình cập nhật nền) đang sử dụng cơ sở dữ liệu DPKG và giữ file lock.
Cách khắc phục:
- Người dùng trước tiên nên chờ tiến trình quản lý gói đang chạy hoàn tất.
- Nếu người dùng xác định chắc chắn không còn tiến trình apt/dpkg nào hoạt động nhưng lỗi vẫn xuất hiện, người dùng có thể xóa file lock thủ công với lệnh (thao tác này chỉ nên thực hiện khi đã kiểm tra kỹ)
udo rm /var/lib/dpkg/lock-frontendCảnh báo về Dependencies not met hoặc lỗi phụ thuộc chưa được thỏa mãn
- Nguyên nhân: Gói mục tiêu yêu cầu các gói khác ở phiên bản cụ thể, trong khi hệ thống chưa có đúng phiên bản cần thiết hoặc đang tồn tại xung đột với gói hiện tại.
- Cách khắc phục: Người dùng có thể yêu cầu APT tự động cố gắng sửa lỗi phụ thuộc bằng lệnh
sudo apt-get -f installLệnh này sẽ cố gắng cài đặt, tháo gỡ hoặc cấu hình lại các gói liên quan để đưa hệ thống về trạng thái phụ thuộc hợp lệ.

Câu hỏi thường gặp
Bạn có thể tải trước gói bằng apt-get mà chưa cài đặt ngay không?
Bạn có thể dùng tùy chọn -d với lệnh apt-get, ví dụ sudo apt-get -d install để chỉ tải gói về máy rồi mới cài sau, rất hữu ích khi đường truyền mạng không ổn định.
Bạn nên dùng apt-get clean hay apt-get autoclean để dọn cache?
Bạn có thể dùng apt-get clean để xóa toàn bộ file .deb đã tải trong cache, còn apt-get autoclean chỉ xóa các gói không còn tải được nữa, giúp duy trì cache ở mức vừa phải mà không phải tải lại mọi gói từ đầu.
Bạn có thể kiểm soát kho lưu trữ mà apt-get sử dụng như thế nào?
Bạn có thể chỉnh sửa file /etc/apt/sources.list hoặc các file trong /etc/apt/sources.list.d/ để thêm, bớt hoặc thay đổi ưu tiên kho lưu trữ, từ đó quyết định nguồn gốc của các gói mà apt-get sẽ tải và cài đặt.
apt-get tiếp tục giữ vai trò là công cụ dòng lệnh quan trọng giúp bạn cài đặt, cập nhật, dọn dẹp và khắc phục lỗi gói phần mềm trên các hệ thống Debian/Ubuntu một cách có kiểm soát. Khi nắm vững các lệnh apt-get cơ bản và một số tuỳ chọn nâng cao, bạn có thể chủ động duy trì hệ thống luôn ổn định, bảo mật và tối ưu cho các môi trường máy trạm lẫn máy chủ.




