Vì Falcot Corp có nhiều máy tính nhưng chỉ có giới hạn nhân lực, nên các quản trị viên cố gắng nâng cấp càng nhiều càng tốt. Các chương trình phụ trách các quá trình này do đó phải chạy mà không có sự can thiệp của con người.
Như đã đề cập ở trên, dpkg
có thể được tùy chọn không yêu cầu xác nhận khi thay thế tệp tin cấu hình (với tùy chọn - force-confdef --force-confold
). Tương tác có thể có ba nguồn khác: một số đến từ chính APT, một số được quản lý bởi debconf
, và một số xảy ra trên dòng lệnh do các tập lệnh cấu hình gói.
Trường hợp của APT rất đơn giản: tùy chọn -y
(hoặc --assum-yes
) cho APT biết câu trả lời cho tất cả các câu hỏi là “có“.
Trường hợp của debconf
cần được cung cấp thêm chi tiết. Chương trình này đã được thiết kế để kiểm soát sự liên quan và số lượng của câu hỏi được hiển thị cho người dùng, cũng như cách chúng được hiển thị. Đó là lý do tại sao cấu hình yêu cầu một sự ưu tiên tối thiểu cho các câu hỏi; Chỉ những câu hỏi trên mức ưu tiên tối thiểu được hiển thị. debconf
giả định câu trả lời mặc định (được xác định bởi người duy trì gói) đối với các câu hỏi mà nó quyết định bỏ qua.
Thành phần cấu hình có liên quan khác là giao diện được sử dụng bởi giao diện người dùng. Nếu bạn chọn noninteractive
trong số các lựa chọn, tất cả tương tác người dùng sẽ bị vô hiệu hoá. Nếu một gói cố gắng hiển thị một lưu ý thông tin, nó sẽ được gửi tới quản trị viên qua email.
Để định cấu hình lại debconf
, hãy sử dụng công cụ dpkg-reconfigure
từ gói debconf; Lệnh có liên quan là dpkg-cấu hình lại debconf
. Lưu ý rằng các giá trị được cấu hình có thể được tạm thời ghi đè bằng các biến môi trường khi cần thiết (ví dụ: DEBIAN_FRONTEND
điều khiển giao diện, như đã được ghi lại trong trang hướng dẫn sử dụng. debconf(7)).
6.8.4. Xử lý tương tác dòng lệnh
Nguồn cuối cùng của các tương tác, và hầu như cần phải có, là các tập lệnh cấu hình được chạy bởi dpkg
. Không may là không có giải pháp tiêu chuẩn, và không có câu trả lời luôn luôn tốt nhất.
Cách tiếp cận phổ biến là để ngăn chặn các đầu vào tiêu chuẩn bằng cách chuyển hướng nội dung trống của /dev/null
vào nó với command </dev/ null
hoặc để cung cấp cho nó với một số lượng bất tận các dòng mới. Không có phương pháp nào trong số này là 100% đáng tin cậy nhưng thường dẫn đến các câu trả lời mặc định đang được sử dụng, vì hầu hết các kịch bản đều xem xét việc thiếu câu trả lời như là sự chấp nhận giá trị mặc định.
Bằng cách kết hợp các thành phần đã nêu, có thể thiết kế một kịch bản nhỏ nhưng đáng tin cậy có thể xử lý các nâng cấp tự động.
Ví dụ 6.4. Tập lệnh nâng cấp không tương tác
export DEBIAN_FRONTEND=noninteractive
yes '' | apt-get -y -o DPkg::options::="--force-confdef" -o DPkg::options::="--force-confold" dist-upgrade