Câu hỏi của tôi rất đơn giản - tôi muốn biết thêm về dpkg - nó làm gì?
Câu hỏi của tôi rất đơn giản - tôi muốn biết thêm về dpkg - nó làm gì?
Câu trả lời:
Như đã nói, dpkg
là một công cụ hệ thống cấp thấp để trích xuất, phân tích, giải nén và cài đặt hoặc xóa các tệp .deb. Tuy nhiên, tốt hơn là sử dụng Software Centre
hoặc Gdebi
cài đặt hoặc xóa các tệp .deb đã thu được từ các nguồn khác vì hai chương trình này có độ phân giải phụ thuộc.
Tuy nhiên, điều chưa được giải thích là giải phẫu của một bản cập nhật sử dụng dpkg
và apt-get
. Ví dụ, nếu chúng ta gọi apt-get
để cài đặt cheese
, cây phụ thuộc được phân tích và các tệp cần thiết được tìm nạp apt-get
, sau đó chuyển chúng dpkg
để trích xuất, phân tích và cài đặt đến đúng vị trí và định cấu hình chúng theo các tập lệnh bên trong chúng.
Các tập lệnh được đọc dpkg
bên trong mỗi tệp .deb rất quan trọng vì chúng cung cấp thông tin cho chương trình liên quan đến việc cài đặt, gỡ bỏ và cấu hình của các gói. Do đó, khi bạn nhìn vào, /var/log/dpkg.log
có rất nhiều chi tiết dài dòng về 'trình kích hoạt' và các gói trải qua các giai đoạn khác nhau của việc giải nén và cấu hình. Trong blog của mình, Raphael Hertzog (một nhà phát triển và bảo trì chính của Debian dpkg
) giải thích thêm về các trình kích hoạt dpkg và cách dpkg
kiểm tra và định cấu hình các gói.
Bây giờ chúng ta đang đi vào trung tâm của những gì dpkg
làm; nó chuyên nghiệp xử lý các gói Debian, thay vì phụ thuộc vào chúng. Với dpkg-deb
, ví dụ, bạn có thể thực hiện hành động khác nhau trong việc phân tích và các tập tin bằng tay chiết xuất từ các văn khố .deb; xem man dpkg-deb
để biết thêm thông tin
Trạng thái của mỗi gói được liệt kê trong /var/lib/dpkg/status
, có thể được sử dụng grep
để kiểm tra trên một gói cụ thể. Dpkg
cũng có thể được gọi để cấu hình lại các gói cụ thể đã được cấu hình (xem man dpkg-reconfigure
):
sudo dpkg-reconfigure <package>
Hoặc để thực hiện định cấu hình tất cả các gói chưa được định cấu hình nếu có sự cố với bản cập nhật và cấu hình của một số gói vẫn đang chờ xử lý:
sudo dpkg --configure -a
Để có một hướng dẫn tuyệt vời tập trung vào dpkg
và apt-get
, hãy xem chương 5 và 6 của Cẩm nang Debian , đây là phần thảo luận tốt nhất hiện có. Nhập man dpkg
vào thiết bị đầu cuối của bạn hoặc xem các trang web Ubuntu trực tuyến để xem tất cả nhiều tùy chọn có sẵn, chẳng hạn như sử dụng dpkg -l
để liệt kê các gói hiện được cài đặt.
dpkg là một cách dòng lệnh để cài đặt từ .deb hoặc xóa các gói đã cài đặt. Ví dụ: nếu bạn có tệp .deb trong thư mục chính của mình, việc chạy dpkg -i yourpackage.deb
sẽ cài đặt gói đó cho bạn. Tôi thấy điều này ít nhất hữu ích cho tôi vì đôi khi khi nhấp vào tệp .deb, nó tải Trung tâm phần mềm Ubuntu nhưng không bao giờ thực sự cài đặt nó hoặc gặp sự cố.
Như mọi khi, man
lệnh là một nơi tuyệt vời để bắt đầu.
man dpkg
có thể cung cấp cho bạn tất cả các tùy chọn, tuy nhiên:
dpkg là trình quản lý gói cho các hệ thống dựa trên Debian. Nó có thể cài đặt, gỡ bỏ và xây dựng các gói, nhưng không giống như các hệ thống quản lý gói khác, nó không thể tự động tải xuống và cài đặt các gói và các phụ thuộc của chúng.
Vì vậy, về cơ bản, nó có thể nhận được mà không cần giải quyết phụ thuộc và được sử dụng để cài đặt các tệp .deb.
Tôi cảnh báo bạn mặc dù: Gỡ cài đặt các gói bằng dpkg, trong hầu hết các trường hợp, KHÔNG được khuyến khích. Tốt hơn là sử dụng một trình quản lý gói xử lý các phụ thuộc, để đảm bảo rằng hệ thống ở trạng thái nhất quán.
Ví dụ: bằng cách sử dụng, dpkg -r zip
bạn có thể xóa gói zip, nhưng bất kỳ gói nào phụ thuộc vào gói đó vẫn sẽ được cài đặt và có thể không còn hoạt động chính xác nữa.
Bạn có thể đọc thêm một số về nó trong hướng dẫn máy chủ và các nơi khác .