Có cách nào để xem chính xác các trình kích hoạt xử lý trên cơ sở trên mỗi gói không?


15

Như tôi đã hiểu, "Trình kích hoạt xử lý cho <packagename> " thông thường thực hiện một số tác vụ cụ thể theo gói và hệ thống, chẳng hạn như thêm các mục vào menu khởi chạy hoặc cập nhật tệp cấu hình. Có một cách thực tế để xem chính xác những gì đang được thực hiện hoặc thay đổi trong bước này? Nơi nào người ta có thể tìm thấy hành vi chính xác của bước?

Câu trả lời:


16

Có, nhưng nó yêu cầu đào qua một số tập lệnh bash cho các gói được kích hoạt.

  • Giả sử dpkg đầu ra trông như sau:

    Chuẩn bị thay thế zim 0,52-1 (sử dụng ... / lưu trữ / zim_0.52-1_all.deb) ...
    Giải nén zim thay thế ...
    Xử lý kích hoạt cho chia sẻ thông tin ...
    Xử lý kích hoạt cho menu ...
  • Trong nội bộ, những gì dpkggọi là postinstkịch bản cho mỗi gói này với triggeredtùy chọn dòng lệnh và không hoặc nhiều tùy chọn kích hoạt.

  • Vì vậy, bạn chỉ cần mở /var/lib/dpkg/info/PACKAGE.postinst(đó là một kịch bản bash), và chỉ đơn giản là tìm kiếm những gì sẽ xảy ra khi $1triggered

Ví dụ: man-dbkích hoạt

Một trong những "Trình kích hoạt xử lý" phổ biến nhất mà bạn sẽ thấy là man-db, bất cứ khi nào gói được cài đặt có trang man .

Nếu bạn mở /var/lib/dpkg/info/man-db.postinst, bạn sẽ tìm thấy phần này:

if ["$ 1" = được kích hoạt]; sau đó
    # Chúng tôi không in thông báo trạng thái ở đây, vì dpkg đã nói
    # "Xử lý kích hoạt cho man-db ...".
    run_mandb -pq
    thoát 0
fi

Vì vậy, bạn có thể thấy rằng Processing triggers for man-db ...chỉ đơn giản là kết quả trong run_mandbhàm (cũng được tìm thấy trong postinsttập lệnh) đang được chạy với -pqtùy chọn.

Tài nguyên hữu ích:

  1. Cố gắng làm cho dpkg kích hoạt hữu ích hơn và ít đau đớn hơn
  2. dpkg kích hoạt, tài liệu hướng dẫn bị mất

Sao nó chậm thế?!
Antonio Petricca
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.