Debian

使用互動式提示自動安裝單個 debian 8 軟體包

  • June 14, 2018

我希望通過 bash 腳本自動化一些軟體包安裝;它們將被安裝到預先存在的 chroot 文件系統中。然而,一些軟體包涉及互動式使用者輸入(即 ddclient 要求選擇一個動態 DNS 服務提供商),我無法輕鬆地實現自動化。

debconf 預置似乎是自動化互動式軟體包安裝的最常用方法,但我讀過的所有範例都暗示它適用於整個 Debian 安裝,而不僅僅是單個軟體包。

我一直在關注如何自動化互動式 Debian 軟體包安裝,但它並沒有真正解釋細節。

提前致謝!

如果不使用諸如 Ansible 或 Salt 之類的“適當”部署和配置管理工具,debconf預置就足以預配置 Debian 軟體包。它完全不限於完整的安裝。它可以應用於任意數量的包。

開始使用它的最簡單方法是手動配置要安裝的包,方法是安裝包並回答問題。然後執行debconf-get-selections(從debconf-utils包中);這將列出所有儲存的設置,包括您剛剛安裝的軟體包的設置,以及評論中的問題文本——因此您可以輕鬆找到您想要預置的問題。格式是

<package> <debconf key> <type> <value>

例如

# System's default paper size:
# Choices: letter, a4, note, legal, executive, halfletter, halfexecutive, 11x17, statement, folio, quarto, 10x14, ledger, tabloid, a0, a1, a2, a3, a5, a6, a7, a8, a9, a10, b0, b1, b2, b3, b4, b5, c5, DL, Comm10, Monarch, archE, archD, archC, archB, archA, flsa, flse, csheet, dsheet, esheet
libpaper1       libpaper/defaultpaper   select  a4

將要預置的設置儲存在文件中,然後在目標系統上執行debconf-set-selections(在debconf包中),使用本地可用的文件並命名為第一個參數,或者通過管道傳輸其內容:

cat preseed-file | ssh remotehost debconf-set-selections

在目標系統上安裝軟體包之前執行此操作。

引用自:https://unix.stackexchange.com/questions/449885