Sto cercando di automatizzare alcune installazioni di pacchetti tramite lo script bash; verranno installati su un filesystem chroot'd preesistente. Alcuni dei pacchetti tuttavia prevedono l'input interattivo dell'utente (ovvero ddclient chiede di selezionare un provider di servizi DNS dinamico), che non sono stato in grado di automatizzare così facilmente.
la preconfigurazione di debconf sembra essere il modo più comune per automatizzare le installazioni interattive di pacchetti, ma tutti gli esempi che ho letto implicano che si tratta di un'intera installazione di Debian piuttosto che di singoli pacchetti.
Ho seguito questo Come automatizzare le installazioni interattive di pacchetti Debian, ma in realtà non spiega le specifiche.
Grazie in anticipo!
Risposta accettata:
A meno di utilizzare uno strumento di distribuzione e gestione della configurazione "corretto" come Ansible o Salt, debconf
la preconfigurazione può essere perfettamente sufficiente per preconfigurare i pacchetti Debian. Non è affatto limitato alle installazioni in piena regola; può essere applicato a qualsiasi numero di pacchetti.
Il modo più semplice per iniziare è configurare manualmente i pacchetti che si desidera installare, installando il pacchetto e rispondendo alle domande. Quindi esegui debconf-get-selections
(da debconf-utils
pacchetto); che elencherà tutte le impostazioni memorizzate, comprese quelle per i pacchetti appena installati, insieme al testo della domanda nei commenti, in modo da poter trovare facilmente le domande che desideri preimpostare. Il formato è
<package> <debconf key> <type> <value>
Ad esempio
# 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
Archivia le impostazioni che desideri preimpostare in un file, quindi esegui debconf-set-selections
(nel debconf
package) sul sistema di destinazione, sia con il file disponibile localmente e denominato come primo argomento, sia con il suo contenuto inviato tramite pipe:
cat preseed-file | ssh remotehost debconf-set-selections
Fallo prima installazione dei pacchetti sul sistema di destinazione.